xxzkj

中间件

现有的网络通信架构都是阻塞的,对比的bio模式。如果加上消息中间件则可以让我们解耦,变成NIO模式,非阻塞。

mq 分布式消息中间件

应用场景:系统解耦,流量削峰,数据异步处理等等。

常用的消息中间件

  • activemq
  • rockmq
  • kakfa

核心设计

协议 协议有语法,语义,时序,主体等部分组成。 比如http协议,规定请求和响应的格式。 消息中间件一般不会使用http使用(臃肿,短链接), 会使用amqp,openwire(activemq), mqtt, kafka, openmessage, 【jms】(java官方消息规范)。

为什么不使用http做消息队列的协议。

因为http 比较复杂,不适合简单

amqp协议

特性:事务支持,持久化支持。

MQTT(物联网) 协议

特性: 轻量,结构简单,传输快,没事事务支持,没有持久化

open message协议(阿里发起,国内)

特性:结构简单,解析快,事务设计,有持久化设计

kafka协议

特性:结构简单,解析快,无事务设计,有持久化设计

持久化

持久化是为了保证数据安全可用而设计出的,一般保存在本地磁盘。

消息分发

  • server 推向 consumer。
  • consumer 请求获取 server。

mq支持

高可用

  1. 主从共享数据部署

其余broker只是master的备份不提供服务。

  1. 主从同步部署
  • 主会更新数据, 主会更新副本通过广播。
  • 主从都可以提供读
  1. 多主集群转发部署

高可靠

  • 消息传输可靠:通过协议保证数据解析正确性
  • 消息存储可靠:通过持久化来保证消息存储的可靠性。

负载均衡 nginx

分层

缓存中间件

redis

memcached

数据库中间件

mycat

分类:

技术点:

相关文章:

  • 2021-12-10
  • 2021-12-21
  • 2022-01-28
  • 2021-11-23
  • 2022-01-20
  • 2021-05-06
  • 2021-06-12
  • 2021-11-30
猜你喜欢
  • 2022-12-23
  • 2022-01-08
  • 2021-10-08
  • 2021-11-12
  • 2022-01-12
相关资源
相似解决方案