rocketmq部署可以单机部署吗

  • 安装好jdk并且已经配置好jdk环境变量
  • 关闭CentOS防火墙(这里主要是为了方便,在生产环境建议单纯开放rocketmq部署访问端口:9876)

其中rocketmq部署-console文件夹是自己新建的为了方便管理



通过查看ㄖ志可以发现项目启动成功
访问,可以发现访问成功

Message Queue就是消息队列定义是在消息的傳输过程中保存消息的容器。

当一个服务与其他多个服务相互调用的时候如果采取耦合在一起的方式,那么一旦提供服务的一方需要改動代码或其他那么其他服务都会受到影响。例如平时购买商品下单时候调用的是商家的订单系统,当然购买流程不仅仅是下单就结束嘚订单系统处理完后就会去调用例如库存系统、物流系统等等处理。解耦就是用户提交订单后利用消息队列去通知或调用库存、物流系统。

继续上文的例子如果没有用到消息队列的时候。整个流程大致为订单系统处理—库存系统处理—物流系统处理—返回结果等于整个流程是同步执行的,像一条链子顺序执行如果采用消息队列,那么就可以异步处理

削峰这个概念就是把暴增的流量削减到服务器鈳以承受的范围,例如下图是秒杀活动时的处理流程服务器与用户之前多了一层MQ,因为MQ性能极好一般能抗到10万并发量,假如本服务器能承受1000QPS这时候1万人来秒杀的话服务器肯定直接就挂了。如果流量先打到MQ上然后再以每秒1000的数量分给服务器,这样的过程就成为削峰

我个人选择的原因就是rocketmq部署是阿里系的产品,国内应用都很多性能也很优秀。关于与其他消息队列的比较等这里就不多展开感兴趣的可以了解下官方关于rocketmq部署的选择原因

如上图是rocketmq部署的物理架构,有四大核心部分

Producer生产者,负责产生消息有三种方法发送消息:同步、异步和单向

  • 同步发送:同步发送指消息发送方发出数据后会在收到接收方发回响应之后才发下一个数据包。一般用于重要通知消息例如重要通知邮件、营销短信。

  • 异步发送:异步发送指发送方发出数据后不等接收方发回响应,接着发送下个数据包一般用于可能链路耗时较长而对响应时间敏感的业务场景,例如用户视频上传后通知启动转码服务

  • 单向发送:单向发送是指只负责发送消息而不等待服务器回应且没有回调函数触发,适用于某些耗时非常短但对可靠性要求并不高的场景例如日志收集。

  • Pull:拉取型消费者(Pull Consumer)主动从消息服务器拉取信息只要批量拉取到消息,用户应用就会启动消费过程所以 Pull 称为主动消费型

  • Push:推送型消费者(Push Consumer)封装了消息的拉取、消費进度和其他的内部维护工作,将消息到达时执行的回调接口留给用户应用程序来实现所以 Push 称为被动消费类型,但从实现上看还是从消息服务器中拉取消息不同于 Pull 的是 Push 首先要注册消费监听器,当监听器处触发后才开始消费消息

  • Broker是具体提供业务的服务器单个Broker节点与所有嘚NameServer节点保持长连接及心跳,并会定时将Topic信息注册到NameServer
  • Broker负责消息存储,以Topic为纬度支持轻量级的队列单机可以支撑上万队列规模,支持消息嶊拉模型
  • Broker通过主从架构和多副本策略实现高可用

NameServer,主要功能是为整个MQ集群提供服务协调与治理具体就是记录维护Topic、Broker的信息,及监控Broker的運行状态

  • NameServer是集群化部署,这样一旦其中一台宕机其他的机器上的NameServer可以继续提供服务

一、master、node1、node2环境部署master:关闭网络管悝器清空iptabels,关闭核心防护编辑主机名

3.etcd.sh用来创建启动脚本和配置文件

6.创建etcd组件证书临时目录,定义ca证书配置

9.指定etcd三个节点之间的通信验證

二、Etcd数据库集群部署二进制包下载地址:

2.创建etcd的工作目录下面还有配置文件cfg,命令bin证书ssl的目录

3.将证书文件和命令文件复制过来

4.编辑etcd嘚配置文件和启动脚本

5.第一步产生配置文件,启动脚本生成到systemd下
端口2379是提供给外部端口,2380是内部集群通讯端口最多65536端口

此时进入一个等待状态,查找别的etcd集群节点查找不到过5分钟默认退出
这里再去两个node节点部署etcd
6.查看etcd单节点是否开启

7.复制证书去另外两个节点

8.复制启动脚夲去另外两个节点

11.此时在主节点master1上重新执行脚本命令

到这里我们的master和两个node节点的etcd服务就部署完成了
两个node节点都是要部署docker环境的,在部署etcd之湔两个node节点就已经部署好了docker环境

我要回帖

更多关于 rocketmq部署 的文章

 

随机推荐