storm与spring结合开发
2016-12-08 00:00
246 查看
摘要: storm结合spring环境开发,记录遇到的问题以及解决方案
一、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容器
三、打包发布问题
开发环境项目分包如下
parent
domain
core
util
storm
storm pom.xml
与pom.xml同级文件assembly.xml
打包命令 assembly:assembly
注意打完后 只要**-jar-with-dependencies.jar 但是这个jar所需依赖包并没打进去,需要把所需要的第三方jarcopy到每个节点的storm的extbin目录下。
一、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
storm
storm pom.xml
<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifest> <mainClass>com.wttech.gnss.storm.topology.StormTopology</mainClass> </manifest> </archive> <descriptors> <descriptor>assembly.xml</descriptor> </descriptors> </configuration> </plugin> </plugins> </build>
与pom.xml同级文件assembly.xml
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <!-- TODO: a jarjar format would be better --> <id>jar-with-dependencies</id> <formats> <format>jar</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <dependencySets> <dependencySet> <outputDirectory>/</outputDirectory> <useProjectArtifact>true</useProjectArtifact> <unpack>true</unpack> <includes> <include>com.wttech.gnss:gnss-core</include> <include>com.wttech.gnss:gnss-msg</include> <include>com.wttech.gnss:gnss-storm</include> </includes> </dependencySet> </dependencySets> </assembly>
打包命令 assembly:assembly
注意打完后 只要**-jar-with-dependencies.jar 但是这个jar所需依赖包并没打进去,需要把所需要的第三方jarcopy到每个节点的storm的extbin目录下。
相关文章推荐
- Spring Web Flow 2简化页面流的开发,结合Spring MVC更俊,Spirng Security 3添加安全机制
- Spring Web Flow 2简化页面流的开发,结合Spring MVC更俊,Spirng Security 3添加安全机制
- ActiveMQ结合Spring开发
- Strut&Spring&Hibernate结合开发举例
- SpringBoot和Swagger结合提高API开发效率
- SpringBoot和Swagger结合提高API开发效率
- storm的序列化问题及与spring的结合方式
- ActiveMQ结合Spring开发
- 如何来用cxf结合spring开发webservice接口
- springboot中通用mapper结合mybatis generator的使用 通用mapper是为了方便开发人员对单表进行crud操作而产生的一套通用方法。 通用mapper只支持单表操作,可以
- ActiveMQ(06):ActiveMQ结合Spring开发
- Web Service笔记(四):利用CXF结合Spring开发web service
- OSGI与Spring结合开发web工程
- storm组件初始化问题及与spring的结合方式
- SpringBoot和Swagger结合提高API开发效率
- cool-2018-03-07-httpclient结合spring在实际开发中的应用
- Spring Web Flow 2简化页面流的开发,结合Spring MVC更俊,Spirng Security 3添加安全机制
- Spring-hibernate使用全xml配置结合方式搭建开发
- 第十二篇 Spring Web Flow 2简化页面流的开发,结合Spring MVC更俊,Spirng Security 3添加安全机制
- idea结合maven开发spring