节点服务器

MySQL

a 夏天 提交于 2020-02-02 09:30:47
一、索引 B+ Tree 原理 MySQL 索引 索引优化 索引的优点 索引的使用条件 二、查询性能优化 使用 Explain 进行分析 优化数据访问 重构查询方式 三、存储引擎 InnoDB MyISAM 比较 四、数据类型 整型 浮点数 字符串 时间和日期 五、切分 水平切分 垂直切分 Sharding 策略 Sharding 存在的问题 六、复制 主从复制 读写分离 参考资料 一、索引 B+ Tree 原理 1. 数据结构 B Tree 指的是 Balance Tree,也就是平衡树。平衡树是一颗查找树,并且所有叶子节点位于同一层。 B+ Tree 是基于 B Tree 和叶子节点顺序访问指针进行实现,它具有 B Tree 的平衡性,并且通过顺序访问指针来提高区间查询的性能。 在 B+ Tree 中,一个节点中的 key 从左到右非递减排列,如果某个指针的左右相邻 key 分别是 key i 和 key i+1 ,且不为 null,则该指针指向节点的所有 key 大于等于 key i 且小于等于 key i+1 。 2. 操作 进行查找操作时,首先在根节点进行二分查找,找到一个 key 所在的指针,然后递归地在指针所指向的节点进行查找。直到查找到叶子节点,然后在叶子节点上进行二分查找,找出 key 所对应的 data。 插入删除操作会破坏平衡树的平衡性,因此在插入删除操作之后

Redis集群

家住魔仙堡 提交于 2020-02-01 05:14:55
一.集群与分布式概述 1.1什么是集群 集群就是很多服务器组成的一个网络。指的是将多台服务器集中在一起,实现同一业务 1.2为什么要集群 一台服务器不能满足开发需要的时候,需要多台服务器来支持。这个时候就需要做集群,但是集群往往伴随着分布式 1.3什么是分布式 分布式是指将不同的业务分布在不同的地方. web应用和数据库服务分开,将不同业务分布到不同集群 1.4集群优化 两大关键特性 1.可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。动态添加服务器 2.高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增强了应用的可用性 1.5分布式和集群相同点和不同点 相同点: 都是处理高并发,而且都需要多台服务器协同.一般在一个系统中同时存在分布式和集群. 不同点: 分布式中不同服务器处理是不同业务.而集群处理时同一业务. 二.集群得几种方案 2.1主从复制 优点: 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离 2.2哨兵模式 当主服务器中断服务后,可以将一个从服务器升级为主服务器,以便继续提供服务,但是这个过程需要人工手动来操作。

每天刷Web面试题(前10天汇总)

时间秒杀一切 提交于 2020-02-01 02:46:24
一、算法题部分 1. 如何获取浏览器URL中查询字符串中的参数? function getParamsWithUrl(url) { var args = url.split('?'); if (args[0] === url) { return ""; } var arr = args[1].split('&'); var obj = {}; for ( var i = 0; i < arr.length; i++) { var arg = arr[i].split('='); obj[arg[0]] = arg[1]; } return obj; } var href = getParamsWithUrl('http://www.itlike.com?id=1022&name=撩课&age=1'); console.log(href['name']); // 撩课 2. 写一个深度克隆方法(es5)? /** * 深拷贝 * @param {object}fromObj 拷贝的对象 * @param {object}toObj 目标对象 */function deepCopyObj2NewObj(fromObj, toObj) { for(var key in fromObj){ // 1. 取出键值对 var fromValue = fromObj[key]; // 2.

MongoDB 2.3复制(副本集)

