activemq插件

  1. 插件分为System Plugin,Amq plugin,user plugin三类

  2. System Plugin:AciveMQ 内部使用 Plugin 机制实现的一些系统功能,用户不能定制;

  3. AMQ Plugin”: ActiveMQ 已经实现好了,可以在配置文件中自由选择的一些插件,例如简单的安全插件和 JAAS 安全插件;

  4. USER Plugin:用户自己实现的 ActiveMQ 插件,需要用户把相关 jar 包放入到 ActiveMQ 的启动 classpath 中,并在配置文件中进行配置才能正确加载

USER Plugin:

  1. plugin类先实现BrokerPlugin,在installPlugin里调用实现功能类

  2. 功能类继承BrokerFilter写构造函数。然后重写里面需要的方法

  3. BrokerFilter这个类中的方法决定了插件能实现的功能,比如连接建立、连接断开、消息到达、消息过期、日志记录等等都可以自定义操作。

  4. 连接建立(addConnection),连接断开(removeConnection),消息到达(send),messageDelivered(消息过期)

  5. 连接建立时可以做自定义安全验证(基于登陆名和密码),有jdbc连接,目前使用的。

https://blog.csdn.net/yzh_1346983557/article/details/85071244

注入jdbcTemplate,需要在activemq.xml的beans标签里添加jdbcTemplate,如下:

C:\Users\lenovo\AppData\Local\Temp\ksohtml13604\wps1.jpg

然后在节点中的最后添加配置:


使用:User user = jdbcTemplate.queryForObject(sql, new Object[]{username}, new BeanPropertyRowMapper(User.class))。
https://my.oschina.net/u/2935623/blog/2980927

和redis结合使用的

先在过滤器里添加JedisPool属性,添加getset方法

在这里插入图片描述
然后在功能实现类里:
在这里插入图片描述
在这里插入图片描述

具体使用就是通过name获取redis里的token,和登陆时使用的token是否一致来判断。

  1. 可以拦截固定的ip地址

https://blog.csdn.net/qq_33394088/article/details/77627842

String remoteAddress = context.getConnection().getRemoteAddress()

然后匹配设定的正则表达式。可以实现拦截

消息到达(send)

重写send方法可以实现对消息的筛选,例如上行消息和下行消息。参数有Message和ProducerBrokerExchange。Message指activemq的消息,里面的getProperty(string name)可以用来获取指定属性的内容,返回值是object。这个方法其实是在properties里取到对应的值,里面是键值对。这样就可以实现筛选

https://www.jianshu.com/p/9b821e6894b7

https://www.jianshu.com/p/c73eb072daf9
在这里插入图片描述

常见类和层级关系:

ProducerBrokerExchange ConnectionContext Destination**,**ProducerState ProducerInfo ProducerId SessionId ConnectionId

消息过期:

cerInfo ProducerId SessionId ConnectionId

消息过期:

http://www.blogjava.net/zhuanggl/archive/2010/07/14/326119.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值