18 | Docker容器化:说一说IM系统中模块水平扩展的实现
该思维导图由 AI 生成,仅供参考
垂直扩展
提升单机硬件性能
- 深入了解
- 翻译
- 解释
- 总结
文章标题:Docker容器化:IM系统中模块水平扩展的实现 本文深入探讨了在即时聊天场景中,如何实现IM系统中模块的水平扩展。首先介绍了垂直扩展和水平扩展的概念,强调了水平扩展对于应对突发流量的重要性。在垂直扩展方面,文章提到了提升单机硬件性能和增加单机服务处理能力的方式。然后,重点讨论了水平扩展在接入层的实现,包括通过DNS轮询多VIP来解决单VIP入口瓶颈问题,以及对接入服务的无状态化设计和中央资源的维护,实现接入层的水平扩展解耦。文章通过详细的技术分析和实际场景举例,为读者呈现了IM系统中模块水平扩展的实现方法和技术特点。 在业务层方面,文章提到了利用DNS轮询“单域名多VIP”来解决接入层VIP入口的瓶颈问题,以及通过“服务拆分”和“中央的在线状态资源”实现业务层的水平扩展。对于资源层的水平扩展,文章提到了通过数据分片机制和增加从库来缓解主库和从库的压力,实现资源的水平扩展。最后,文章介绍了容器化部署的重要性,以及如何利用Docker等容器化技术来实现快速扩容,提高部署效率。 总的来说,本文通过深入的技术分析和实际案例,详细介绍了在即时消息场景中,如何实现IM系统中模块的水平扩展。从接入层、业务层到资源层,都提出了相应的解决方案和技术特点,为读者呈现了一幅完整的技术实现图景。同时,强调了容器化部署在实现快速扩容和提高部署效率方面的重要性,为读者提供了一种解决方案。
《即时消息技术剖析与实战》,新⼈⾸单¥59
全部留言(23)
- 最新
- 精选
- leslie老师:目前有没有什么不错的开源IM项目可以学习和研究?
作者回复: 可以看看mqtt的github项目,另外国内应该蘑菇街开源了一款叫teamtalk的im软件,也可以看看。
2019-10-0717 - 大魔王汪汪老师的课程应该是最近半年极客时间最棒的啦!其他的竟是些概念理论的泛泛而谈😜
作者回复: 欣慰,感谢支持,继续努力~
2019-10-07213 - 东东🎈老师,如果遇到ddos攻击,有啥处理方案吗?
作者回复: 硬件层面可以上硬件防火墙来清洗异常流量,软件层面可以通过缩短syn半连接的超时来缓降。
2019-10-078 - clip用分片来做水平扩展的话灵活性是低的吧,是不是不适合随着每天波峰、波谷来调整?感觉只能扩很难收。 如果某个时段有大量写入,用什么方式应对比较合适呢?
作者回复: 跟随流量波动来进行资源层的扩缩容对于数据读取可能比较有效,但是对于数据依赖master的写入扩缩容实现会比较麻烦。对于写入的优化可以采用类似操作系统buffer的机制,来对写入数据进行合并后批量写入,甚至根据业务来进行更高级的定制化合并逻辑。这一块我在第20篇万人群聊系统的设计中会讲一下。
2019-10-096 - QQ怪可以分库分表来解决单表写入数据量大,查询时间过长,但实现其复杂性也增加了,需要实现分区键或者说以什么依据来进行分库分表
作者回复: 嗯,分库分表是一个有效提升写入能力的手段,除了这个还有其他优化方式吗?
2019-10-0725 - HelloTalk要想解决资源层的写入瓶颈,除了分片机制外,还可以移步写 用队列来操作
作者回复: 是个方案,不过队列更多起到的是削峰填谷的作用,对写入瓶颈的真实写入能力提升有限。
2019-10-074 - kamida老师 请问长链接请求是怎么从lvs转到网关的啊。 是接入服务先返回给用户一个网关地址 然后用户直接长链接到那个网关的吗
作者回复: 用户拿到的是vip地址,实际请求会路由到lvs所在的机器,再由lvs转发给真正后面的网关服务器。当然,也可以不用vip来直连网关机,存在的问题是服务上线时需要暂时下线这台网关机可能比较麻烦。
2020-03-1353 - 面爸人数统计的话,应该用redis就可以实现,写入的话,可以队列,异步去写
作者回复: 嗯,redis作为计数没问题的,不过异步写入只是起到削峰填谷的作用,并不能提升写入的绝对能力,可以再想一想哈
2019-10-073 - 唯我天棋1.连接层和业务层之间增加一个业务代理,这样连接层可以更加专注于处理连接问题,让业务代理来完成服务发现,管理业务集群,这样会不会更好? 2.为什么在连接层直接rpc调用业务端。那业务端需要通过这条连接推送消息不是会很不方便吗?
作者回复: 服务发现本身是rpc框架自带的通用特性,对系统消耗很小,再增加一层会使消息收发链路变长,整体稳定性可能会有影响。 业务层推送消息是通过消息队列来实现的,不需要依赖rpc。
2019-11-042 - Jun是否可以先在服务器端聚合一段时间的数据再写入
作者回复: 嗯,不错的想法,业务允许一定的风险的话这是一个不错的优化手段。
2019-10-112