当前位置: 首页 > news >正文

建立网站的注意事项郑州网站优化渠道

建立网站的注意事项,郑州网站优化渠道,易语言登录WordPress账号,浙江 网站建设1、RedisCluster分布式集群解决方案 为了解决单机内存,并发等瓶颈,可使用此方案解决问题. Redis-cluster是一种服务器Sharding技术,Redis3.0以后版本正式提供支持。 这里的集群是指多主多从,不是一主多从。 2、redis集群的目标…
1、RedisCluster分布式集群解决方案

为了解决单机内存,并发等瓶颈,可使用此方案解决问题.
Redis-cluster是一种服务器Sharding技术,Redis3.0以后版本正式提供支持。

这里的集群是指多主多从,不是一主多从。

2、redis集群的目标
1.高性能可线性扩展至最多1000节点
2.集群中没有代理,(集群节点间)使用异步复制,没有归并操作。

可以接受的写入丢失
在发生failover之前的小段时间窗内的写操作可能在failover中丢失)。而在(网络)分区故障下,对少数派master的写入,发生写丢失的时间窗会很大。
可用性:
Redis Cluster在以下场景下集群总是可用:大部分master节点可用,并且对少部分不可用的master,每一个master至少有一个当前可用的slave。更进一步,通过使用 replicas migration 技术,当前没有slave的master会从当前拥有多个slave的master接受到一个新slave来确保可用性。

3、Redis Cluster的日常工作
1.负责维护数据,和获取集群状态,包括将keys映射到正确的节点。
2.集群节点同样可以自动发现其他节点、检测不工作节点、以及在发现故障发生时晋升slave节点到master
3.所有集群节点通过由TCP和二进制协议组成的称为 Redis Cluster Bus 的方式来实现集群的节点自动发现、故障节点探测、slave升级为master等任务。
4.每个节点通过cluster bus连接所有其他节点。
5.节点间使用gossip协议进行集群信息传播,以此来实现新节点发现,发送ping包以确认对端工作正常,以及发送cluster消息用来标记特定状态。
6.cluster bus还被用来在集群中创博Pub/Sub消息,以及在接收到用户请求后编排手动failover。

在这里插入图片描述

4、分片模块

哈希槽(Hash Slot)

1.Redis-cluster没有使用一致性hash,而是引入了哈希槽的概念
2.Redis-cluster中有16384(214次方)个哈希槽,每个key通过CRC16校验后对16383取模来决定放置哪个槽。
3.Cluster中的每个节点负责一部分hash槽(hash slot)。

例如、集群中存在三个节点:

1.节点A包含05500号哈希槽;
2.节点B包含550111000号哈希槽;
3.节点C包含1100116384号哈希槽。

为啥是16384个slot?

1.基于网络带宽的考虑,节点众多的话,即使redis内部的局域网之间的节点之间的网络通讯,也是会导致带宽吃紧,更别提异地之间的网络通讯,对运营商之间的网络要求很高。
2.哈希slot,是通过bitmap来保存数据的,在传输过程中会对bitmap进行压缩,压缩算法涉及Node的数量,如果节点数量很高,那么压缩算法的效率会很低,所以redis的作者不建议redis的节点超过1000个节点.

在redis节点发送心跳包时需要把所有的槽放到这个心跳包里,以便让节点知道当前集群信息,16384=16k,在发送心跳包时使用char进行bitmap压缩后是2k(2 * 8 (8 bit) * 1024(1k) = 16K),也就是说使用2k的空间创建了16k的槽数。

虽然使用CRC16算法最多可以分配65535(2^16-1)个槽位,65535=65k,压缩后就是8k(8 * 8 (8 bit) * 1024(1k) =65K),也就是说需要8k的心跳包,作者认为这样不值得;并且一般情况下一个redis集群不会有超过1000个master节点,所以16k的槽位是个比较合适的选择.

Keys hash tags
Hash tags提供了一种途径,用来将多个(相关的)key分配到相同的hash slot中。这时Redis Cluster中实现multi-key操作的基础.

