先抛出一个问题,我们在进行用户注册的时候,一般需要向用户系统提交数据,数据持久化到数据库,同时我们也需要用户向我们的邮件系统提交数据,当同一时刻,大批量新用户啊进行注册的时候,用户系统,与邮件系统就承载过大的压力,其中注册邮件可以采取异步通信的方式来实现,下面聊一聊异步通信中常用的中间件,MQ,ActiveMQ,RocketMQ,还有kafaka等
其流程: Producer>NameServer>Broker>Conusmer,
Producer Cluster 向NameServer注册中心进行注册,并获取broker的地址,定时查询Topic消息, NameServer只是配置节点没有什么具体任务
Broker 用来存储数据信息,一般会进行主从Broker设置,搭建Broker Cluster, 并定时返回心跳与Topic给到NameServer,
Consumer cluster 向NameServer注册中心注册,并获取broker的地址,定时查询Topic消息
特点:
顺序,事务,集群,广播,亿级, 分布式,Push与Pull的消息订阅模式
开发流程:
项目代码流程
下载RocketMq
解压
配置环境
启动NameServer,Borker
引入pom依赖
制定生产者
制定消费者
消息折可以指定消费的方式
但就项目而言,我们常见的消峰的案例: app端,app端进行埋点数据上报消峰案例; PC端, 分布式调用跟踪系统埋点数据消峰