消息中间件,RPC框架,数据库中间件的概念认知
消息中间件
什么是消息中间件
对中间件的理解大概就是具体业务和底层逻辑解耦的组件。相当于前端业务和底层逻辑的中间桥梁。
消息中间件是在分布式系统中发送和接受消息的基础服务设施。
能够做什么?
- 业务解耦:交易系统不需要知道短信通知服务的存在,只需要发布消息
- 削峰填谷:比如上游系统的吞吐能力高于下游系统,在流量洪峰时可能会冲垮下游系统,消息中间件可以在峰值时堆积消息,而在峰值过去后下游系统慢慢消费消息解决流量洪峰的问题
- 事件驱动:系统与系统之间可以通过消息传递的形式驱动业务,以流式的模型处理
RPC框架
什么是RPC框架
远程过程调用协议RPC(Remote Procedure Call Protocol) 两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,
由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。
能够做什么?
- 建立客户端和服务器之间的TCP链接,不同的RPC协议,有不同的连接寻址方式。
- 在发起远程调用时,由于网络协议是二进制的,所以在传输前要进行对传输实体进行转换二进制的过程,也是就序列化过程(Serialize),通过寻址和二进制的数据传输到服务器端
- 在接受到数据后,需要进行反序列化过程解析二进制数据。
其实就是解决在分布式下,横向拓展的前提下,不同服务器相互调用方法的问题。
数据库中间件
什么是数据库中间件
同样在分布式的架构中,数据库也放到不同的服务器上,需要通过中间的路由进行调用。这个路由实际上就是数据库中间件。
能够做什么?
- 实现读写分离,但是每个服务器上都需要有一份完整的数据库
- 实现分库分表,通过消息中间件进行查询分派到某一个特定的服务器上,通过这个服务器查询出内容返回到消息中间件,再通过中间件返回到客户端。