hash tag规则如下:
如果满足如下规则,{和}之间的字符将用来计算HASH_SLOT,以保证这样的key保存在同一个slot中。

1.key包含一个{字符
2.并且 如果在这个{的右面有一个}字符
3.并且 如果在{}之间存在至少一个字符

例如:

1.{user1000}.following和{user1000}.followers这两个key会被hash到相同的hash slot中,因为只有user1000会被用来计算hash slot值。
2.foo{}{bar}这个key不会启用hash tag因为第一个{}之间没有字符。

Cluster nodes属性
每个节点在cluster中有一个唯一的名字。这个名字由160bit随机十六进制数字表示,并在节点启动时第一次获得(通常通过/dev/urandom)。

节点ID被用来在整个cluster中标识每个节点。一个节点可以修改自己的IP地址而不需要修改自己的ID。

Cluster总线
每个Redis Cluster节点有一个额外的TCP端口用来接受其他节点的连接。这个端口与用来接收client命令的普通TCP端口有一个固定的offset。该端口等于普通命令端口加上10000.例如,一个Redis街道口在端口6379坚挺客户端连接,那么它的集群总线端口16379也会被打开。

节点到节点的通讯只使用集群总线,同时使用集群总线协议:有不同的类型和大小的帧组成的二进制协议。

集群拓扑
Redis Cluster是一张全网拓扑,节点与其他每个节点之间都保持着TCP连接。 在一个拥有N个节点的集群中,每个节点由N-1个TCP传出连接,和N-1个TCP传入连接。 这些TCP连接总是保持活性(be kept alive)。当一个节点在集群总线上发送了ping请求并期待对方回复pong,(如果没有得到回复)在等待足够成时间以便将对方标记为不可达之前,它将先尝试重新连接对方以刷新与对方的连接。 而在全网拓扑中的Redis Cluster节点,节点使用gossip协议和配置更新机制来避免在正常情况下节点之间交换过多的消息,因此集群内交换的消息数目(相对节点数目)不是指数级的。

各种分区方案
在这里插入图片描述
RedisCluster采用虚拟槽分区,所有的键根据哈希函数(CRC16[key]&16383)映射到0-16383槽内

在这里插入图片描述

http://www.khdw.cn/news/33381.html

相关文章:

  • 宏升温岭网站建设怎么建立网站快捷方式
  • 百度做一个网站怎么做呢如何实现网站的快速排名
  • 奇胜网络 邯郸网站建设四川企业seo
  • 海兴县做网站价格百度一下官方入口
  • 手机网站制作哪家公司好做神马seo快速排名软件
  • 自由型的网站宁波seo优化定制
  • 中国人民人寿保险公司官方网站登录推广产品的软文怎么写
  • 域名查询网站淄博seo培训
  • 泰州网页网站制作班级优化大师官网下载
  • 唐山做网站哪家公司好汕头seo代理商
  • 恐怖网站代码百度seo排名优化教程
  • 自己做小程序要钱吗百度seo服务方案
  • 酒店网站建设流程高级搜索百度
  • 名者观看网站站长之家论坛
  • 个人网站建设规划论文南昌网站设计
  • 做动图素材网站河北百度seo点击软件
  • 广西建设网桂建云网站互联网最赚钱的行业
  • 做图片素材的网站广告文案经典范例200字
  • 有啥网站是专做时尚穿搭营销策划书
  • 做养生的网站多吗b2b自动发布信息软件
  • 我的网站现在没有排名_我想问是不是花钱做百度推广就会有排名杭州免费网站制作
  • 南阳医疗网站建设公司如何让百度能查到自己
  • 利鑫做彩票网站杭州最专业的seo公司
  • 站长查询域名站长工具免费
  • 相亲网站牛推网络
  • 网站开发技术写什么内容云浮网站设计
  • 网站扫码怎么做sem培训班
  • 怎么给网站做404界面桂林seo
  • 杭州集团公司网站制作微信推广方案
  • 深圳网站制作就找兴田德润合肥网络推广有限公司