数据库服务器

my.cnf参数说明

試著忘記壹切 提交于 2019-12-01 01:32:21
MySQL 5.7数据库参数优化 连接相关参数 max_connections: 允许客户端并发连接的最大数量,默认值是151,一般将该参数设置为500-2000 max_connect_errors: 如果客户端尝试连接的错误数量超过这个参数设置的值,则服务器不再接受新的客户端连接。可以通过清空主机的缓存来解除服务器的这种阻止新连接的状态,通过FLUSH HOSTS或mysqladmin flush-hosts命令来清空缓存。这个参数的默认值是100,一般将该参数设置为100000。 interactive_timeout: Mysql关闭交互连接前的等待时间,单位是秒,默认是8小时,建议不要将该参数设置超过24小时,即86400 wait_timeout: Mysql关闭非交互连接前的等待时间,单位是秒,默认是8小时,建议不要将该参数设置超过24小时,即86400 skip_name_resolve: 如果这个参数设为OFF,则MySQL服务在检查客户端连接的时候会解析主机名;如果这个参数设为ON,则MySQL服务只会使用IP,在这种情况下,授权表中的Host字段必须是IP地址或localhost。 这个参数默认是关闭的 back_log: MySQL服务器连接请求队列所能处理的最大连接请求数,如果队列放满了,后续的连接才会拒绝

Python 必备面试基础知识-3

无人久伴 提交于 2019-11-30 21:21:00
今天继续分享 Python 相关的面试题,你准备好了嘛! 网络编程篇 1. 简述 OSI 七层协议 是网络传输协议,人为的把网络传输的不同阶段划分成不同的层次。 七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 五层划分为:应用层、传输层、网络层、数据链路层、物理层。 物理层:网线,电缆等物理设备 数据链路层:Mac 地址 网络层:IP 地址 传输层:TCP,UDP 协议 应用层:FTP 协议,Email,WWW 等 2. 三次握手、四次挥手的流程 都发生在传输层 三次握手: TCP 协议是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接。 TCP 标志位(位码),有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknowledge number(确认号码) 第一次握手:主机 A 发送位码为 syn=1,随机产生 seq number=1234567 的数据包到服务器,并进入 SYN_SEND 状态,主机 B 由 SYN=1 知道,A 要求建立联机; 第二次握手:主机 B 收到请求后要确认联机信息,向 A 发送 ack

MongoDB 分片

最后都变了- 提交于 2019-11-30 21:14:58
1.分片简介 分片是指将数据拆分,将其分散存在不同机器上的过程.有时也叫分区.将数据分散在不同的机器上,不需要功能 强大的大型计算机就可以存储更多的数据,处理更大的负载.使用几乎所有数据库软件都能进行手动分片,应用需要维护与若干不同数据库服务器的连接,每个连接 还是完全独立的.应用程序管理不同服务器上的不同数据,存储查村都需要在正确的服务器上进行.这种方法可以很好的工作,但是也难以维护,比如向集群添加节 点或从集群删除节点都很困难,调整数据分布和负载模式也不轻松. MongoDB支持自动分片,可以摆脱手动分片的管理.集群自动切分数据,做负载均衡. 2.MongoDB的自动分片 MongoDB分片的基本思想就是将集合切分成小块.这些块分散到若干片里面,每个片只负责总数据 的 一部分.应用程序不必知道哪片对应哪些数据,甚至不需要知道数据已经被拆分了,所以在分片之前要运行一个路由进程,进程名mongos,这个路由器知道所有数据的存放位置,所以应用可以连接它来正常发送请求.对应用来说,它仅知道连接了一个普通的mongod.路由器知道和片的对应关系,能够转发请求到正确的片上.如果请求有了回应,路由器将其收集起来回送给应用. 在没有分片的时候,客户端连接mongod进程,分片时客户端会连接mongos进程.mongos对应用隐藏了分片的细节. 从应用的角度看,分片和不分片没有区别

MySQL5.7主从同步配置

雨燕双飞 提交于 2019-11-30 21:00:46
主从同步,将主服务器(master)上的数据复制到从服务器(slave)。 应用场景 读写分离,提高查询访问性能,有效减少主数据库访问压力。 实时灾备,主数据库出现故障时,可快速切换到从数据库。 数据汇总,可将多个主数据库同步汇总到一个从数据库中,方便数据统计分析。 部署环境 ​ 注:使用docker部署mysql实例,方便快速搭建演示环境。但本文重点是讲解主从配置,因此简略描述docker环境构建mysql容器实例。 数据库:MySQL 5.7.x (相比5.5,5.6而言,5.7同步性能更好,支持多源复制,可实现多主一从,主从库版本应保证一致) 操作系统:CentOS 7.x 容器:Docker 17.09.0-ce 镜像:mysql:5.7 主库:IP=192.168.10.212; PORT=3506; server-id=100; database=test; table=user 从库:IP=192.168.10.212; PORT=3606; server-id=110; database=test; table=user 配置约束 主从库必须保证网络畅通可访问 主库必须开启binlog日志 主从库的server-id必须不同 事前准备 关闭selinux setenforce 0 vim /etc/sysconfig/selinux SELINUX=disabled

