【聚合MQ管理 第一章】一个项目管理多种MQ 之 ActiveMq

0 阅读1分钟

最近闲得无聊想着写一个聚合的MQ控制条,一个项目管理ActiveMq,RocketMq,RabbitMq, Kafka,Mqtt,正好还能用开源项目申请IDEA的开源授权码

当前项目采用Springboot Sqlite Vue3 Axios实现,所有对于ActiveMq的操作均通过ActiveMq自带的jolokia API来实现,如果需要使用本项目管理ActiveMq的话,需要开启8161端口。

  • 如果jar包和activemq不在同一台服务器的划,需要变更jetty.xml内容
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
     <!-- the default port number for the web console -->
    <property name="host" value="0.0.0.0"/>
    <property name="port" value="8161"/>
</bean>

1. DashBoard

控制台创建连接,保存到嵌入式数据库Sqlite之中,并通过不同的client创建连接,后续通过sql内的数据获取相关信息,创建完链接点击详情即可管理对应的MQ,当前只实现了ActiveMq。

image.png

2. Home

展示ActiveMq的基本信息

image.png

3. Queues

管理ActiveMq的Queue信息,支持查询,创建,删除,发送消息等操作,基本操作与ActiveMq官方提供的一致

在输入框内输入 QueueName 点击 Create 即可创建Queue

  1. 查询创建Queue

image.png

  1. SendTo

这里有一个需要注意的,Cron String 是从分钟开始的,只有五个参数 例如 0/1 * * * ?每分钟执行一次,且需要开启Scheduled支持,具体看下边的章节即可

image.png

  1. Browse

image.png

4. Topic

image.png

5. Subscribers

上方的ElForm可以创建Offline Durable Topic Subscribers

image.png

6. Connectors

查询当前的ActiveMq 连接,点击ClientId可以查询connector的详细信息

image.png

7. Network

这个需要在ActiveMq的配置中开启network才行,变更 conf/active.xml

<broker>
    <networkConnectors>
        <networkConnector 
              uri="static:(tcp://192.168.159.129:61616,tcp://192.168.159.130:61616)"
              name="networkConnector"
              duplex="true"
              decreaseNetworkConsumerPriority="true"
              networkTTL="2"/>
    </networkConnectors>
</broker?

image.png

8. Scheduled

需要ActiveMq开始Scheduled支持, 同样还是activemq.xml

<broker 
        xmlns="http://activemq.apache.org/schema/core" 
        brokerName="localhost"
        dataDirectory="${activemq.data}" 
        schedulerSupport="true">
</broker>

image.png

9 SendTo

发送消息

image.png