LCN 5.0.2版本修改tx-client不配置tx-manager地址,改从redis主动拉取
2019-04-03 14:01
330 查看
版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yizhishang123456/article/details/88993769
- 取消TxClientConfig的自动配置
- TCAutoConfiguration修改
package com.codingapi.txlcn.tc; import com.codingapi.txlcn.common.exception.TxClientException; import com.codingapi.txlcn.common.runner.TxLcnApplicationRunner; import com.codingapi.txlcn.common.util.ApplicationInformation; import com.codingapi.txlcn.common.util.id.ModIdProvider; import com.codingapi.txlcn.logger.TxLoggerConfiguration; import com.codingapi.txlcn.tc.config.EnableDistributedTransaction; import com.codingapi.txlcn.tc.config.TxClientConfig; import com.codingapi.txlcn.tracing.TracingAutoConfiguration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationRunner; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.web.ServerProperties; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.*; import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.stream.Collectors; /** * Description: * Date: 1/19/19 * * @author ujued * @see EnableDistributedTransaction */ @Configuration @ComponentScan( excludeFilters = @ComponentScan.Filter( type = FilterType.ASPECTJ, pattern = "com.codingapi.txlcn.tc.core.transaction.txc..*" ) ) @Import({TxLoggerConfiguration.class, TracingAutoConfiguration.class}) public class TCAutoConfiguration { private static final String REDIS_TM_LIST = "tm.instances"; /** * All initialization about TX-LCN * * @param applicationContext Spring ApplicationContext * @return TX-LCN custom runner */ @Bean public ApplicationRunner txLcnApplicationRunner(ApplicationContext applicationContext) { return new TxLcnApplicationRunner(applicationContext); } @Bean @ConditionalOnMissingBean public ModIdProvider modIdProvider(ConfigurableEnvironment environment, @Autowired(required = false) ServerProperties serverProperties) { return () -> ApplicationInformation.modId(environment, serverProperties); } @Bean @ConfigurationProperties(prefix = "tx-lcn.client") public TxClientConfig txClientConfig(@Autowired StringRedisTemplate stringRedisTemplate) throws TxClientException { TxClientConfig txClientConfig = new TxClientConfig(); List<String> managerAddress = stringRedisTemplate.opsForHash().entries(REDIS_TM_LIST).entrySet().stream() .map(entry -> entry.getKey().toString()).collect(Collectors.toList()); if(CollectionUtils.isEmpty(managerAddress)){ throw new TxClientException("在redis没有找到可用的tx-manager地址"); } txClientConfig.setManagerAddress(managerAddress); return txClientConfig; } }
相关文章推荐
- Bat 修改配置文件版本
- scala对redis集群操作工具类 附带java版本的工具类以及spring配置
- win7 自动配置ipv4地址169.254...修改方法
- linux系统redis修改配置文件,允许外网访问,添加登录密码
- Shell脚本自动修改Linux网卡地址、IP地址配置、主机名修改
- redis安装配置-3.2.6版本
- 到现在个个redis节点的配置文件也修改好了
- redis 的性能及高版本配置
- Git重命名仓库、修改远程仓库地址、修改仓库配置
- 修改了一下twitterfox,改成支持配置API Proxy,打开cao.im的版本了
- Redis:安装、配置、操作和简单代码实例(C语言Client端)
- Redis 主从配置 Windows 版本
- linux安装redis以及配置文件修改
- 版本控制不在烦恼-SVN server client配置
- 【php + mongodb】windows php5.4 配置 mongodb 扩展(附各种其它版本下载地址)
- 国内老版本ubuntu更新源地址以及sources.list的配置方法
- redis一个比较大的改变,redis3.0.1 稳定版本发布,支持集群。redis 集群配置 reids Cluster
- tomcat配置tomcat-redis-session-manager
- Linux(CentOS7)Redis修改配置文件redis.conf
- maven安装配置及修改本地仓库地址