「F5 连接NetOps/SecOps与DevOps」 -- 「2」Infrastructure as Code

IaC与DevOps
本文探讨基础设施即代码(IaC)的概念,及其在DevOps中的关键作用。IaC通过自动化和版本控制,实现环境的一致性和快速部署,降低成本,提高速度,减少风险。介绍IaC的两种实现方式:命令式和声明式,以及其在持续交付流水线中的价值。

本文主要分享什么叫做Infrastructure as Code, 还有实现它的两种方式:

InfraAsCode

基础设施即代码(以下均简称IaC)是一种用描述性的方式来管理基础设施(包括网络,虚拟机,存储,负载均衡等),IaC模型在每次应用时都生成相同的环境,它是与DevOps结合的关键时间,与持续交付(Continue Delivery)结合使用。

IaC的发展,解决了CD流水线中的环境飘移问题。如果没有IaC,团队必须维护各个环境的设置。随着时间的推移,每个环境都会成为了信息孤岛,无法自动复制相同的配置。环境之间的不一致会导致部署期间出现问题,最后会导致基础设施的管理,变得非常难以跟踪,并且只能通过手动进行单独的维护。

IaC

与DevOps的关系

IaC是成为在DevOps中实现最佳实践的关键属性,开发人员可以更多地参与定义配置,Ops团队在开发过程的早期阶段就参与其中。利用IaC的工具可以提高服务器状态和配置的可见性,最终为企业内的用户提供可视性,旨在将团队聚集在一起,最大限度地发挥他们的作用。自动化通常旨在解决手动过程中的混乱和容易出错的问题,并使其更高效,更高效。允许创建更好的软件和应用程序,灵活,减少停机时间,并为公司提供整体成本效益的方式。IaC旨在降低从手动配置中带来的复杂性。自动化和协作被认为是DevOps的核心要点,基础架构自动化工具通常作为DevOps工具链的重要一环。

IaC的特点:

1. 版本控制和历史管理
2. 所有操作可以追溯和进行审计
3. 快速简单,容易回滚
4. 方便团队协作,共同维护
5. 幂等性(Idempotence)

而幂等性是这里面一个很重要的规范原则,无论环境的起始状态如何,这个部署指令执行了多少次,它都可以保证环境最终的状态是一致的。因此,通过IaC,团队对环境描述进行更改并对配置模型进行版本化,通常会采用标准化并容易理解的代码格式(如JSON,YAML)。持续交付Pipeline以IaC方式配置目标环境。如果团队需要进行更改,他们会编辑源,而不是目标。记住,Source of the truth!

IaC主要带来三个主要的价值:

1. 成本(减少)
2. 速度(更快的执行)
3. 风险(人为的操作错误所带来的安全隐患)

实施IaC的团队可以快速,大规模地提供稳定的环境。团队通过代码表示环境的最终期望状态,从而避免手动配置环境并强制实现一致性。使用IaC进行基础架构部署都是可重复的,可防止因配置偏差或缺少依赖性而导致的运行时问题。DevOps团队可以与统一的实践和工具协同工作,快速,可靠,大规模地交付应用程序及其支持基础架构。

实现IaC通常有两种方法:

1. Imperative(命令式)
2. Declarative(声明式)

IaC

命令式的特点非常明显,如果需要达到最终的目的,你要以适当的顺序执行特定的命令,比如你执行的顺序是123,就绝对不能是321。并且每一步操作,你都需要执行对应的API或者指令应该在哪里。

Imperative

而声明式就非常简单了,只需要描述你所需环境的最终状态,然后通过少量的API任务,post过去,最终环境就可以根据你所需要的描述,生成最终的状态,所以也非常受开发者喜爱。

Declarative

而f5有4种声明式的组件来匹配在持续交付流水线中的每一个环节:部署,上线,配置,监控。

cd-pipeline

tools

下一章开始,我将会具体的展开每一个组件(Cloud Template, Declarative Onboarding, Application Services 3 Extension, Telemetry Streaming)具体的作用和使用的方法以及场景。

