一. 粗略认识RocketMQ
RocketMQ主要解决当访问服务数量超过系统性能瓶颈的问题,大概的解决思路就是先把信息收集起来,然后按照自己的速度一步步处理,而系统的访问者在把信息发送给RocketMQ之后,可以不用等返回结果,就可以先去忙自己的另外的工作.
RocketMQ的特点:异步化,基本一致性,流量削峰,降低偶尔.
它的运行情况大概是这么一个场景:
有很多经纪人(broker),其中能力强的被称作大师级经纪人(Master broker),能力弱一点的被称作经纪人专员(slave broker),经纪人专员(slave broker)依附于大师级经纪人(Master broker),他们组合在一起被称作是经纪人团队(broker).
经纪人团队(broker)如果需要营业那么需要现在一个叫做NameServer的地方进行登记注册,并且每隔一段时间发送一个请求过去证明自己还可以继续工作.这个经纪人团队由大师级经纪人(Master broker)负责接收消费者的信息,当大师级经纪人(Master broker)出现状况的时候,这个团队中的某个经纪人专员(slave broker)会升级为大师级经纪人.经纪人专员(slave broker)主动从大师级经纪人那里获得信息.并由大师级经纪人(Master broker)分配得到消息后由谁去处理.
消费者如果需要寻找服务,他们会通过NameServer找到经纪人团队(broker),消费者把自己的要求告诉经纪人团队(broker),然后消费者就不用管了,经纪人团队(broker)在方便的时候就会把消费者要做的下一步事情完成.
在这个场景中消费者(服务调用者)不会受到阻塞,因为它只是会把任务发送给了broker,这样就可以解决消息量高并发的问题.
二.前期准备
2.1 下载RocketMQ
2.2 在windows上安装RocketMQ
2.2.1 设置环境变量
添加名为ROCKETMQ_HOME的环境变量,值为rocketMQ的安装目录,安装目录最好不要有中文或者特殊字符.
添加名为NAMESRV_ADDR的环境变量,用来指向nameServer服务的地址,本地测试一般使用本地机器地址,例如:localhost:61011 选一个没有被占用的端口.
2.2.2 修改cmd文件
rocketMQ默认是用的JDK版本是1.8,如果低于这个版本将无法运行,如果高于这个版本需要修改两个cmd文件.