zoukankan      html  css  js  c++  java
  • 企业级工作流解决方案(二)--微服务总体介绍

      微服务好处和概念性的东西就不介绍了,对于微服务,个人认为并不是越复杂就越好,相反要结合自己公司的现状,适当的做一些裁剪,比如对于规模和业务量不是特别大的企业,就没有必要把服务总线,服务健康检查,服务路由选择,熔断等等加进来,相反,这一部分职责可以通过配置文件,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需要创建服务委托对象,调用真正的服务。

    微服务详细交互过程

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

  • 相关阅读:
    Django之admin
    Django之CSRF(跨站请求伪造)
    Django之Cookie
    Django之Session
    Django|第一部
    简单的udp消息收发
    .net core里使用ado.net访问sqlserver数据库
    CentOS8中安装SQLServer
    CentOS里配置.net core运行环境(含后台运行,附ssh长连接)
    发布"dotNet core"到CentOS8
  • 原文地址:https://www.cnblogs.com/spritekuang/p/10805472.html
Copyright © 2011-2022 走看看