"《英雄联盟》支撑最高750万同时在…

      今天在CSDN上看到 《英雄联盟》支撑最高750万同时在线用户的聊天服务打造  一文。因为这一年多来,自己主要在做一款IM产品,对其他IM产品比较关注, 所以在此做做笔记和写下读后感。
      1、高性能:“ 支撑750万并发用户,2700万日活跃用户,每秒钟需要处理的消息上万条,每台服务器每天处理消息达十亿条。”," 每个Chat服务器都可以支撑数百万连接数。"。单服务器能支持的并发连接数和Whatsapp差不多,这个数值还是相当高的,整个服务得优化得很好。
      2、高可用:“ 世界范围内部署的chat服务器达数百台,负责运维人员只有3个"、“99%的可用率”。对此作了很多工作,比如自动化监控和报警、动态代码加载( 热更新、 更新服务不用重启)、灰度更新、充足的日志、自动化测试。
      3、服务架构:一开始基于开源 XMPP服务 Ejabberd(用Erlang语言编写)。不过后来对erlang进行定制,重写了Ejabberd大部分代码(“ 扩展性、性能和容错机制是个长期奋斗目标,大部分的Ejabberd代码都已经被重写”) ,也偏离了核心的XMPP协议(“   基于性能和新功能等原因,他们不得不偏离核心XMPP协议") 。。。。我觉得早知今日何必当初,估计一开始就用Java写可能还更快。(ps:erlang开发土想也知道很难找)
      4、数据库架构:一开始用Mysql,后来使用 Riak( 开始时选择的MySQL造成了性能、可靠性、扩展性等多方面的问题。比如,数据模式的修改速度匹配不了代码的变更“) 每台服务器上都运行了Ejabberd和Riak。
       我觉得比较有启发性的点:
       1、在开发时考虑好逃生通道。” 最近有一次客户端升级造成了无限广播用户状态的问题。着眼Graphite,工程师很快定位到服务器因新客户端上线(带来的新特性)而崩溃。”“ 新功能开发时就会被添加Toggles(on/off )特性,如果一个功能导致问题产生,工程师可以立刻关闭它。“。 我觉得相比期望代码绝对不出错,预先规划好逃生通道应该更为科学和可行些。前一段看到微信的一个服务端设计——如果发现某个客户端一段时间内流量异常(可能是客户端死循环导致),则向客户端发送一个命令让其强制下线。我觉得也是体现了一样的思路。不完美,but it works.
       2、 在开发时考虑好运维 。具体措施主要就是 自动化监控和报警、 热更新、自动化测试、压力测试、灰度发布这些。虽然概念都知道,可惜知易行难,往往由于人手和时间有限,没有办法去开发 相关 工具。从管理角度来看这些属于”重要但不紧急“的范畴。如果想要做真正优秀的服务,还是得在这方面继续努力。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分析一下这个json {"name":"12312","project_id":"87156","project_name":"上上下下左左右右baba与聚法科技(长春)有限公司与公司、证券、保险、票据等有关的民事纠纷","client":"[{"type":"自然人","customer_id":"80236","customer_name":"上上下下左左右右baba"}]","sign_date":"2023-06-06","expire_date":"2023-06-21","subject_amount":"123","contract_amount":"123","charge_method":"一次性,分阶段,风险,计时","equity_amount":"13811","amount_info":"[{"type":"一次性","pay_date":"2023-07-03","charge_amount":"12"},{"type":"分阶段","pay_date":"2023-06-13","charge_amount":"123","is_satisfy":"是","pay_condition":"12312"},{"type":"风险","pay_date":"","charge_amount":"","is_satisfy":"是","pay_condition":"123","basic_amount":"123","risk_amount":"12","object_amount":"123123","object":"赔偿金","risk_prop":"13213","member":"","rate":"","hours":""},{"type":"计时","member_id":"392159","member":"曹野","rate":"11","hours":"1231"}]","seal_person":"123","seal_type":"律所公章,法人名章,财务章","seal_num":"123","file_path":"[{"title":"导入错误数据 (15).xls","path":"382585/1686381522542/导入错误数据 (15).xls","size":"91136"},{"title":"3.txt","path":"382585/1686561731102/3.txt","size":44078}]","remark":"123123"} 并使用php转换成字符串
最新发布
06-13

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值