zoukankan      html  css  js  c++  java
  • Spring Cloud Alibaba 搭建(RocketMQ篇)

      RocketMQ 是一款开源的分布式消息系统,还有其他rabbitMq、kafka等其他消息队列组件,官方推荐RocketMQ更符合分布式开发系统。

    一、下载RocketMQ

      官网地址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.3.2/rocketmq-all-4.3.2-bin-release.zip

      集群模式教程:https://github.com/apache/rocketmq/blob/master/docs/cn/operation.md

    二、启动 NameServer

      如果是云服务器,建议使用公网IP,若使用内网IP容易出现问题。

    nohup ./mqnamesrv -n 124.xxx.xxx.xxx:9876 &

    三、启动 Broker

      配置文件./config/broker.conf

    ......
    brokerClusterName = DefaultCluster
    brokerName = broker-a
    brokerId = 0
    deleteWhen = 04
    fileReservedTime = 48
    brokerRole = ASYNC_MASTER
    flushDiskType = ASYNC_FLUSH
    # 如果云服务,远程调用需要配置,不然会默认内网192.168.x.x
    brokerIP1=124.xxx.xxx.xxx

      调用broker,这里需要使用上面配置的broker.conf(若producer等都是本地,也可以不需要配置)

    nohup ./mqbroker -n 124.xxx.xxx.xxx:9876 -c ../conf/broker.conf &

    四、配置生产者

      例子代码:https://github.com/alibaba/spring-cloud-alibaba/tree/master/spring-cloud-alibaba-examples/rocketmq-example

      打开idea中maven项目导入。

      其他基本都不需要改变,主要是application.properties配置文件需要修改。

    ......
    #这个云服务需要公网IP,如果本地则默认localhost:9876
    spring.cloud.stream.rocketmq.binder.name-server=124.xxx.xxx.xxx:9876
    ......(下面省略)

      直接运行RocketMQProduceApplication类中的main方法,消息就会推送。可以看到控制台信息

    四、配置消费者

      其他基本都不需要改变,主要是application.properties配置文件需要修改。

    ......
    #这个云服务需要公网IP,如果本地则默认localhost:9876
    spring.cloud.stream.rocketmq.binder.name-server=124.xxx.xxx.xxx:9876
    ......(下面省略)

      直接运行RocketMQConsumerApplication类中的mian方法,消息就会开始接收。控制台信息

    五、RocketMQ控制台

      上面基本已经完成RocketMQ基本应用,但是看不到接收、发送等等信息,所以这里就有了RocketMQ控制台,这里也只需要配置一下即可。

      官网项目地址:https://github.com/apache/rocketmq-externals

      实际上是这里面的子项目rocketmq-console

      下载下来之后,也是导入idea中,然后开始配置application.properties

    server.address=0.0.0.0
    server.port=8111 #这里端口号......(省略)
    #if this value is empty,use env value rocketmq.config.namesrvAddr  NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876
    rocketmq.config.namesrvAddr=124.xxx.xxx.xxx:9876  #这里就需要注意,Name Server云服务公网ip
    ......(省略)

     配置完之后,直接打成jar,就可以运行。

    java -jar rocketmq-console-2.0.0.jar > rocketmq-console.log &

     打开浏览器访问http://127.0.0.1:8111就可以看到了,下图的信息。

     六、总结

      消息队列在微服务中有着不可忽视的作用,它有着异步、削峰(限流)、解耦的特征,在面对突发高峰等情况也能,很好的维持了服务的稳定性。

    本来配置到第四步觉得RocketMQ竟然没有控制台,原本令我略微失望。不过在查找材料发现他没有集成在一起,只需要另外配置。

    最后注意一点!!!项目放在云服务最好开放端口10909、10911、10912这三个端口,虽然地址是10911端口,但是在运行期间发现10909、10911、10912三个端口竟然都会开启服务。

  • 相关阅读:
    <script type="javascript"> 与<script language="javascript"> 有什么区别啊
    <script language="JavaScript"> or <script type="text/javascript"> ?
    EL表达式
    为什么我用花括号jsp上就显示不出括号里的内容啊,大侠们帮帮忙
    structs2:action如何从页面获取参数值以及如何向页面传出参数值(set方法 、get方法、getParameters()方法
    HTML <script> 标签的 type 属性
    EL表达式EL表达式
    EL表达式(详解)
    java时间戳是什么
    window.onload函数用法
  • 原文地址:https://www.cnblogs.com/zrl66/p/13718959.html
Copyright © 2011-2022 走看看