一曲冷凌霜 提交于 2020-01-30 00:09:39
2.3、复制(副本集) 什么是复制 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性 复制还允许从硬件故障和服务中断中恢复数据 为什么要复制 数据备份 数据灾难恢复 读写分离 高(24* 7)数据可用性 无宕机维护 副本集对应用程序是透明 复制的工作原理 复制至少需要两个节点A、B... A是主节点,负责处理客户端请求 其余的都是从节点,负责复制主节点上的数据 节点常见的搭配方式为:一主一从、一主多从 主节点记录在其上的所有操作,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致 主节点与从节点进行数据交互保障数据的一致性 复制的特点 N 个节点的集群 任何节点可作为主节点 所有写入操作都在主节点上 自动故障转移 自动恢复 设置复制节点 接下来的操作需要打开多个终端窗口,而且可能会连接多台ubuntu主机,会显得有些乱,建议在xshell中实现 step1:创建数据库目录t1、t2 在Desktop目录下演示,其它目录也可以,注意权限即可 mkdir t1 mkdir t2 step2:使用如下格式启动mongod,注意replSet的名称是一致的 mongod --bind_ip 192.168.196.128 --port 27017 --dbpath ~/Desktop/t1

ZooKeeper概念

邮差的信 提交于 2020-01-29 12:42:26
这可能是把ZooKeeper概念讲的最清楚的一篇文章 相信大家对 ZooKeeper 应该不算陌生,但是你真的了解 ZooKeeper 是什么吗?如果别人/面试官让你讲讲 ZooKeeper 是什么,你能回答到哪个地步呢? 作者:SnailClimb来源: 51CTO技术栈 |2018-09-12 09:34 收藏 分享 我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 Solr 集群的时候,我使用到了 ZooKeeper 作为 Solr 集群的管理工具。 前几天,总结项目经验的时候,我突然问自己 ZooKeeper 到底是个什么东西? 想了半天,脑海中只是简单的能浮现出几句话: Zookeeper 可以被用作注册中心。 Zookeeper 是 Hadoop 生态系统的一员。 构建 Zookeeper 集群的时候,使用的服务器最好是奇数台。 可见,我对于 Zookeeper 的理解仅仅是停留在了表面。所以,通过本文,希望带大家稍微详细的了解一下 ZooKeeper 。 如果没有学过 ZooKeeper,那么本文将会是你进入 ZooKeeper 大门的垫脚砖;如果你已经接触过 ZooKeeper ,那么本文将带你回顾一下 ZooKeeper 的一些基础概念。 最后,本文只涉及 ZooKeeper 的一些概念,并不涉及 ZooKeeper 的使用以及

什么是CDN

江枫思渺然 提交于 2020-01-29 11:38:35
什么是CDN? CDN加速意思就是在用户和我们的服务器之间加一个缓存机制,通过这个缓存机制动态获取IP地址根据地理位置,让用户到最近的服务器访问。 谈到CDN的作用,可以用8年买火车票的经历来形象比喻: 8年前,还没有火车票代售点一说,12306.cn更是无从说起。那时候火车票还只能在火车站的售票大厅购买,而我所住的小县城并不通火车,火车票都要去市里的火车站购买,而从县城到市里,来回就是4个小时车程,简直就是浪费生命。后来就好了,小县城里出现了火车票代售点,可以直接在代售点购买火车,方便了不少,全市人民再也不用在一个点苦逼的排队买票了。 CDN就可以理解为分布在每个县城的火车票代售点,用户在浏览网站的时候,CDN会选择一个离用户最近的CDN边缘节点来响应用户的请求,这样海南移动用户的请求就不会千里迢迢跑到北京电信机房的服务器(假设源站部署在北京电信机房)上了。 那么CDN是个啥? 全称Content Delivery Network即内容分发网络。 CDN是一组分布在多个不同的地理位置的WEB服务器,用于更加有效的向用户发布内容,在优化性能时,会根据距离的远近来选择 。 CDN系统能实时的根据网络流量和各节点的连接,负载状况及用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上,其目的是使用户能就近的获取请求数据,解决网络拥堵,提高访问速度,解决由于网络带宽小

【Redis】哨兵机制

