Storm程序的mysql连接问题及可行的处理方式

版权声明:虽然坑有点多,不过转载请声明原作者 https://blog.csdn.net/jyj1100/article/details/86663474

最近遇到的连接问题我准备从重构的几个程序(redis和mysql)长连接和短连接,以及连接池和单连接等问题用几篇博客来总结下。这是最后一篇。

Storm程序因为有他本身框架的组合方式,只有再要输出的bolt创建jdbc对象(看起来和redis和hbase没什么区别)。但实际上却有不少的坑(有些坑我现在都没明白,只能说根据经验规避),最后两点体会:

尽量不要再storm程序中用mysql。

尽量减少storm程序中创建jdbc连接的bolt。


应用场景3
storm程序,某些bolt结尾,会产生mysql的数据输出。

这是重构的程序,因为根据更改的需求需要增加mysql输出。开始没有考虑新增bolt,直接在bolt的通用方法中给每个bolt创建了一个jdbc对象,这一方法逻辑上是没问题的,当topology流bolt数目小于8个时候也没有问题。但当bolt数目大于8个时候,会只提交8个bolt(无论是本地调试还是集群测试均如此)。        

后面采用新增mysql的存储bolt,并放在程序背后进行判断,问题解决。但也产生了上面两点体会。


最后总结

storm中尽量减少多种存储方式同时出现,如果不能减少,尽量交给不同bolt。同时通过逻辑减少这些存储的操作和连接。

猜你喜欢

转载自blog.csdn.net/jyj1100/article/details/86663474