MQ的背景及其作用
消息队列作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性。
作用:记住3点:解耦、削锋、异步
1、削峰填谷(主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题)
2、系统解耦(解决不同重要程度、不同能力级别系统之间依赖导致一死全死)
3、提升性能(当存在一对多调用时,可以发一条消息给消息系统,让消息系统通知相关系统)
4、蓄流压测(线上有些链路不好压测,可以通过堆积一定量消息再放开来压测)
个人服务器安装坑
1、下载完rocketmq-4.4.0在个人云服务器中安装。
2、修改bin目录下runbroker.sh和runserver.sh的默认的虚拟机内存较大,启动Broker如果因为内存不足失败
3、在本地打rocketmq控制台的jar放到linux运行,发现控制台的ip地址是内网,导致小demo实现不了,
通过以下方法改了ip地址,小demo成功访问
#进入rocketmq根目录
cd incubator-rocketmq/distribution/target/apache-rocketmq
#编写配置文件,并写好配置
echo "brokerIP1=10.19.73.64的外网IP" > broker.properties
#启动 mqnamesrv
nohup sh bin/mqnamesrv &
#重点:mrbroker 启动时通过 -c 加载配置文件
nohup sh bin/mqbroker -n ${namesrvIp}:9876 -c /opt/rocketmq/incubator-rocketmq/distribution/target/apache-rocketmq/broker.properties &
RocketMQ集群搭建
各角色介绍
Producer:消息的发送者;举例:发信者
Consumer:消息接收者;举例:收信者
Broker:暂存和传输信息;举例:邮局
NameServer:管理Broker;举例:各个邮局的管理机构
Topic:区分消息的种类;一个发送者可以发送信息给一个或者多个Topic;一个消息的接收者可以订阅一个或者多个Topic信息。
Message Queue:相当于是Topic的分区;用于并行发送和接收消息。