完整社交APP需求分析原型设计整体架构前端后端架构

◇◆丶佛笑我妖孽 提交于 2019-11-30 20:22:29
一个社交 App需实现的功能 用户关注的常规社交功能、活动、地理位置、探索功能、新鲜事、视频照片分享等等,需要提供的功能不胜枚举,所以从技术角度来说,开发者需要解决的问题也是异常复杂的。 当一款社交 App发布之初,用户访问量比较小,使用一台服务器就能够支撑全部的访问压力和数据存储需求,但是互联网应用具有病毒式的传播特点。一款App很可能会面临一夜爆红的现象,访问量和数据量在短时间内呈现爆发式增长,这时候会面临的局面是每天上亿PV、数百万新增用户和活跃用户、流量飙升至每秒数百兆。这些对于一个只部署了简单后端架构的应用来讲是无法支撑的,会直接导致服务器响应缓慢甚至超时,以及在高峰期时服务呈现瘫痪状态,使得后端的服务完全无法使用,用户体验急剧下降。本文将会通过一个真实的案例来分享一个社交应用如何构建一个具备高伸缩性的后端系统。 社交 App最初部署的后端架构解析 社交 App在最初的时候,后端架构相对比较简单,最初是部署在基础网络之上。最前面放置一台绑定了公网IP的nginx服务器作负载均衡,后面放置3台应用服务器来负责处理所有业务上的请求,最后面搭建一台MySQL Database数据库。 构建私有网络 随着产品的不断迭代、用户数的持续增长、数据量的积累, App就需要改进自己的后端架构,即开始构建私有网络。用户可以使用私有网络构建自己的网络拓扑——创建路由器和私有网络

运维工作内容

十年热恋 提交于 2019-11-30 20:01:02
互联网运维工作,以服务为中心, 以稳定、安全、高效为三个基本点 ,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。 什么是运维和运维工程师: 一、初入运维领域的头衔: 运维实习生 系统管理员 网络管理员 二、使用频率最高的运维头衔: 运维工程师 IT运维工程师 Linux运维工程师 运维开发工程师 应用运维工程师 三、侧重某项技能或行业的运维头衔: 系统运维工程师 数据库运维工程师 网络运维工程师 安全运维工程师 桌面运维工程师 软件运维工程师 业务运维工程师 CDN运维工程师 IDC运维工程师 存储运维工程师 硬件运维工程师 游戏运维工程师 与业务强相关的岗位,如:直播运维工程师、中间件运维工程师 四、新兴的运维头衔: 自动化运维软件开发工程师 DevOps运维开发工程师 五、资深的运维头衔: 高级运维工程师 运维专家 六、走上管理岗位的运维头衔: 运维主管 运维经理 高级运维经理 运维总监 七、最洋气的运维头衔 SRE(Site Reliability Engineer) 运维人员对公司 互联网业务所依赖的基础设施、基础服务、线上业务进行稳定性加强,进行日常巡检发现服务可能存在的隐患,对整体架构进行优化以屏蔽常见的运行故障,多数据中接入提高业务的容灾能力 。 运维的手段=》 通过监控、日志分析等及时发现和响应服务故障,减少服务中断的时间,

Redis实现主从复制

本小妞迷上赌 提交于 2019-11-30 20:00:29
一、克隆 3 台虚拟机 右击要克隆的虚拟机,选择管理 - 再次选择克隆(克隆虚拟机时一定要将虚拟机进行关闭再进行克隆操作) 选择后一直点击下一步,新克隆的虚拟机的名字可以自己进行重新取。 二、 生成 新的 mack 地址 点击生成后再点击确定即可。 Redis3 虚拟机也按该操作执行一次。 二、 Redis 主 从复制 概念 概述 1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。 2、通过redis的复制功能可以很好的实现数据库的读写分离,提高服务器的负载能力。主数据库主要进行写操作,而从数据库负责读操作。 主从复制过程:见下图 过程: 1:当一个从数据库启动时,会向主数据库发送sync命令, 2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来 3:当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。 4:从数据库收到后,会载入快照文件并执行收到的缓存的命令。 三、搭建集群 注意: 1、 搭建集群时需要使用 root账号进行登录 2、 关闭所有的防火墙

互联网公司分布式集群架构图入门解析(简单通俗易懂,超详细)

