ActiveMQ的Publish/Subscribe 处理模式(Topic)的实际应用

这里就不介绍ActiveMQ的基本使用了,如果没有简单使用过,建议兄弟萌去搜一下ActiveMQ的简单入门,然后配置好环境后自己写一个的自己分发订阅的小Demo,很简单的。下面直接说我的需求吧:

需求:

1、使用activemq作为数据订阅方,获取实时数据。
2、将数据处理成贴合ais.ais_ship_real这个表的数据。
3、将数据安全存入到指定的数据库。

分析:

1、实时数据是如何进行获取的?
2、获取的数据如果是文本类型如何贴合成对应数据表的数据?
3、如何在ActiveMQ实时接收数据的情况下将数据存入到数据库?

首先获取实时数据:

1、首先要知道对应的ActiveMQ的URL地址。
2、其次要知道对应传数据的topic名称。

具体实现代码如下:

1、实时获取数据对应代码如下:

ActiveMQ的Publish/Subscribe 处理模式(Topic)的实际应用

(获取数据后,一定要打印出来,看看传来的数据格式是什么样式的,只有清楚传来的数据格式,才能正确的进行对数据处理。)
2、数据库的连接ActiveMQ的Publish/Subscribe 处理模式(Topic)的实际应用
3、获取的数据处理

ActiveMQ的Publish/Subscribe 处理模式(Topic)的实际应用

(我这里进行了两个截取,一次是将传来的文本信息截取成一行一行的数据,这样比较直观,存储的话比较方便。第二次截取是在每行数据循环的时候使用“,”截取,这样是为了将每个数据都拿出来,新增数据时候一个字段一个字段对应新增)
这里执行之后报了一个错误,报错信息如下:

ActiveMQ的Publish/Subscribe 处理模式(Topic)的实际应用

(说实话我也没看懂是什么错误,然后我就仔细核对我的每一个步骤,后来经过不懈努力,发现我的sql语句中的guid是Varchar类型,但是在我给它传参的时候没有使用’'符号,后来拼接了一下就不报错了。上面图片是我已经修改好之后的sql,可以参考一下。)

总结下来,使用ActiveMQ获取实时消息并存入数据库其实并不难。主要需要注意几点:

1、要知道对应的ActiveMQ的URL地址以及端口号,还有Topic的名称。
2、要分析传来的数据格式,并处理成你想要的数据格式。
3、拼接SQL时候一定要仔细,一个符号都不能少。