前言

<< 分布式消息推送系统 >>
  • 如何保证消息的可靠性 ?
  • 如何实现消息的实时性 ?
  • 如何维护连接状态 ?
  • 如何维护客户端路由器 ?
  • 如何适配异地多活系统 ?
  • 如何实现消息重试 ?
  • 如何实现离线消息 ?
  • 如何使用raw epoll替换netpoll实现接入服务 ?
  • 如何分布式压测 ?
  • 如何做到全方位指标的可观测性 ?
  • 通过二级缓存减少时延
  • golang在推送系统中的优化
  • golang在推送系统中的编码技巧

现在公司的峰值客户端稳定在 40w 个, 突发情况可能在 45w 左右. 这么大的量线上肯定采用集群式部署, 足足有10台高性能主机, 虽然跟其他服务是混部模式,但每个节点无需承载太多的流量, 推送服务本身也有过载保护机制,每个主机最多被调度到10w条连接。听着这部署规模是稳妥的. 但作为一个优秀的程序员,我们依旧想让推送系统有更好的性能,保证单个服务最少可以抗30w的连接.

有时间再补充每页ppt内容,很多时候知道我没时间补充文稿,所以尽量用图片代替文字来描述枯燥的内容。

如果 ppt 中有你不理解的地方,大家可以到 https://github.com/rfyiamcool/share_ppt 这里提问题 issue .

内容

按照演讲目录来说,分了几块内容.

  • 什么是推送系统
  • 推送系统的架构
  • 性能调优
  • 压力测试
  • 运维部署

地址

完整 ppt 的下载地址 :

记得点 github star 哈 …

截图预览

ppt 的页数有 50 页,只是传了部分的预览图,想看完整的 ppt 可以到github中看。