【聚合MQ管理 第一章】一个项目管理多种MQ 之 ActiveMq
最近闲得无聊想着写一个聚合的MQ控制条,一个项目管理ActiveMq,RocketMq,RabbitMq, Kafka,Mqtt,正好还能用开源项目申请IDEA的开源授权码
- gitee地址
- github地址
当前项目采用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。
2. Home
展示ActiveMq的基本信息
3. Queues
管理ActiveMq的Queue信息,支持查询,创建,删除,发送消息等操作,基本操作与ActiveMq官方提供的一致
在输入框内输入 QueueName 点击 Create 即可创建Queue
- 查询创建Queue
- SendTo
这里有一个需要注意的,Cron String 是从分钟开始的,只有五个参数 例如
0/1 * * * ?
每分钟执行一次,且需要开启Scheduled支持,具体看下边的章节即可
- Browse
4. Topic
5. Subscribers
上方的ElForm可以创建Offline Durable Topic Subscribers
6. Connectors
查询当前的ActiveMq 连接,点击ClientId可以查询connector的详细信息
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
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?
8. Scheduled
需要ActiveMq开始Scheduled支持, 同样还是
activemq.xml
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost"dataDirectory="${activemq.data}" schedulerSupport="true">
</broker>
9 SendTo
发送消息