“高级篇“码头工人之微服务间如何通讯(六)

  
  
  

原创文章,欢迎转载。转载请注明:转载自它人故事会,谢谢!
原文链接地址:“高级篇“码头工人之微服务间如何通讯(六)

        

从通信模式角度考虑

  
  

说到通信可能会想到:插座、http、tcp/ip、饲养员等等,这么多东西在一起可能会感觉比较乱,提供个思路来考虑微服务的问题,通信方式和通信协议来考虑。

     
通信方式
  
      <李>一对一(同步),特别常见请求相应模式,最常见的李   <李>一对一(异步),某个服务发送通知的时候,不需要等待响应,不需要对方立刻响应,而是通过回调的方式得到对方的响应。   <李>没有一对多(同步)这种场景李   <李>一对多(异步),发布订阅的方式,发布异步响应,例如:滴滴打车,叫一辆车的时候,系统会将我这个消息告诉所有能够接受消息的车主,他们来抢单,发出一个响应回来,就知道那位师傅抢到了单子。   
  
通信协议h5>   <李> REST API   
  

很多人把rest api等同于http的接口设计,其实他们不能直接化等号的,休息是很早提出的一个概念,休息是表现层的状态转移,其实这个没几个人可以听的懂,其实都是网络中客户端和服务端的一种交互形式,它本身就是一个抽象概念,主要是如何设计一个rest api,以http为例,就是用http协议来实现休息形式的api,

  李      

在网络应用中处理来自客户端的请求时,通常只考虑GET和POST这两种HTTP请求方法。实际上,HTTP还有头,说,删除等请求方法。而在其他架构中,用不同的HTTP请求方法来处理对资源的CRUD(创建,读取,更新和删除)操作:
若要在服务器上创建资源,应该使用发布方法。
若要检索某个资源,应该使用得到方法。
若要更改资源状态或对其进行更新,应该使用把方法。
若要删除某个资源,应该使用删除方法。

  
      <李>   RPC

      
        <李>达博李   <李> motan李   <李> dubbox李   <李> grpc李   <李> 节俭   
      李   <李> MQ   
      

    消息队列,实际场景用的不太多,例如之前说的滴滴打车这种就是消息订阅的模式。

      李   
  
如何选择RPC框架h5>   

RPC是微服务方面最多的一种情况,也是选择比较多的情况,可选的RPC框架也非常的多,选择一个RPC框架是需要面临的问题。

     
      <李>   

    I/O,线程调度模型

      
      

    长连接,短连接,单线程,多线程,线程调度算法的性能

         李   <李>   

    序列化的方式

      
      

    可读的(XML、JSON),二进制(FASTJSON),为什么要考虑序列化呢,因为序列的效率直接影响到我们通信的效率,扩大了序列化和反序列化的时间,RPC的效率,同一个对象如果序列化小的话大大提升效率。

         李   <李>   

    多语言支持

      
      

    根据团队语言,如果是多语言就需要找支持多语言的RPC框架,如果单语言例如都是java,就直接达博只支持java。

         李   <李>服务治理   
      

    比如有没有服务发现,服务监控,一个拥有服务治理的RPC框架,一般支持集群的部署和服务高可用。

      李   
  
目前流程RPC框架有哪些
  
      <李>达博/DubboX   
      

    2014年10月份,达博就不在维护了,时隔3年达博又重新开始维护,一来用户量确实很多,二来微服务比较火,对微服务更好的支持.DubboX是在阿里的达博基础上开发的一套DubboX。只支持java语言。

      李   
  

  
      <李> Motan   
      

    一套新浪微博的,2016年5月进行的开源,号称每天支持新浪微博的千亿级别的调用量,通过春天的调用方式不需要额外的代码就具有分布式的能力。只支持java语言。

      李   
  

“高级篇“码头工人之微服务间如何通讯(六)