你离开我真会死。 提交于 2020-01-28 06:11:42
一、概述 什么是哨兵机制 二、环境配置 2.1 虚拟机 2.2 安装Redis 2.3 配置主从复制 2.4 配置哨兵 2.5 测试 2.6 疑惑(待解决) 一、概述 什么是哨兵机制 Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务: 监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。 提醒(Notification):当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。 自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自动故障迁移操作,它会将失效Master的其中一个Slave升级为新的Master, 并让失效Master的其他Slave改为复制新的Master; 当客户端试图连接失效的Master时,集群也会向客户端返回新Master的地址,使得集群可以使用Master代替失效Master。 哨兵(sentinel) 是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master是否下线的信息,并使用投票协议(agreement

加速器知识

雨燕双飞 提交于 2020-01-27 16:04:46
最常见的网游加速器工作原理,是在全国各大网络节点架设服务器,针对不同类型的网络用户选取连接速度最快的节点,从而利用自身快速的转接速度弥补用户较慢的转接速度的。因此可以说,一款网游加速器的性能高低要看两个因素:1、自身服务器节点架设的合理程度;2、节点转接速度快慢。 【服务器架设合理广泛】 网易UU网游加速器自身依托网易自身资源,在全国各地有建立有顶级IDC集群,服务器节点分布非常广泛。网易身为国内老牌IT行业公司,有着雄厚的财力技术实力,因此在服务器架设上可以说无人能出其右。 【引擎技术保证节点转接速度】 网易杭州研发中心今年开发出了“High-speed”极速引擎技术,使得网易UU网游加速器成为国内首款应用引擎技术的网游加速器,可为网游平均提速80%。 引擎技术与普通网游加速器技术的对比,可以想象成一页纸和一本书来比较。引擎加速技术采用智能节点转接,保证游戏0丢包,并可同步进行多项数据采集以便随时选取最佳节点,保证延迟最低。改变了普通加速器单一的测速、选取、连接的步骤模式。 来源: https://www.cnblogs.com/alix-1988/p/12236085.html

Centos 7 Ntp 服务器的配置

爷,独闯天下 提交于 2020-01-26 13:33:10
我的hadoop 节点有两个, 两个cdhslave节点,一个master节点; cdh02,cdh03为slave节点,cdh01为master节点 ntp服务器和两个节点,两个节点的时间从master节点获取时间并进行同步。 在master节点 先检查有没有ntp fuwu安装 rpm -qa | grep ntp 以上代码如果有这个安装包,先进行清理; 后安装ntp yum install -y ntp [root@cdh01 ~]# yum install -y ntp Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.huaweicloud.com * updates: mirrors.huaweicloud.com Resolving Dependencies --> Running transaction check ---> Package ntp.x86_64 0:4.2.6p5-29.el7.centos will be installed --> Processing Dependency: ntpdate = 4.2.6p5-29.el7.centos

MongoDB快速入门

泪湿孤枕 提交于 2020-01-25 16:36:07
从我第一次听到Nosql这个概念到如今已经走过4个年头了,但仍然没有具体的去做过相应的实践。最近获得一段学习休息时间,购买了Nosql技术实践一书,正在慢慢的学习。在主流观点中,Nosql大体分为4类, 键值存储数据库,列存储数据库,文档型数据库,图形数据库 。 今天主要快速的浏览了文档型数据库中目前市场占有率的最高的MongoDB数据库。记得初次见到和关注这个数据库还是我刚来上海的时候,公司将该数据库作 为新建的项目管理系统的后台数据库,当时还是很向往的,只是无缘参与那个项目,也就一直没有和该数据库打上交道。接下来简单的介绍下该数据库的基本原理和 相关应用,也算是巩固知识和加强记忆了。大体上快速学习分为两部分,第一部分为基础,第二部分为进阶。 优势与不足    首 先,MongoDB不需要表结构,它是模式自由的(schema-free),例如{"welcome", "Shanghai"}, {"name", "bibi"}可以放到同一个集合中。那么它是如何在存储数据的呢?MongoDB在保存数据时会使用Bson的形式,一种json的二进制化形式,并把 它与特定的Key进行关联。这样将非常便于程的扩展和维护,在需要增加新字段或者修改字段时只需要修改程序,而不需要修改数据库的架构,非常的方便。   其 次,MongoDB原生的提供很强的伸缩性,对于web应用