1.P2P架构副作用

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:
1.1 Gossip通信开销

Gossip消息的通信开销是P2P分布式系统带来的第一个副作用。有一篇关于Gossip通俗易懂的文章《Life in a Redis Cluster: Meet and Gossip with your neighbors》。Redis为集群操作的消息通信单独开辟一个TCP通道,交换二进制消息:

  • PING/PONG:Cluster的心跳,每个结点每秒随机PING几个结点。结点的选择方法是:超过cluster-node-timeout一半的时间还未PING过或未收到PONG的结点,所以这个参数会极大影响集群内部的消息通信量。心跳包除了结点自己的数据外,还包含一些其他结点(集群规模的1/10)的数据,这也是“Gossip流言”的含义。
  • MEET/PONG:只有MEET后的受信结点才能加入到上面的PING/PONG通信中。

关于Gossip的问题不可避免,我们只能通过参数调整和优化,在通信效率和开销之间找到一个平衡点。因为笔者还未搭建过大规模的Redis Cluster集群,关于集群的性能和参数调优还不能给出建议,留到积累足够经验再做整理吧。






本文作者:geelou
本文来自云栖社区合作伙伴rediscn,了解相关信息可以关注redis.cn网站。
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
7天前
|
存储 前端开发 JavaScript
【思维扩展】状态机与 React 中的状态
【思维扩展】状态机与 React 中的状态
|
3月前
|
前端开发 JavaScript 数据安全/隐私保护
第十一章 使用高阶函数和非高阶函数对组件进行优化
第十一章 使用高阶函数和非高阶函数对组件进行优化
|
5月前
|
缓存 Java 编译器
探究Java方法的优化与最佳实践:提升性能与代码可维护性
探究Java方法的优化与最佳实践:提升性能与代码可维护性
|
11月前
|
Rust 前端开发 JavaScript
对比编程语言的四种错误处理方法,哪种才是最优方案?
对比编程语言的四种错误处理方法,哪种才是最优方案?
66 0
|
Scala 开发者
偏函数的必要性 | 学习笔记
快速学习偏函数的必要性
40 0
|
前端开发 API
「在性能优化中妙用Promise」寒草🌿 教你对接口请求进行合并(一)
「在性能优化中妙用Promise」寒草🌿 教你对接口请求进行合并(一)
446 0
|
存储 安全 算法
STL中有哪些副作用或稍不注意会产生性能开销的地方?
可能很多人都不在意,在使用STL容器的时候,潜意识里面将clear()成员函数视为常量时间复杂度O(1)的。但是其实不然。我感觉可能是很多人都知道对于vector而言,clear()之后,修改了size()的结果,不影响capacity()的结果,因而得出clear()只是修改了某个标记,是常量时间复杂度的错误结论。
713 0
|
前端开发 JavaScript
秒懂高阶编程之惰性函数
秒懂高阶编程之惰性函数
148 0
秒懂高阶编程之惰性函数
|
存储 JavaScript 前端开发
前端基石:高阶函数之柯里化、组合函数、惰性思想
本文主要讲高阶函数之柯里化、组合函数、惰性思想
209 0
|
存储 自然语言处理 前端开发
前端基石:预处理机制,变量提升
本文主要讲预处理机制,变量提升
106 0