- I have searched the issues of this repository and believe that this is not a duplicate.
Ⅰ. Issue Description
启动获取配置中心consul配置参数失败,导致启动时间过长
Ⅱ. Describe what happened
2021-06-24 10:29:10.916 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'io.seata.spring.boot.autoconfigure.SeataAutoConfiguration' of type [io.seata.spring.boot.autoconfigure.SeataAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:10.948 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'failureHandler' of type [io.seata.tm.api.DefaultFailureHandlerImpl] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:10.954 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.stream.config.BindersHealthIndicatorAutoConfiguration' of type [org.springframework.cloud.stream.config.BindersHealthIndicatorAutoConfiguration$$EnhancerBySpringCGLIB$$2ba23a4a] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:10.957 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'bindersHealthContributor' of type [org.springframework.cloud.stream.config.BindersHealthIndicatorAutoConfiguration$BindersHealthContributor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:10.958 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'bindersHealthIndicatorListener' of type [org.springframework.cloud.stream.config.BindersHealthIndicatorAutoConfiguration$BindersHealthIndicatorListener] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:10.961 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.stream.binder.rabbit.config.ExtendedBindingHandlerMappingsProviderConfiguration' of type [org.springframework.cloud.stream.binder.rabbit.config.ExtendedBindingHandlerMappingsProviderConfiguration$$EnhancerBySpringCGLIB$$dda78abf] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:10.962 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'rabbitExtendedPropertiesDefaultMappingsProvider' of type [org.springframework.cloud.stream.binder.rabbit.config.ExtendedBindingHandlerMappingsProviderConfiguration$$Lambda$404/33446839] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:10.966 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'BindingHandlerAdvise' of type [org.springframework.cloud.stream.config.BindingHandlerAdvise] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:10.969 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'stringToNoneShardingStrategyConfigurationConverter' of type [org.apache.shardingsphere.spring.boot.converter.StringToNoneShardingStrategyConfigurationConverter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:10.972 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'spelConverter' of type [org.springframework.cloud.stream.config.SpelExpressionConverterConfiguration$SpelConverter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:10.977 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'springCloudAlibabaConfiguration' of type [io.seata.spring.boot.autoconfigure.properties.SpringCloudAlibabaConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:10.979 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'seataProperties' of type [io.seata.spring.boot.autoconfigure.properties.SeataProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:10.980 INFO --- [ main] i.s.s.b.a.SeataAutoConfiguration : Automatically configure Seata
2021-06-24 10:29:10.983 INFO --- [ main] io.seata.config.FileConfiguration : The file name of the operation is registry
2021-06-24 10:29:11.026 INFO --- [ main] io.seata.config.ConfigurationFactory : load Configuration:FileConfiguration$$EnhancerByCGLIB$$862af1eb
2021-06-24 10:29:11.031 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'configProperties' of type [io.seata.spring.boot.autoconfigure.properties.config.ConfigProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:29:16.096 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5005 ms,op:GET,dataId:service.disableGlobalTransaction
2021-06-24 10:29:16.099 INFO --- [ main] i.s.s.a.GlobalTransactionScanner : Initializing Global Transaction Clients ...
2021-06-24 10:29:21.108 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5002 ms,op:GET,dataId:transport.threadFactory.bossThreadPrefix
2021-06-24 10:29:26.109 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5001 ms,op:GET,dataId:transport.threadFactory.workerThreadPrefix
2021-06-24 10:29:31.112 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5002 ms,op:GET,dataId:transport.threadFactory.shareBossWorker
2021-06-24 10:29:36.117 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5003 ms,op:GET,dataId:transport.type
2021-06-24 10:29:41.118 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5001 ms,op:GET,dataId:transport.threadFactory.workerThreadSize
2021-06-24 10:29:46.125 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5002 ms,op:GET,dataId:transport.server
2021-06-24 10:29:51.137 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5001 ms,op:GET,dataId:transport.heartbeat
2021-06-24 10:29:56.139 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5002 ms,op:GET,dataId:transport.enableClientBatchSendRequest
2021-06-24 10:30:01.153 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5002 ms,op:GET,dataId:transport.threadFactory.clientSelectorThreadSize
2021-06-24 10:30:06.158 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5002 ms,op:GET,dataId:transport.threadFactory.clientSelectorThreadPrefix
2021-06-24 10:30:11.212 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5002 ms,op:GET,dataId:transport.threadFactory.clientWorkerThreadPrefix
2021-06-24 10:30:11.216 INFO --- [ main] i.s.core.rpc.netty.NettyClientBootstrap : NettyClientBootstrap has started
2021-06-24 10:30:11.216 INFO --- [ main] i.s.s.a.GlobalTransactionScanner : Transaction Manager Client is initialized. applicationId[mtstar-web] txServiceGroup[mtstar-web_group]
2021-06-24 10:30:16.226 ERROR --- [ main] io.seata.config.ConfigFuture : config operation timeout,cost:5002 ms,op:GET,dataId:client.rm.asyncCommitBufferLimit
2021-06-24 10:30:16.226 INFO --- [ main] io.seata.rm.datasource.AsyncWorker : Async Commit Buffer Limit: 10000
2021-06-24 10:30:16.227 INFO --- [ main] i.s.rm.datasource.xa.ResourceManagerXA : ResourceManagerXA init ...
2021-06-24 10:30:16.235 INFO --- [ main] i.s.core.rpc.netty.NettyClientBootstrap : NettyClientBootstrap has started
2021-06-24 10:30:16.236 INFO --- [ main] i.s.s.a.GlobalTransactionScanner : Resource Manager is initialized. applicationId[mtstar-web] txServiceGroup[mtstar-web_group]
2021-06-24 10:30:16.236 INFO --- [ main] i.s.s.a.GlobalTransactionScanner : Global Transaction Clients are initialized.
2021-06-24 10:30:16.243 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.shardingsphere-org.apache.shardingsphere.spring.boot.prop.SpringBootPropertiesConfiguration' of type [org.apache.shardingsphere.spring.boot.prop.SpringBootPropertiesConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:30:16.440 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.apache.shardingsphere.spring.boot.SpringBootConfiguration' of type [org.apache.shardingsphere.spring.boot.SpringBootConfiguration$$EnhancerBySpringCGLIB$$ffd76a20] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:30:16.466 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.retry.annotation.RetryConfiguration' of type [org.springframework.retry.annotation.RetryConfiguration$$EnhancerBySpringCGLIB$$dd8b38cb] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:30:16.556 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'integrationChannelResolver' of type [org.springframework.integration.support.channel.BeanFactoryChannelResolver] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:30:16.558 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'integrationDisposableAutoCreatedBeans' of type [org.springframework.integration.config.annotation.Disposables] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:30:16.578 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.integration.config.IntegrationManagementConfiguration' of type [org.springframework.integration.config.IntegrationManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:30:16.582 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration$IntegrationJmxConfiguration' of type [org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration$IntegrationJmxConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:30:16.591 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration' of type [org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:30:16.595 INFO --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'mbeanServer' of type [com.sun.jmx.mbeanserver.JmxMBeanServer] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-24 10:30:16.612 INFO --- [ig-executor_1_1] trationDelegate$BeanPostProcessorChecker : Bean 'configConsulProperties' of type [io.seata.spring.boot.autoconfigure.properties.config.ConfigConsulProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
Ⅲ. Describe what you expected to happen
从配置中心consul获取到正确配置数据
Ⅳ. How to reproduce it (as minimally and precisely as possible)
- 启动seata服务端,注册中心和配置中心都设置为consul,参数通过脚本都提交到consul
- 客户端seata配置
seata:
enabled: true
application-id: ${spring.application.name}
tx-service-group: mtstar-web_group
enable-auto-data-source-proxy: true
config:
type: consul
consul:
serverAddr: 172.30.0.28:8500
registry:
type: consul
consul:
cluster: default
serverAddr: 172.30.0.28:8500
service:
vgroupMapping:
mtstar-web_group: default
enable-degrade: false
disable-global-transaction: false
Ⅴ. Anything else we need to know?
通过断点调试,发现类ConsulConfiguration.getLatestConfig()方法中获取consul配置使用了线程池,主线程没有等到读取完配置就返回了,所以产生了上述日志
public String getLatestConfig(String dataId, String defaultValue, long timeoutMills) {
String value = this.getConfigFromSysPro(dataId);
if (value != null) {
return value;
} else {
ConfigFuture configFuture = new ConfigFuture(dataId, defaultValue, ConfigOperation.GET, timeoutMills);
this.consulNotifierExecutor.execute(() -> {
this.complete(getConsulClient().getKVValue(dataId, getAclToken()), configFuture);
});
return (String)configFuture.get();
}
}
Ⅵ. Environment:
- JDK version : 8
- seata-spring-boot-starter:1.4.2
- spring-cloud-starter-consul-discovery: 2.2.7.RELEASE
- spring-boot: 2.3.10.RELEASE
3条答案
按热度按时间chhqkbe11#
同样的问题 设计不合理 看看怎么改
0yycz8jy2#
private static ConsulClient getConsulClient() { if (client == null) { synchronized (ConsulConfiguration.class) { if (client == null) { String serverAddr = FILE_CONFIG.getConfig(FILE_CONFIG_KEY_PREFIX + SERVER_ADDR_KEY); InetSocketAddress inetSocketAddress = NetUtil.toInetSocketAddress(serverAddr); client = new ConsulClient(inetSocketAddress.getHostName(), inetSocketAddress.getPort()); } } } return client; }
迟迟不能返回 consul的address
m2xkgtsf3#
seata-spring-boot-starter: 1.5.1.1,问题依然存在