数据通信(RESTFul、RPC、消息队列),分布式节点之间的通信

RESTFul


Representational State Transfer(表现层状态转化)

具体的介绍戳这

RPC


RPC(Remote Process Call) - 远程过程调用,一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输协议存在,如TCP或UDP,为通信程序之间携带信息数据.在OSI网络通信模型中,RPC跨越了 传输层和应用层.RPC使得开发分布式程序就像开发本地程序一样.

RPC采用C/S模式,都运行在自己的JVM中,客户端只需要引入要使用的接口,接口的实现和运行都在服务器端.

RPC主要依赖的技术包括 序列化,反序列化和数据传输协议 ,这是一种定义与实现相分离的设计.

常见的RPC框架

  • RMI(JDK自带):JDK自带的RPC
  • Dubbo:Alibaba开源的高性能优秀的服务框架.
  • HEssian:轻量级的remotingonhttp工具,使用简单方法提供 RMI 功能.相比于WebService,Hessian更简单,快捷.采用二进制协议.
  • Thrift:Fackebook开源的跨语言的RPC通信框架.

消息中间件


消息中间件,也可以叫做消息队列,通常用于解决服务之间的 异步调用 问题.
请求服务方把请求队列放到队列中即可返回,然后等待服务服务提供方从队列中获取请求进行处理,之后通过回调机制吧结果返回给请求服务方.

  • 解耦
  • 最终一致性:两个系统的状态保持一直,可以有一定的延迟,只要达到最终一致性.
  • 广播: 消息队列最基本的功能. 生产者负责生产消息,订阅者接收消息
  • 错峰和流控

常见的消息队列

  • ActiveMQ
  • RabbitMQ
  • RocketMQ
  • Kafka:分布式的,可分区的,可复制的,基于发布/定义的消息系统.Kafka主要用于 大数据领域 .
计算机网络