• 企业级工作流解决方案(二)--微服务总体介绍


      微服务好处和概念性的东西就不介绍了,对于微服务,个人认为并不是越复杂就越好,相反要结合自己公司的现状,适当的做一些裁剪,比如对于规模和业务量不是特别大的企业,就没有必要把服务总线,服务健康检查,服务路由选择,熔断等等加进来,相反,这一部分职责可以通过配置文件,nginx代理,api网关等等外围的技术来控制,当企业达到一定的规模之后,再来完善这部分内容,但是对于微服务处理过程来说,没有任何影响。

      我这里根据json-rpc 2.0标准,结合网上一些开源的微服务架构思想,采用dotnetty技术,搭建了一套轻量级的微服务通信组件,组件专注于Rpc Call这块的处理。

    整体说明

    先上一张图,Rpc socket调用过程

    Rpc调用处理方式

         三种处理方式:1. Local本地调用,一个服务调用另一个服务,有可能另个服务都宿主到同一个应用程序中,这种情况直接走本地调用;2. Tcp调用,这个应该是最体现价值的一种方式,服务消费者和服务提供者分别宿主到企业内部服应用程序中,相互之间通信走Tcp通道;3. Http调用,对于服务消费者和服务提供者一个在企业外部,一个在企业内部,或者其他语言开发的应用程序交互需要简单的集成调用,这种可以走Http调用过程。

    Socket消息传输

         直接基于dotnetty传输处理,dotnetty传输通道是串行的,服务端接收到消息的时候,每一个消息是异步线程完成处理的。

    消息处理对象

          调用方需要构造消息对象,并对消息进行编码,生成消息唯一Id,线程阻塞,等待线程被唤醒。服务端接收到消息,对消息进行解码,答复客户端的时候,需要拿到客户端调用生成的消息Id回调客户端,客户端收到答复消息,根据消息Id唤醒等待线程。

    Tcp Invoker和ProcessHandler

          主要是对Json-Rpc调用的请求和答复进行处理,并对内容进行处理,ProcessHandler需要创建服务委托对象,调用真正的服务。

    微服务详细交互过程

    先放一张图,后续对这种图进行详细的介绍。

  • 相关阅读:
    手工创建数据库的全部脚本及说明(转)
    HNOI 2009 梦幻布丁 链表 启发式合并
    【除草】【hnoi】精简题解
    矩阵乘法
    忧桑啊。。。
    【水】【SCOI】 精简题解
    [数论][SDOI2012]Longge的问题
    【2013】省选
    【集训队互测】ayq 三道题
    【水】 【SDOI】 极精简题解
  • 原文地址:https://www.cnblogs.com/spritekuang/p/10805472.html
Copyright © 2020-2023  润新知