一、storm引入pom.xml注意用log4j2版本,防止与storm自己的log4j2冲突
即storm日志这块直接用storm本身的不需要额外加
<dependency>
<groupId>org.apache.storm</groupId> <artifactId>storm-core</artifactId> <version>1.0.2</version> <scope>provided</scope> </dependency>二、spring容器单例实现,保证每个插槽,即jvm仅有一个spring容器
** * * spring上下文单例实现,传说中的双重效验锁 * * @author lli * @version [版本号, 2016年9月21日] * @see [相关类/方法] * @since [产品/模块版本] */public class SingletonCTX { private static Logger LOGGER = LoggerFactory.getLogger(SingletonCTX.class); private volatile static ConfigurableApplicationContext CTX; private SingletonCTX() {} public static ConfigurableApplicationContext getInstance() { if (CTX == null) { synchronized (SingletonCTX.class) { if (CTX == null) { CTX = new ClassPathXmlApplicationContext("applicationContext.xml"); LOGGER.info("------------------------------加载Spring环境。-----------------------------"); } } } return CTX; }}
三、打包发布问题
开发环境项目分包如下
parent
domain core util stormstorm pom.xml
maven-assembly-plugin 2.4 com.wttech.gnss.storm.topology.StormTopology assembly.xml
与pom.xml同级文件assembly.xml
jar-with-dependencies jar false / true true com.wttech.gnss:gnss-core com.wttech.gnss:gnss-msg com.wttech.gnss:gnss-storm
打包命令 assembly:assembly
注意打完后 只要**-jar-with-dependencies.jar 但是这个jar所需依赖包并没打进去,需要把所需要的第三方jarcopy到每个节点的storm的extbin目录下。