版权声明:虽然坑有点多,不过转载请声明原作者 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。同时通过逻辑减少这些存储的操作和连接。