1.概要
生产配置指的是在正式环境部署时使用的配置,在生产环境下一般需要实现集群,使用缓存和消息队列。
1.redis
redis 的作用是作为缓存和实现session同步
2.kafka
平台使用消息队列实现消息通知等异步操作
2.配置修改
2.1. app.properties 配置
machine.name 这个需要每台应用服务器有一个不同的机器名
db.minimumConnectionCount=50
db.maximumConnectionCount=100
数据库连接池大小的配置,需要根据实际情况进行调整
kafka.brokerurl=localhost:9092
kafka 消息队列的配置
可以配置kafka集群,如果有多个kafka实例集群,可以配置多个localhost:9092,需要使用逗号分隔。
2.2.spring-base.xml 修改
<!--
<bean id="iCache" class="com.redxun.core.cache.RedisCache" />
<bean id="redisTemplate" class="com.redxun.core.redis.RedisTemplate"
destroy-method="destroy"
init-method="init" >
<property name="masterName" value="${redis.masterName}"/>
<property name="maxTotal" value="${redis.maxTotal}"/>
<property name="minIdle" value="${redis.minIdle}"/>
<property name="servers" value="${redis.servers}"/>
</bean>
-->
<bean id="iCache" class="com.redxun.core.cache.J2CacheImpl" init-method="init" destroy-method="destroy"></bean>
<!--
<bean id="iCache" class="com.redxun.core.cache.EhCache">
<property name="cacheName" value="tokenCache"></property>
</bean>
-->
这里启用J2CacheImpl,这个配置作用是配置缓存,在分布式集群配置下配置成 j2cache 实现,如果是单实例部署使用com.redxun.core.cache.EhCache。
2.3 spring-bean.xml 修改
<!-- 消息生产者
<bean id="messageProducer" class="com.redxun.core.jms.producer.ActiveMqProducer"/>
-->
<bean id="messageProducer" class="com.redxun.core.jms.producer.KafkaProducer"/>
这里切换使用消息队里,这里使用KafkaProducer.
2.4. spring-all.xml 修改
<!--
<import resource="spring-jms.xml"/>
-->
<import resource="spring-kafka-producer.xml"/>
<import resource="spring-kafka-consumer.xml"/>
这里注释掉 activemq 的配置,启用 kafka.
2.5. 修改 j2cache.properties
这个文件的作用主要是配置j2cache
redis.mode
这个配置可以有三个值:
single:redis单实例
sentinel:哨兵模式
cluster:集群模式
redis.hosts
这个配置redis服务地址
single: 配置redis地址即可
sentinel:配置哨兵的地址,多个使用逗号分隔
cluster: 配置集群地址,多个使用逗号分隔
2.6 log4j2.xml 修改
这个文件主要是需要修改 日志目录和日志的级别。
<properties>
<property name="LOG_HOME">/install/tomcat85A/jsaas-logs</property>
<property name="PATTERN_LAYOUT">[RX2]-%p-[%-d{yyyy-MM-dd HH:mm:ss}] [%t] %c{10}.%M(%L) | %m%n</property>
</properties>
修改日志的目录
<root level="DEBUG">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileDebug"/>
<appender-ref ref="RollingFileInfo"/>
<appender-ref ref="RollingFileWarn"/>
<appender-ref ref="RollingFileError"/>
</root>
这里需要修改成 ERROR或者 WARN模式,如果需要调试错误的话,可以临时修改成debug模式,调试完成后改成ERROR。如果不修改会大大降低程序的性能。
2.7.web.xml 修改
实现在集群环境下session同步的问题
<filter>
<filter-name>j2cache-session-filter</filter-name>
<filter-class>com.redxun.saweb.filter.J2CacheSessionFilter</filter-class>
<init-param>
<param-name>session.maxSizeInMemory</param-name>
<param-value>2000</param-value>
</init-param>
<init-param>
<param-name>session.maxAge</param-name>
<param-value>1800</param-value>
</init-param>
<init-param>
<param-name>cookie.name</param-name>
<param-value>J2CACHE_SESSION_ID</param-value>
</init-param>
<init-param>
<param-name>cookie.path</param-name>
<param-value>/</param-value>
</init-param>
<init-param>
<param-name>cookie.domain</param-name>
<param-value></param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>j2cache-session-filter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
将上面的xml注释去掉,就可以实现session同步了。
2.8 软件的安装
redis:
单实例
https://www.cnblogs.com/yg_zhang/p/10196397.html
哨兵
https://www.cnblogs.com/yg_zhang/p/10198965.html
集群
https://www.cnblogs.com/yg_zhang/p/10502110.html
kafka :
zookeeper
https://www.cnblogs.com/yg_zhang/p/10183808.html
kafka 集群
https://www.cnblogs.com/yg_zhang/p/10184185.html