007. 服务间通信 RPC & REST over HTTP(s) & 消息队列

 

  • 服务间通信

    服务间通信的几种方式: RPC、REST over HTTP(s)、消息队列。

     https://www.jianshu.com/p/2a01d4383d0b

    

  • RPC

    https://blog.csdn.net/weixin_42672054/article/details/81708464#commentBox   创建WebService工程

  1.RPC允许程序调用另一个地址空间的过程或函数,而不需要显式编码这个远程调用的细节。

    在底层去看,RPC其实就是将流从一台计算机传输到另外一台计算机,无论是基于传输协议(http、tcp、udp等等)和网络IO(bio、nio)来实现。

 

 

  2. RPC的基本特点如下:

  • 通过网络传输的
  • 跨终端、跨平台的
  • 基于请求-响应的
  • 只调用过程,不需关注细节

  

  3.常见的RPC技术

    https://blog.csdn.net/chen213wb/article/details/80330356 

 

WebService

(现在基本不使用)

跨语言的,基于SOAP协议,基于xml数据或json数据

SOAP WebService: JAX-WS

restful WebService:  JAX-RS

SpringCloud Spring的,基于Socket的,SOA架构的分布式框架  
Dubbo(x) 阿里巴巴的,基于Socket的,SOA架构的分布式框架  
Hessian 跨语言的,基于Binary-RPC协议,走二进制数据  
     

 

 

  • REST over HTTP(s)

    https://www.jianshu.com/p/b1910c425268  

    REST是一种架构风格,REST规范把所有内容都视为资源,网络上一切皆资源。

    REST并没有创造新的技术,组件或服务,只是使用Web的现有特征和能力。 可以完全通过HTTP协议实现,使用 HTTP 协议处理数据通信

 

 

     REST调用及测试都很方便,RPC就显得有点繁琐,但是RPC的效率是毋庸置疑的,所以建议在多系统之间的内部调用采用RPC。对外提供的服务,Rest更加合适。

 

  •     使用SpringBoot创建 restful 的微服务

 

 

 

  • 消息队列

    通过将微服务连接到集中消息总线来工作,服务之间的通信通过 发送消息/接收消息 来完成。

    

    AMQP(RabbitMQ)

 

posted @ 2019-04-21 00:19  badboyh2o  阅读(956)  评论(0编辑  收藏  举报