2025-10-27 10:47:02.249 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@2f64f99f; com.huawei.cube.core.env.CubeEnvConfigResolver@16c1d11; com.huawei.foundation.commons.config.DefaultConfigResolver@123d0816 2025-10-27 10:47:02.324 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 10:47:03.757 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [uat] 2025-10-27 10:47:03.785 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 10:47:04.380 [main] INFO [][com.huawei.foundation.commons.reporting.ReporterFactory.45] incident reporter is com.huawei.foundation.commons.console.incident.ConsoleIncidentReporter,com.huawei.foundation.commons.incident.reporting.IncidentPinpointTraceIdReporter,com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter 2025-10-27 10:47:04.423 [main] INFO [][com.huawei.foundation.commons.reporting.ReporterFactory.66] incident reporter predicate is com.huawei.foundation.commons.console.incident.ConsoleIncidentReporter,com.huawei.foundation.commons.incident.reporting.IncidentReportRatePredicate 2025-10-27 10:47:04.787 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [uat] 2025-10-27 10:47:04.806 [main] INFO [][com.huawei.foundation.commons.logging.LoggingRefresher.156] logging filter status: global = true , regex = true, sensitive= true, exception=true 2025-10-27 10:47:05.279 [main] INFO [][com.huawei.cube.rt.hae.spring.HaeConfigCenterInitializer.91] HAE config center is enabled 2025-10-27 10:47:05.316 [main] INFO [][com.huawei.foundation.commons.utils.VmIPUtils.101] current is docker env 2025-10-27 10:47:05.364 [main] INFO [][com.huawei.cube.rt.hae.crypto.HuaweiSecurity2CryptoImpl.228] root key file path is /opt/security/CBG_IT_TREE/rbitreeservice/kwe_uat/keys/rootkeys/ 2025-10-27 10:47:06.502 [main] INFO [][com.huawei.apic.client.consumer.AbstractAuthenticator.77] init soa apiAuthenticator success,endpoints is: [http://oauth2-beta.huawei.com] 2025-10-27 10:47:06.504 [main] INFO [][com.huawei.cube.rt.sgov.his.DefaultSgovAuth.63] The sgov 'haeSgov' of '11111111111111111111111111111111-com.huawei.cbg.it.tree' init successfully! 2025-10-27 10:47:06.984 [main] INFO [][com.huawei.cube.rt.hae.HaeHttpService.47] begin to connect to hae config center http://appconfig-beta.huawei.com/ConfigCenter/services/saasConfigcenterGetConfig?application_id=com.huawei.cbg.it.tree&sub_application_id=rbitreeservice&environment=kwe_uat&region=cn-west-hcd-1&version=1.0&client_ip_port=7.186.15.36:55988 using sgov 2025-10-27 10:47:07.551 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.227] ignore server check for ssl, clientName=hae-config-center 2025-10-27 10:47:07.551 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.245] enabled connection pool, clientName=hae-config-center 2025-10-27 10:47:07.556 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.148] OK http client 'hae-config-center' have been created successfully! 2025-10-27 10:47:07.983 [main] INFO [][com.huawei.cube.rt.hae.HaeHttpRequestUtils.86] success to get config from com.huawei.cbg.it.tree:rbitreeservice in env: kwe_uat, region: cn-west-hcd-1 2025-10-27 10:47:08.042 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.76] begin to parse hae config map 2025-10-27 10:47:08.043 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.207] success to parse hae app config 16 2025-10-27 10:47:08.043 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.215] begin to parse hae j2c config map 13 2025-10-27 10:47:08.102 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c security_publickey 2025-10-27 10:47:08.173 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c clouddragonKey 2025-10-27 10:47:08.232 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c sgovTokenPro 2025-10-27 10:47:08.298 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c iam.token.appSecret 2025-10-27 10:47:08.356 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c rbi_redis 2025-10-27 10:47:08.418 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c cubeSecret 2025-10-27 10:47:08.453 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c s3Ak 2025-10-27 10:47:08.481 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c sgovToken 2025-10-27 10:47:08.509 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c pbi_systemId 2025-10-27 10:47:08.536 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c rbi_tree_uat 2025-10-27 10:47:08.568 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c application.Token.pro 2025-10-27 10:47:08.593 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c appReqProKey 2025-10-27 10:47:08.618 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.227] success to decrypt j2c s3Sk 2025-10-27 10:47:08.619 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.147] begin to parse config list for listen_port size= 0 2025-10-27 10:47:08.620 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.147] begin to parse config list for datasource size= 1 2025-10-27 10:47:08.649 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.171] success to decrypt datasource for prefix 1 2025-10-27 10:47:08.650 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.147] begin to parse config list for client_strategy size= 0 2025-10-27 10:47:08.650 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.147] begin to parse config list for message size= 0 2025-10-27 10:47:08.650 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigMapParser.103] success to parse hae config properties 98 2025-10-27 10:47:08.651 [main] INFO [][com.huawei.cube.rt.hae.HaeConfigPropertySource.175] HAE config is loaded to spring environment! 2025-10-27 10:47:08.651 [main] INFO [][com.huawei.cube.rt.hae.spring.HaeConfigCenterInitializer.94] success to get hae config and cost 3371ms 2025-10-27 10:47:08.943 [background-preinit] INFO [][org.hibernate.validator.internal.util.Version.21] HV000001: Hibernate Validator 8.0.2.Final 2025-10-27 10:47:09.504 [main] INFO [][com.huawei.cube.rt.configcenter.CubeCenterConfigInitializer.51] cube config definition is empty from class com.huawei.cube.rt.configcenter.loader.EnvironmentConfigLoader 2025-10-27 10:47:09.671 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.227] ignore server check for ssl, clientName=commandClient 2025-10-27 10:47:09.671 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.245] enabled connection pool, clientName=commandClient 2025-10-27 10:47:09.672 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.148] OK http client 'commandClient' have been created successfully! 2025-10-27 10:47:09.781 [main] INFO [][c.huawei.cube.rt.configcenter.loader.CubeCenterConfigLoader.49] The config from cube center [com.huawei.cbg.it.tree:rbitreeservice:uat] is null 2025-10-27 10:47:09.782 [main] INFO [][com.huawei.cube.rt.configcenter.CubeCenterConfigInitializer.51] cube config definition is empty from class com.huawei.cube.rt.configcenter.loader.CubeCenterConfigLoader 2025-10-27 10:47:09.785 [main] INFO [][com.huawei.foundation.commons.props.SystemEnvUtils.69] active environment is not changed 2025-10-27 10:47:09.785 [main] INFO [][c.huawei.foundation.commons.service.discovery.ServiceLocator.172] CurrentApplicationContext is set 2025-10-27 10:47:09.868 [main] INFO [][com.huawei.cbgit.tree.MainApplication.53] Starting MainApplication v1.0.0-SNAPSHOT using Java 21.0.7 with PID 371 (/rbi-tree-app-1.0.0-SNAPSHOT/libs/rbi-tree-app-1.0.0-SNAPSHOT.jar started by clouder in /rbi-tree-app-1.0.0-SNAPSHOT/bin) 2025-10-27 10:47:09.869 [main] INFO [][com.huawei.cbgit.tree.MainApplication.658] The following 1 profile is active: \"uat\" 2025-10-27 10:47:11.455 [main] INFO [][c.h.f.commons.exclude.FndAutoConfigurationImportFilter.59] foundation.autoconfigure.excludes is org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration 2025-10-27 10:47:11.456 [main] INFO [][c.h.f.commons.exclude.FndAutoConfigurationImportFilter.63] foundation.autoconfigure.includes is com.huawei.cbgit.tree.MainApplication,com.huawei.cbgit.tree.* 2025-10-27 10:47:11.834 [main] INFO [][c.h.f.commons.exclude.FndAutoConfigurationImportFilter.118] configurations are excluded: org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration 2025-10-27 10:47:14.122 [main] INFO [][c.h.foundation.commons.reflections.AnnotationMetadataReader.84] resolve class annotations from package: com.huawei.cube.audit.writer.cs in class loader org.springframework.boot.loader.launch.LaunchedClassLoader@795faad cost 10ms 2025-10-27 10:47:14.123 [main] INFO [][c.huawei.foundation.commons.reflections.AnnotationsScanner.185] scan and match annotations CubeClient from com.huawei.cube.audit.writer.cs cost 1ms 2025-10-27 10:47:14.534 [main] INFO [][c.h.foundation.commons.reflections.AnnotationMetadataReader.84] resolve class annotations from package: com.huawei.cube.excel.core.task.cs in class loader org.springframework.boot.loader.launch.LaunchedClassLoader@795faad cost 6ms 2025-10-27 10:47:14.535 [main] INFO [][c.huawei.foundation.commons.reflections.AnnotationsScanner.185] scan and match annotations CubeClient from com.huawei.cube.excel.core.task.cs cost 0ms 2025-10-27 10:47:14.908 [main] INFO [][c.h.foundation.commons.reflections.AnnotationMetadataReader.84] resolve class annotations from package: com.huawei.cube.rt.cs.client in class loader org.springframework.boot.loader.launch.LaunchedClassLoader@795faad cost 7ms 2025-10-27 10:47:14.909 [main] INFO [][c.huawei.foundation.commons.reflections.AnnotationsScanner.185] scan and match annotations CubeClient from com.huawei.cube.rt.cs.client cost 0ms 2025-10-27 10:47:16.514 [main] INFO [][o.s.data.repository.config.RepositoryConfigurationDelegate.296] Multiple Spring Data modules found, entering strict repository configuration mode 2025-10-27 10:47:16.530 [main] INFO [][o.s.data.repository.config.RepositoryConfigurationDelegate.147] Bootstrapping Spring Data Redis repositories in DEFAULT mode. 2025-10-27 10:47:16.756 [main] INFO [][o.s.data.repository.config.RepositoryConfigurationDelegate.215] Finished Spring Data repository scanning in 131 ms. Found 0 Redis repository interfaces. 2025-10-27 10:47:17.235 [main] INFO [][c.huawei.foundation.commons.service.discovery.ServiceLocator.181] CurrentApplicationContext is not changed 2025-10-27 10:47:17.277 [main] INFO [][com.huawei.cube.excel.core.utils.ExcelSupportScanner.75] excel bean fdnIExcelExportSupport.assetTreeSubitemAppList is register*****#*#***** 2025-10-27 10:47:17.279 [main] INFO [][com.huawei.cube.excel.core.utils.ExcelSupportScanner.75] excel bean fdnIExcelExportSupport.assetTreeSubitemModuleList is register*****#*#***** 2025-10-27 10:47:17.279 [main] INFO [][com.huawei.cube.excel.core.utils.ExcelSupportScanner.75] excel bean fdnIExcelExportSupport.assetTreeSubitemProductList is register*****#*#***** 2025-10-27 10:47:17.280 [main] INFO [][com.huawei.cube.excel.core.utils.ExcelSupportScanner.75] excel bean fdnIExcelExportSupport.assetTreeSubitemSoftwareUnit is register*****#*#***** 2025-10-27 10:47:17.280 [main] INFO [][com.huawei.cube.excel.core.utils.ExcelSupportScanner.75] excel bean fdnIExcelExportSupport.assetTreeSubitemSubList is register*****#*#***** 2025-10-27 10:47:17.281 [main] INFO [][com.huawei.cube.excel.core.utils.ExcelSupportScanner.75] excel bean fdnIExcelExportSupport.assetTreeSubitemWarehouseList is register*****#*#***** 2025-10-27 10:47:17.281 [main] INFO [][com.huawei.cube.excel.core.utils.ExcelSupportScanner.75] excel bean fdnIExcelExportSupport.orgTreeEmployee is register*****#*#***** 2025-10-27 10:47:17.281 [main] INFO [][com.huawei.cube.excel.core.utils.ExcelSupportScanner.75] excel bean fdnIExcelExportSupport.orgTreeWxEmployee is register*****#*#***** 2025-10-27 10:47:17.288 [main] INFO [][com.huawei.cube.excel.core.utils.ExcelSupportScanner.75] excel bean fdnIExcelImportSupport.employeeBaseInfo is register*****#*#***** 2025-10-27 10:47:17.562 [main] INFO [][com.huawei.cube.rt.datasource.DefaultDataSourceFactory.143] The primary datasource is 'dataSource' 2025-10-27 10:47:17.602 [main] INFO [][com.huawei.cube.rt.datasource.DefaultCubeDataSourceRegistry.36] success to register*****#*#*****ubeDataSource : dataSource 2025-10-27 10:47:18.656 [DruidDataSourceInit-dataSource-1] INFO [][com.alibaba.druid.pool.DruidDataSource.1002] {dataSource-1,dataSource} inited 2025-10-27 10:47:18.657 [DruidDataSourceInit-dataSource-1] INFO [][com.huawei.cube.rt.datasource.DefaultCubeDataSource.122] The dataSource 'dataSource' init successfully! cost '868'ms 2025-10-27 10:47:18.749 [main] INFO [][com.huawei.foundation.commons.copier.factory.MappingFactory.97] create mapping factory cost 165ms 2025-10-27 10:47:20.727 [main] INFO [][com.huawei.cube.das.core.DefaultMyBatisConfigurator.214] datasource dataSource type handlers package is com.huawei.cube.das.handler.date,com.huawei.cube.das.handler.bool 2025-10-27 10:47:20.862 [main] INFO [][com.huawei.cube.das.core.DefaultMyBatisConfigurator.185] 4 mybatis interceptors are loaded to datasource dataSource : class com.huawei.cube.das.interceptor.LongtimeSqlInterceptor,class com.huawei.cube.das.interceptor.MybatisPageableInterceptor,class com.huawei.cube.privilege.program.DataPrivilegeInterceptor,class com.huawei.cube.das.interceptor.OptimisticLockerInterceptor 2025-10-27 10:47:21.468 [main] INFO [][com.huawei.cube.das.core.DefaultMyBatisConfigurator.129] [classpath*:/mapper/dynamic/*.xml, classpath*:com.huawei.cbgit.tree.infrastructure.*.xml, classpath*:/mapper/*.xml] : 4 mybatis mapper xml are loaded to dataSource 2025-10-27 10:47:22.063 [main] INFO [][com.huawei.cube.das.core.DefaultCubeDASRegister.166] data source [dataSource] register*****#*#*****se package : com.huawei.cube.audit.writer.database.mapper,com.huawei.cbgit.tree.infrastructure.*,com.huawei.cube.logging.writer.database.mapper,com.huawei.cube.das.sequence.mapper,com.huawei.cube.idempotent.mapper 2025-10-27 10:47:23.314 [main] WARN [][o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.429] Bean 'com.huawei.cube.rt.refresh.ConfigChangeConfiguration' of type [com.huawei.cube.rt.refresh.ConfigChangeConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). The currently created BeanPostProcessor [cubeChangeConfigPropertiesBeanPostProcessor] is declared through a non-static factory method on that class; consider declaring it as static instead. 2025-10-27 10:47:23.345 [main] WARN [][o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.437] Bean 'cubeConfigRefreshMatcher' of type [com.huawei.cube.rt.refresh.ConfigRefreshMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [cubeChangeConfigPropertiesBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-10-27 10:47:23.364 [main] WARN [][o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.437] Bean 'cubeSpringValueBeanConfigRefresher' of type [com.huawei.cube.rt.refresh.SpringValueBeanConfigRefresher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [cubeSpringValueBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-10-27 10:47:23.378 [main] WARN [][o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.437] Bean 'cubeConfigChangeEventRefresher' of type [com.huawei.cube.rt.refresh.ConfigChangeEventRefresher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [cubeSpringValueBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-10-27 10:47:24.699 [main] INFO [][o.springframework.boot.web.embedded.tomcat.TomcatWebServer.111] Tomcat initialized with port 8003 (http) 2025-10-27 10:47:25.042 [main] INFO [][org.apache.coyote.http11.Http11NioProtocol.168] Initializing ProtocolHandler [\"http-nio-8003\"] 2025-10-27 10:47:25.074 [main] INFO [][org.apache.catalina.core.StandardService.168] Starting service [Tomcat] 2025-10-27 10:47:25.075 [main] INFO [][org.apache.catalina.core.StandardEngine.168] Starting Servlet engine: [Apache Tomcat/10.1.44] 2025-10-27 10:47:25.238 [main] INFO [][o.a.c.c.C.[Tomcat].[localhost].[/rbi-tree/gateway].168] Initializing Spring embedded WebApplicationContext 2025-10-27 10:47:25.238 [main] INFO [][o.s.b.web.servlet.context.ServletWebServerApplicationContext.301] Root WebApplicationContext: initialization completed in 14996 ms 2025-10-27 10:47:25.519 [main] INFO [][com.huawei.cube.rt.sgov.SgovAuthConfig.172] sgov setSgovAuth*****#*#*****e config center [cloud.sgov.appId, cloud.sgov.token*****#*#***** 2025-10-27 10:47:25.531 [main] INFO [][com.huawei.apic.client.consumer.AbstractAuthenticator.77] init soa apiAuth*****#*#*****dpoints is: [http://oauth*****#*#***** 2025-10-27 10:47:25.531 [main] INFO [][com.huawei.cube.rt.sgov.his.DefaultSgovAuth.63] The sgov 'envSgov' of '11111111111111111111111111111111-com.huawei.cbg.it.tree' init successfully! 2025-10-27 10:47:25.532 [main] INFO [][com.huawei.apic.client.consumer.AbstractAuthenticator.77] init soa apiAuth*****#*#*****dpoints is: [http://oauth*****#*#***** 2025-10-27 10:47:25.533 [main] INFO [][com.huawei.cube.rt.sgov.his.DefaultSgovAuth.63] The sgov 'defaultSgov' of '11111111111111111111111111111111-com.huawei.cbg.it.tree' init successfully! 2025-10-27 10:47:25.533 [main] INFO [][com.huawei.apic.client.consumer.AbstractAuthenticator.77] init soa apiAuth*****#*#*****dpoints is: [https://oauth*****#*#***** 2025-10-27 10:47:25.542 [main] INFO [][com.huawei.cube.rt.sgov.his.DefaultSgovAuth.63] The sgov 'proSgov' of '11111111111111111111111111111111-com.huawei.cbg.it.tree' init successfully! 2025-10-27 10:47:25.705 [main] INFO [][com.huawei.cube.rt.auth.web.WebAuthConfiguration.50] >>> auth*****#*#*****ter register*****#*#***** 2025-10-27 10:47:25.744 [main] INFO [][com.huawei.cube.rt.auth.web.WebAuthConfiguration.61] >>> accountTypeWebFilter register*****#*#***** 2025-10-27 10:47:25.761 [main] INFO [][c.huawei.cube.rt.context.web.RequestContextWebConfiguration.41] >>> requestContextHolderFilter register*****#*#***** 2025-10-27 10:47:26.883 [main] INFO [][org.redisson.Version.43] Redisson 3.51.0 2025-10-27 10:47:28.565 [main] INFO [][org.redisson.connection.ClusterConnectionManager.122] Redis cluster nodes configuration got from 7.193.49.81/7.193.49.81:6379:\n76107c4d6bc43632c84da91a6b8c0bf1e8a10e9c 7.193.50.120:6379@12709 master - 0 1761533247149 3 connected 10923-16383\n4dbe4460b63b64d4fc34616d83c45340a9afe6ed 7.193.49.191:6379@13562 slave 76107c4d6bc43632c84da91a6b8c0bf1e8a10e9c 0 1761533248149 3 connected\nd14995cad01a7a98829ce3a9c4f7237233d8683f 7.193.49.81:6379@12870 myself,master - 0 1761533245000 1 connected 0-5460\n5ad91d3191eecf8201b757a6899c0f187a628634 7.193.51.7:6379@12467 slave d14995cad01a7a98829ce3a9c4f7237233d8683f 0 1761533246000 1 connected\nf603a93be27c1f5f0c01d2b471c55a04822be8db 7.193.50.91:6379@12430 slave 45d1676d933a3242712d4214a4194fd970bc06dd 0 1761533246000 2 connected\n45d1676d933a3242712d4214a4194fd970bc06dd 7.193.50.85:6379@13880 master - 0 1761533246147 2 connected 5461-10922 2025-10-27 10:47:28.762 [redisson-netty-1-14] INFO [][org.redisson.connection.ConnectionsHolder.132] 1 connections initialized for 7.193.49.81/7.193.49.81:6379 2025-10-27 10:47:28.842 [redisson-netty-1-26] INFO [][org.redisson.connection.ConnectionsHolder.132] 1 connections initialized for 7.193.50.85/7.193.50.85:6379 2025-10-27 10:47:28.844 [redisson-netty-1-27] INFO [][org.redisson.connection.ConnectionsHolder.132] 1 connections initialized for 7.193.50.120/7.193.50.120:6379 2025-10-27 10:47:29.080 [redisson-netty-1-19] INFO [][org.redisson.connection.ConnectionsHolder.132] 24 connections initialized for 7.193.49.81/7.193.49.81:6379 2025-10-27 10:47:29.085 [redisson-netty-1-24] INFO [][org.redisson.connection.ConnectionsHolder.132] 24 connections initialized for 7.193.50.120/7.193.50.120:6379 2025-10-27 10:47:29.094 [redisson-netty-1-2] INFO [][org.redisson.connection.ConnectionsHolder.132] 24 connections initialized for 7.193.50.85/7.193.50.85:6379 2025-10-27 10:47:29.167 [redisson-netty-1-19] INFO [][org.redisson.connection.ConnectionsHolder.132] 1 connections initialized for 7.193.49.191/7.193.49.191:6379 2025-10-27 10:47:29.168 [redisson-netty-1-20] INFO [][org.redisson.connection.ConnectionsHolder.132] 1 connections initialized for 7.193.50.91/7.193.50.91:6379 2025-10-27 10:47:29.178 [redisson-netty-1-5] INFO [][org.redisson.connection.ConnectionsHolder.132] 1 connections initialized for 7.193.51.7/7.193.51.7:6379 2025-10-27 10:47:29.353 [redisson-netty-1-22] INFO [][org.redisson.connection.ConnectionsHolder.132] 24 connections initialized for 7.193.50.91/7.193.50.91:6379 2025-10-27 10:47:29.353 [redisson-netty-1-20] INFO [][org.redisson.connection.ConnectionsHolder.132] 24 connections initialized for 7.193.49.191/7.193.49.191:6379 2025-10-27 10:47:29.353 [redisson-netty-1-21] INFO [][org.redisson.connection.ConnectionsHolder.132] 24 connections initialized for 7.193.51.7/7.193.51.7:6379 2025-10-27 10:47:29.355 [redisson-netty-1-20] INFO [][org.redisson.connection.ClusterConnectionManager.366] slaves: [redis://7.193.49.191:6379] added for master: redis://7.193.50.120:6379 slot ranges: [[10923-16383]] 2025-10-27 10:47:29.355 [redisson-netty-1-22] INFO [][org.redisson.connection.ClusterConnectionManager.366] slaves: [redis://7.193.50.91:6379] added for master: redis://7.193.50.85:6379 slot ranges: [[5461-10922]] 2025-10-27 10:47:29.355 [redisson-netty-1-21] INFO [][org.redisson.connection.ClusterConnectionManager.366] slaves: [redis://7.193.51.7:6379] added for master: redis://7.193.49.81:6379 slot ranges: [[0-5460]] 2025-10-27 10:47:29.356 [redisson-netty-1-20] INFO [][org.redisson.connection.ClusterConnectionManager.374] master: redis://7.193.50.120:6379 added for slot ranges: [[10923-16383]] 2025-10-27 10:47:29.356 [redisson-netty-1-22] INFO [][org.redisson.connection.ClusterConnectionManager.374] master: redis://7.193.50.85:6379 added for slot ranges: [[5461-10922]] 2025-10-27 10:47:29.356 [redisson-netty-1-21] INFO [][org.redisson.connection.ClusterConnectionManager.374] master: redis://7.193.49.81:6379 added for slot ranges: [[0-5460]] 2025-10-27 10:47:30.475 [main] INFO [][com.huawei.cube.rt.redis.CubeRedissonClient.66] The redisson client have been created successfully! 2025-10-27 10:47:32.845 [main] INFO [][com.obs.services.internal.utils.RestUtils.103] use Default Dns 2025-10-27 10:47:32.863 [main] INFO [][com.obs.services.AbstractClient.103] Storage|1|HTTP+XML|ObsClient||||2025-10-27 10:47:32|2025-10-27 10:47:32|||0| 2025-10-27 10:47:32.865 [main] WARN [][com.obs.services.AbstractClient.103] [OBS SDK Version=3.25.4];[Endpoint=http://s3-kp-kwe.his-beta.huawei.com:80/];[Access Mode=Path] 2025-10-27 10:47:33.034 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.227] ignore server check for ssl, clientName=defaultRestClient 2025-10-27 10:47:33.042 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.245] enabled connection pool, clientName=defaultRestClient 2025-10-27 10:47:33.042 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.148] OK http client 'defaultRestClient' have been created successfully! 2025-10-27 10:47:33.072 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.227] ignore server check for ssl, clientName=commonService 2025-10-27 10:47:33.072 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.245] enabled connection pool, clientName=commonService 2025-10-27 10:47:33.073 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.148] OK http client 'commonService' have been created successfully! 2025-10-27 10:47:33.173 [main] INFO [][com.huawei.cube.rt.gray.discovery.GrayTagConfigReader.80] Gray tag config file path /opt/ads/CBG_IT_TREE/rbitreeservice/kwe_uat/clustertype 2025-10-27 10:47:33.193 [main] INFO [][com.huawei.cube.rt.discovery.ApplicationManager.60] current ipinfo,ip=7.186.15.36,port=55988 2025-10-27 10:47:33.359 [main] INFO [][com.huawei.cube.rt.discovery.eureka.LocalInstanceFactory.77] Setting initial instance status as: STARTING 2025-10-27 10:47:33.402 [main] INFO [][c.huawei.cube.rt.discovery.eureka.handler.JwtClientHandler.44] Eureka jwt verify enabled 2025-10-27 10:47:33.552 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.227] ignore server check for ssl, clientName=eurekaClient 2025-10-27 10:47:33.552 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.245] enabled connection pool, clientName=eurekaClient 2025-10-27 10:47:33.553 [main] INFO [][c.huawei.foundation.commons.httpclient.OkHttpClientFactory.148] OK http client 'eurekaClient' have been created successfully! 2025-10-27 10:47:34.119 [main] INFO [][com.netflix.discovery.InstanceInfoReplicator.64] InstanceInfoReplicator onDemand update allowed rate per min is 4 2025-10-27 10:47:34.734 [main] INFO [][com.huawei.cube.rt.web.filter.WebFilterAutoConfiguration.44] >>> serverNoReadyFilter register*****#*#***** 2025-10-27 10:47:34.739 [main] INFO [][com.huawei.cube.rt.web.filter.WebFilterAutoConfiguration.56] >>> inboundAccessLogFilter register*****#*#***** 2025-10-27 10:47:34.742 [main] INFO [][com.huawei.cube.rt.web.filter.WebFilterAutoConfiguration.67] >>> CharaterEncodingFilter register*****#*#***** 2025-10-27 10:47:34.744 [main] INFO [][com.huawei.cube.rt.web.filter.WebFilterAutoConfiguration.81] >>> headerWriterFilter register*****#*#***** 2025-10-27 10:47:34.932 [main] INFO [][com.huawei.cube.rt.web.xss.XssFilter.107] init XssFilter 2025-10-27 10:47:38.895 [main] WARN [][RocketmqRemoting.115] this file is not exists: ./conf/rmq_remoting_client_access.conf 2025-10-27 10:47:39.718 [main] WARN [][RocketmqRemoting.115] this file is not exists: ./conf/rmq_remoting_client_access.conf 2025-10-27 10:47:40.258 [main] ERROR [][UmpClient.504] start client error org.apache.rocketmq.common.ext.client.MQClientException: CODE: -6 DESC: Connection refused: authorization failed, please check the consumer configuration, appId: com.huawei.cbg.it.tree (pub or sub not matched or not exist in mqs management portal) And enterprise: null ,account: null For more information, please visit the doc, mqs-document at com.huawei.his.mqs.client.AbstractClient.login(AbstractClient.java:566) at com.huawei.his.mqs.client.AbstractClient.authenticateClient(AbstractClient.java:284) at com.huawei.his.mqs.client.AbstractClient.authenticateClient(AbstractClient.java:274) at com.huawei.his.mqs.client.AbstractClient$1.authenticateClient(AbstractClient.java:879) at org.apache.rocketmq.client.ext.impl.MQClientAPIImpl.start(MQClientAPIImpl.java:307) at org.apache.rocketmq.client.ext.impl.factory.MQClientInstance.start(MQClientInstance.java:411) at org.apache.rocketmq.client.ext.impl.consumer.DefaultMQPushConsumerImpl.start(DefaultMQPushConsumerImpl.java:917) at org.apache.rocketmq.client.ext.consumer.DefaultMQPushConsumer.start(DefaultMQPushConsumer.java:919) at com.huawei.his.mqs.client.consumer.Consumer.startClient(Consumer.java:369) at com.huawei.his.mqs.client.AbstractClient.start(AbstractClient.java:498) at com.huawei.cube.rt.mqs.consumer.MqsConsumer.start(MqsConsumer.java:37) at com.huawei.cube.api.mq.MqBaseClient.start(MqBaseClient.java:21) at com.huawei.cbgit.tree.service.assettree.label.LabelUpdateMqConsumerService.start(LabelUpdateMqConsumerService.java:85) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1930) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1883) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1228) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1194) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1130) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:990) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 10:47:40.269 [main] ERROR [][RocketmqClient.155] group: com-huawei-cbg-it-tree_T_devops_TagManagement_label_dev_label_uat persistConsumerOffset exception org.apache.rocketmq.common.ext.client.MQClientException: The consumer service state not OK, START_FAILED See mqs-document for further details. at org.apache.rocketmq.client.ext.impl.consumer.DefaultMQPushConsumerImpl.makeSureStateOK(DefaultMQPushConsumerImpl.java:622) at org.apache.rocketmq.client.ext.impl.consumer.DefaultMQPushConsumerImpl.persistConsumerOffset(DefaultMQPushConsumerImpl.java:1377) at org.apache.rocketmq.client.ext.impl.consumer.DefaultMQPushConsumerImpl.shutdown(DefaultMQPushConsumerImpl.java:798) at org.apache.rocketmq.client.ext.consumer.DefaultMQPushConsumer.shutdown(DefaultMQPushConsumer.java:934) at com.huawei.his.mqs.client.consumer.Consumer.shutdownClient(Consumer.java:377) at com.huawei.his.mqs.client.AbstractClient.start(AbstractClient.java:507) at com.huawei.cube.rt.mqs.consumer.MqsConsumer.start(MqsConsumer.java:37) at com.huawei.cube.api.mq.MqBaseClient.start(MqBaseClient.java:21) at com.huawei.cbgit.tree.service.assettree.label.LabelUpdateMqConsumerService.start(LabelUpdateMqConsumerService.java:85) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1930) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1883) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1228) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1194) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1130) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:990) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 10:47:40.331 [main] WARN [][o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext.635] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'init' defined in class path resource [com/huawei/cbgit/tree/service/assettree/config/MqConfig.class]: fail to start mqs consumer T_devops_TagManagement_label_dev 2025-10-27 10:47:43.362 [main] INFO [][c.huawei.foundation.commons.startup.event.ContainerComponent.643] begin to destroy component dataSourceStartup 2025-10-27 10:47:43.363 [main] INFO [][c.huawei.foundation.commons.startup.event.ContainerComponent.643] begin to destroy component RedisClient 2025-10-27 10:47:43.363 [main] INFO [][c.h.c.rt.loadbalancer.supplier.HealthCheckInstanceSupplier.81] LoadBalancer-HealthCheck is closed! 2025-10-27 10:47:43.364 [main] INFO [][c.h.c.r.loadbalancer.client.DefaultLoadBalancerClientFactory.84] The loadblancerClient 'disoveryClientLoadBalancer' is closed 2025-10-27 10:47:43.364 [main] WARN [][com.obs.services.AbstractClient.103] client closing 2025-10-27 10:47:43.365 [main] INFO [][com.obs.log.AccessLogger.103] 2025-10-27 10:47:32 853|main|info|com.obs.services.internal.utils.RestUtils$DefaultObsDns|<init>|line:490|use Default Dns\n2025-10-27 10:47:32 864|main|info|com.obs.services.AbstractClient|init|line:78|Storage|1|HTTP+XML|ObsClient||||2025-10-27 10:47:32|2025-10-27 10:47:32|||0|\n2025-10-27 10:47:32 866|main|warn|com.obs.services.AbstractClient|init|line:97|[OBS SDK Version=3.25.4];[Endpoint=http://s3-kp-kwe.his-beta.huawei.com:80/];[Access Mode=Path]\n2025-10-27 10:47:43 364|main|warn|com.obs.services.AbstractClient|close|line:448|client closing 2025-10-27 10:47:43.370 [main] WARN [][com.obs.services.AbstractClient.103] client closed 2025-10-27 10:47:43.371 [main] INFO [][com.obs.log.AccessLogger.103] 2025-10-27 10:47:43 371|main|warn|com.obs.services.AbstractClient|close|line:451|client closed 2025-10-27 10:47:43.445 [main] INFO [][com.huawei.cube.rt.redis.CubeRedissonClient.109] The redisson client have been shutdown! 2025-10-27 10:47:43.464 [main] INFO [][org.apache.catalina.core.StandardService.168] Stopping service [Tomcat] 2025-10-27 10:47:43.468 [main] INFO [][com.huawei.cube.rt.web.xss.XssFilter.112] destroy XssFilter 2025-10-27 10:47:43.475 [main] INFO [][com.huawei.cube.api.context.RequestContextHolder.204] RequestContextFactory is 'class com.huawei.cube.rt.context.DefaultRequestContextFactory' 2025-10-27 10:47:43.490 [main] WARN [][org.apache.catalina.loader.WebappClassLoaderBase.168] The web application [rbi-tree#gateway] appears to have started a thread named [spectator-gauge-polling-0] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:\n java.base/jdk.internal.misc.Unsafe.park(Native Method)\n java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:269)\n java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1763)\n java.base/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)\n java.base/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)\n java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1070)\n java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)\n java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)\n java.base/java.lang.Thread.run(Thread.java:1583) 2025-10-27 10:47:43.543 [main] INFO [][o.s.b.autoconfigure.logging.ConditionEvaluationReportLogger.82] \n\nError starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2025-10-27 10:47:43.701 [main] ERROR [][org.springframework.boot.SpringApplication.858] Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'init' defined in class path resource [com/huawei/cbgit/tree/service/assettree/config/MqConfig.class]: fail to start mqs consumer T_devops_TagManagement_label_dev at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1826) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1228) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1194) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1130) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:990) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) Caused by: com.huawei.cube.api.mq.UmpException: fail to start mqs consumer T_devops_TagManagement_label_dev at com.huawei.cube.rt.mqs.consumer.MqsConsumer.start(MqsConsumer.java:39) at com.huawei.cube.api.mq.MqBaseClient.start(MqBaseClient.java:21) at com.huawei.cbgit.tree.service.assettree.label.LabelUpdateMqConsumerService.start(LabelUpdateMqConsumerService.java:85) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1930) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1883) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822) ... 23 common frames omitted Caused by: com.huawei.his.mqs.common.exception.UmpException: Failed to start consumer, [ERROR INFO] is: CODE: -6 DESC: Connection refused: authorization failed, please check the consumer configuration, appId: com.huawei.cbg.it.tree (pub or sub not matched or not exist in mqs management portal) And enterprise: null ,account: null For more information, please visit the doc, mqs-document .[CONFIG SETTINGS] is: Consumer [messageModel=CLUSTERING, consumeFromWhere=CONSUME_FROM_FIRST_OFFSET, consumeThreadMin=8, consumeThreadMax=32, groupWithTags=true, consumeTimestamp=20251027101738, subGroup=null, consumeTimeoutMinutes=0, isDisableConsumeLaterRetry=false, isConsumeTimeoutWithRetry=true, isConsumeTimeoutConsumeThreadCancel=false, consumerAllocateQueueStrategy=AVG, propertyFilter='', ClientConfig{account='null', enterprise='null', appId='com.huawei.cbg.it.tree', appSecret=******, topic='T_devops_TagManagement_label_dev', clientIp='12.11.0.135', instanceName='ump_default', umpNamesrvUrls='mqs-dg02-01.his.huawei.com:9776;mqs-dg02-02.his.huawei.com:9776', dc='null', zone='null', encryptTransport=true, tags='label_uat', fileServiceUrl='null', compressLargeBody=false, umpConnectorUrls='null', loginTimeoutMillis=10000, heartBeatIntervalMillis=30000, reChanneIntervalMillis=120000, reChanneFailedRatio=0.1, heartBeatTimeoutMills=12000, rebalanceIntervalMills=40000, pollNameServerIntervalMills=30000, heartbeatBrokerIntervalMills=30000, persistConsumerOffsetIntervalMills=5000, pullTimeDelayMillsWhenException=1000, enableRequestReply=false, sharedConfig=null}] at com.huawei.his.mqs.client.AbstractClient.start(AbstractClient.java:519) at com.huawei.cube.rt.mqs.consumer.MqsConsumer.start(MqsConsumer.java:37) ... 30 common frames omitted
最新发布
10-28
[root@ip-10-1-2-224 logs]# ps aux | grep java root 166922 0.1 5.0 4785424 397856 ? Sl 10:02 0:27 java -server -Xms2G -Xmx2G -Xss256K -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:+DisableExplicitGC -XX:+PrintGCDetails -Xloggc:/data/devops/camel-web-sql/logs/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/devops/camel-web-sql/logs/trade.dump -Djava.net.preferIPv4Stack=true -Dlog4j.configurationFile=config/logback-spring.xml -Dspring.config.name=application -classpath /data/devops/camel-web-sql/config:/data/devops/camel-web-sql/lib/aspectjweaver-1.9.7.jar:/data/devops/camel-web-sql/lib/attoparser-2.0.5.RELEASE.jar:/data/devops/camel-web-sql/lib/commons-codec-1.15.jar:/data/devops/camel-web-sql/lib/commons-lang3-3.12.0.jar:/data/devops/camel-web-sql/lib/druid-1.2.18.jar:/data/devops/camel-web-sql/lib/fastjson-1.2.83.jar:/data/devops/camel-web-sql/lib/hutool-all-5.8.21.jar:/data/devops/camel-web-sql/lib/jackson-annotations-2.13.3.jar:/data/devops/camel-web-sql/lib/jackson-core-2.13.3.jar:/data/devops/camel-web-sql/lib/jackson-databind-2.13.3.jar:/data/devops/camel-web-sql/lib/jackson-datatype-jdk8-2.13.3.jar:/data/devops/camel-web-sql/lib/jackson-datatype-jsr310-2.13.3.jar:/data/devops/camel-web-sql/lib/jackson-module-parameter-names-2.13.3.jar:/data/devops/camel-web-sql/lib/jakarta.annotation-api-1.3.5.jar:/data/devops/camel-web-sql/lib/java-jwt-3.10.3.jar:/data/devops/camel-web-sql/lib/jsch-0.2.9.jar:/data/devops/camel-web-sql/lib/jul-to-slf4j-1.7.36.jar:/data/devops/camel-web-sql/lib/log4j-api-2.17.2.jar:/data/devops/camel-web-sql/lib/log4j-to-slf4j-2.17.2.jar:/data/devops/camel-web-sql/lib/logback-classic-1.2.11.jar:/data/devops/camel-web-sql/lib/logback-core-1.2.11.jar:/data/devops/camel-web-sql/lib/lombok-1.18.16.jar:/data/devops/camel-web-sql/lib/mysql-connector-java-8.0.28.jar:/data/devops/camel-web-sql/lib/redshift-jdbc42-2.1.0.1.jar:/data/devops/camel-web-sql/lib/riam-token-util-1.0-SNAPSHOT.jar:/data/devops/camel-web-sql/lib/slf4j-api-1.7.36.jar:/data/devops/camel-web-sql/lib/snakeyaml-1.30.jar:/data/devops/camel-web-sql/lib/spring-aop-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-beans-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-boot-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-autoconfigure-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-aop-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-json-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-logging-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-thymeleaf-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-tomcat-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-boot-starter-web-2.7.2.jar:/data/devops/camel-web-sql/lib/spring-context-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-core-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-expression-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-jcl-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-web-5.3.22.jar:/data/devops/camel-web-sql/lib/spring-webmvc-5.3.22.jar:/data/devops/camel-web-sql/lib/thymeleaf-3.0.15.RELEASE.jar:/data/devops/camel-web-sql/lib/thymeleaf-extras-java8time-3.0.4.RELEASE.jar:/data/devops/camel-web-sql/lib/thymeleaf-spring5-3.0.15.RELEASE.jar:/data/devops/camel-web-sql/lib/tomcat-embed-core-9.0.65.jar:/data/devops/camel-web-sql/lib/tomcat-embed-el-9.0.65.jar:/data/devops/camel-web-sql/lib/tomcat-embed-websocket-9.0.65.jar:/data/devops/camel-web-sql/lib/unbescape-1.1.6.RELEASE.jar:/data/devops/camel-web-sql/lib/web-sql.jar:/data/devops/camel-web-sql/lib/web-sql.jar.back20240607:/data/devops/camel-web-sql/lib/web-sql.jar.back2024060702: com.camelgames.sql.Application root 177500 0.0 0.0 222316 2052 pts/0 S+ 15:19 0:00 grep --color=auto java如何将这个Java程序结束运行
04-02
<think>嗯,用户问的是如何结束运行那个Java程序。首先我需要看一下他提供的ps aux | grep java的输出。输出的内容显示有一个Java进程,PID是166922,运行的是com.camelgames.sql.Application。用户可能想终止这个进程,但作为新手,可能需要详细的步骤指导。 首先,我应该确认用户是否有足够的权限。因为进程是由root用户运行的,所以需要使用sudo或者root权限来终止。然后,常见的终止命令是kill,后面跟PID。这里PID是166922,所以命令可能是kill 166922。不过,如果进程没有响应,可能需要用kill -9强制终止,但这样可能会导致数据丢失,所以最好先尝试普通kill。 另外,用户可能需要检查进程是否真的被终止了,可以再次运行ps aux | grep java来确认。还有,用户可能不太熟悉如何查找PID,所以需要明确说明如何从输出中找到进程号。比如,第二列就是PID,这里是166922。 同时,用户提供的Java命令行参数中有一些配置,比如内存设置、GC日志、HeapDump路径等,这些可能在终止前需要考虑是否有未保存的数据或日志需要处理。但用户当前的问题只是如何结束进程,可能不需要涉及这些细节,除非有特殊情况。 需要提醒用户谨慎使用kill -9,因为它是强制终止,可能导致资源未正确释放。但根据进程状态,这里可能是一个常规的Java应用,普通kill应该有效。如果用户遇到进程无法终止的情况,再建议使用kill -9。 另外,用户可能是在服务器上操作,所以需要确认是否真的需要终止该进程,避免影响其他服务。不过根据进程名camel-web-sql,可能是特定的应用,用户应该知道自己在做什么。 总结步骤应该是:1. 使用kill PID正常终止;2. 检查是否成功;3. 如果失败,使用kill -9 PID强制终止;4. 再次确认进程是否结束。同时注意权限问题,可能需要sudo。</think>好的,我来分步骤说明如何终止这个Java进程: 1. **确认进程信息**: - 进程PID:`166922`(第二列) - 启动命令:`com.camelgames.sql.Application` - JVM参数:包含`-Xms2G -Xmx2G`内存设置和GC日志路径 2. **推荐终止步骤**: ```bash # 先尝试正常终止(发送SIGTERM信号) sudo kill 166922 # 等待5秒后检查是否终止 ps aux | grep 166922 # 如果仍然存在,强制终止(发送SIGKILL信号) sudo kill -9 166922 ``` 3. **注意事项**: - 使用`kill -9`会立即强制终止进程,可能导致数据丢失,建议先尝试普通`kill` - 观察`/data/devops/camel-web-sql/logs/`目录下的GC日志和HeapDump,可辅助排查OOM问题 - 该进程使用了CMS垃圾回收器(`-XX:+UseConcMarkSweepGC`),在JDK9+已废弃 4. **补充建议**: ```bash # 查找所有Java进程的更清晰方式 pgrep -af java # 如果需批量终止,可用pkill(谨慎使用) pkill -f camel-web-sql ``` 建议先执行普通kill命令,给JVM留出执行shutdown hook的时间,确保资源安全释放。如果应用有后台任务执行,建议通过应用的健康检查端点或管理接口优雅下线。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值