- 服务间通信
服务间通信的几种方式: 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)