穿精又带淫゛_ 提交于 2019-11-30 19:42:50
一、小型公司网络架构 狗子是某大学计算机专业本科应届毕业生,由于自己的技术不错,再加上互联网产业的巨大利润的驱使,狗子决定走上创业这条路,于是,狗子联合了同学二黑,鸡子,狗蛋等人花费了几个月的时间写出了一套网站,是关于足球资讯的pc端网站加上手机APP客户端。现在产品测试成功了,准备发布了,狗子想到了两个问题: 1.网站需要服务器 狗子之前所有的代码测试都是在本地服务器或者局域网上进行的,现在需要把产品发布到外网上,让所有的人都能访问,因此再用自己的电脑当服务器显然很不现实,于是,狗子去买了一台服务器,在上面装了jdk,tomcat,mysql等必备环境,把网站搭了起来,又经过了很多测试,运行毫无问题了,通过网站的ip可以访问并且实现功能了,而且app的后台也在服务器上测试成功了,目前公司的架构如图所示: 那么问题又来了: 2.网站需要域名 显然,如果让各地的用户需要记住你服务器的ip地址才能访问你的网站的话,那是会被用户拿刀追着砍的。因此,狗子需要一个便于记住的域名,以后在浏览器输入这个域名就能够访问这个网站,所以,狗子拿着申请下来的各种资质,找到了域名贩卖商,一般是腾讯阿里巴巴这种代理贩卖商,花了一笔钱,从它们的手上购买了域名,彻底实现了网站通过域名就能访问的功能。这里需要讲解一下通过域名访问的原理: 域名访问原理 通过ip访问相当于用户直接访问输入的ip所指向的服务器

大型项目架构演进过程及思考

谁说胖子不能爱 提交于 2019-11-30 19:27:49
淘宝架构 我们以淘宝架构为例,了解下大型的电商项目的服务端的架构是怎样,如图所示 上面是一些安全体系系统,如数据安全体系、应用安全体系、前端安全体系等。 中间是业务运营服务系统,如会员服务、商品服务、店铺服务、交易服务等。 还有共享业务,如分布式数据层、数据分析服务、配置服务、数据搜索服务等。 最下面呢,是中间件服务,如MQS即队列服务,OCS即缓存服务等。 图中也有一些看不到,例如高可用的一个体现,实现双机房容灾和异地机房单元化部署,为淘宝业务提供稳定、高效和易于维护的基础架构支撑。 这是一个含金量非常高的架构,也是一个非常复杂而庞大的架构。当然这个也不是一天两天演进成这样的,也不是一上来就设计并开发成这样高大上的架构的。 这边就要说一下,小型公司要怎么做呢?对很多创业公司而言,很难在初期就预估到流量十倍、百倍以及千倍以后网站架构会是什么样的一个状况。同时,如果系统初期就设计一个千万级并发的流量架构,很难有公司可以支撑这个成本。 因此,一个大型服务系统都是从小一步一步走过来的,在每个阶段,找到对应该阶段网站架构所面临的问题,然后在不断解决这些问题,在这个过程中整个架构会一直演进。 那我们来一起看一下。 单服务器-俗称all in one 从一个小网站说起。一台服务器也就足够了。文件服务器,数据库,还有应用都部署在一台机器,俗称ALL IN ONE 随着我们用户越来越多

Visual Studio2017 数据库架构比较

那年仲夏 提交于 2019-11-30 18:53:38
一、前言 开发的时候在测试服务器上和线网服务器上面都有我们的数据库,当我们在线网上面修改或者新增一些字段后,线网的数据库也需要更新,这个时候根据表的修改记录,然后在线网上面一个一个增加修改很浪费效率而且容易出错,那有没有更好的方法解决这个问题呢?有!那就是VS自带的架构比较功能。 个人觉得在初期一个开发除了掌握必要的开发知识外,对开发工具的使用和了解程度同样是至关重要的。就想对API了解程度一样,熟练的使用让你开发起来得心趁手。 二、关于 从 Visual Studio 2005 版本开始,VS就开始支持“比较和同步数据库架构”,微软如此早就实现这个功能说明这是一个我们会经常用到一个功能。这个功能我们自己也可以实现(在SQL Server中实现视图、存储过程及表结构的比较),也可以将其打包成一个工具(自己开发MSSQL架构和数据对比小工具)。对于新手来说稍微麻烦一些,这里就不做多说,感兴趣的可以看看。 三、开始演练 本次演练使用VS2017自带的SQL Server工具比较两个数据库的架构并同步目标的架构和源的架构。 1.准备两个要比较的数据库 我这里有两个数据库,一个是本地的,一个是测试服务器的。本次演练我将连接这两个数据库。 2.连接源数据库和目标数据库 所谓的源数据库和目标数据库也就是字面的意思(源>目标)将源数据中新增修改的同步到目标数据库中。 首先我们打开VS>工具