最近闲得无聊想着写一个聚合的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。
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
发送消息
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。