• 【京东咚咚架构演进】-- 好文收藏


    索引:

    目录索引

    架构好文学习,攒~~

    京东咚咚架构演进 -- By 【瞬息之间】

    名词解释:

      Apache MINA: 百度百科

      HAProxy: 百度百科

    1.0 架构笔记:

      优点:模型结构简单---理解起来简单;开发起来简单;部署起来也简单。

      缺点:效率和扩展---这个模型实际上是一个高功耗低效能的模型,不活跃的连接在那做高频率的无意义轮询,高频有多高呢,基本在 100 ms 以内,

         你不能让轮询太慢,比如超过 2 秒轮一次,人就会在聊天过程中感受到明显的会话延迟。 随着在线人数增加,轮询的耗时也线性增长,

         因此这个模型导致了扩展能力和承载能力都不好,一定会随着在线人数的增长碰到性能瓶颈。

    2.0 架构笔记:

      改进点:业务功能体验的提升上---针对无法及时提供服务的顾客,可以排队或者留言。 针对纯文字沟通,提供了文件和图片等更丰富的表达方式。

          另外支持了客服转接和快捷回复等方式来提升客服的接待效率。

    3.0 架构笔记:

      改进点:业务划分服务,且服务进行分层---服务化的第一个问题如何把一个大的应用系统切分成子服务系统。

          按业务重要性级别划分了 0、1、2 三个级别不同的子业务服务系统。 另外就是独立了一组接入服务,针对不同渠道和通信方式的接入端。

          服务架构&分层---a.UI接入层 --- 客服用(web/app..)系统,员工用(web/app/pc...)

                    b.负载均衡层 --- TCP长连接,HTTP短连接

                    c.路由服务层 --- 路由 Tracker

                    d.业务服务层 --- 业务子系统及API服务

                    e.基础服务层 --- 基础框架服务(安全/风控/资源分配...)

                    f.资源服务层 --- DB/Cache/NoSQL/MQ....

          消息投递模型---不再是轮询了,而是让终端每次建立连接后注册接入点位置,消息投递前定位连接所在接入点位置再推送过去。

                 这样投递效率就是恒定的了,而且很容易扩展,在线人数越多则连接数越多,只需要扩展接入点即可。 

                 使用了 MongoDB 来单独存储量最大的聊天记录。 

    4.0 架构笔记:

      拍拍网消息缺陷:a.复制工程,定制业务开发,多套源码维护成本高

              b.独立部署,至少双机房主备外加一个灰度集群,资源浪费大

      系统持续演进:面向平台---始考虑面向平台去架构,在统一平台上跑多套业务,统一源码,统一部署,统一维护。 把业务服务继续拆分,

             剥离出最基础的 IM 服务,IM 通用服务,客服通用服务,而针对不同的业务特殊需求做最小化的定制服务开发。

             部署方式则以平台形式部署,不同的业务方的服务跑在同一个平台上,但数据互相隔离。

             细粒度服务开发---更细粒度的服务意味着每个服务的开发更简单,代码量更小,依赖更少,隔离稳定性更高。

      架构VS业务: 技术架构没有绝对的好与不好, 技术架构总是要放在彼时的背景下来看,要考虑业务的时效价值、团队的规模和能力、

               环境基础设施等等方面。 架构演进的生命周期适时匹配好业务的生命周期,才可能发挥最好的效果。

                                             蒙

                                        2017-08-02 09:20 周三

  • 相关阅读:
    idea不显示gradle的视图解决办法
    curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.报错
    记录使用yum安装nginx之后的目录问题
    已安装nginx动态添加模块
    nginx的http_sub_module模块使用之替换字符串
    利用referer属性,记录百度搜索跳转参数
    Springboot中Aspect实现切面(以记录日志为例)
    vue_axios请求封装、异常拦截统一处理
    使用jetty工具包处理url参数成map
    利用Java自带的MD5加密
  • 原文地址:https://www.cnblogs.com/Meng-NET/p/7272108.html
Copyright © 2020-2023  润新知