中国知名网站排行榜,wordpress菜单怎么设置目录册,国家现代农业示范区建设网站,wordpress 过于肿肿SpringCloud工程可以使用Nacos作为注册中心和配置中心#xff0c;配置和使用非常简单#xff0c;本文将简单介绍使用方式#xff0c;并分析其实现方式。
SpringCloud工程集成Nacos
SpringCloud工程使用Nacos非常简单#xff0c;只需要引入依赖、编写配置参数、在启动类上…SpringCloud工程可以使用Nacos作为注册中心和配置中心配置和使用非常简单本文将简单介绍使用方式并分析其实现方式。
SpringCloud工程集成Nacos
SpringCloud工程使用Nacos非常简单只需要引入依赖、编写配置参数、在启动类上添加注解即可。
引入依赖
dependencyManagementdependencies!-- Spring Cloud --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversionHoxton.SR9/versiontypepom/typescopeimport/scope/dependency!-- Spring Cloud Alibaba --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2.2.5.RELEASE/versiontypepom/typescopeimport/scope/dependency/dependencies
/dependencyManagementdependencies!-- Nacos --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency
/dependenciesbootstrap.yml配置文件
spring:application:name: xx-serviceprofiles:active: devcloud:nacos:discovery:server-addr: localhost:8848config:prefix: ${spring.application.name}file-extension: ymlgroup: DEFAULT_GROUPserver-addr: localhost:8848extension-configs:- data-id: base-config-${spring.profiles.active}.ymlgroup: DEFAULT_GROUPrefresh: true- data-id: resource-config-${spring.profiles.active}.ymlgroup: DEFAULT_GROUPrefresh: true配置中心源码分析
配置中心集成的源码在spring-cloud-starter-alibaba-nacos-config工程中。
spring.factories文件
# Configuration配置类
org.springframework.cloud.bootstrap.BootstrapConfiguration\
com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration
org.springframework.boot.autoconfigure.EnableAutoConfiguration\
com.alibaba.cloud.nacos.NacosConfigAutoConfiguration,\
com.alibaba.cloud.nacos.endpoint.NacosConfigEndpointAutoConfigurationorg.springframework.boot.diagnostics.FailureAnalyzer\
com.alibaba.cloud.nacos.diagnostics.analyzer.NacosConnectionFailureAnalyzer# 这里是Nacos扩展的支持json和xml的PropertySourceLoader
org.springframework.boot.env.PropertySourceLoader\
com.alibaba.cloud.nacos.parser.NacosJsonPropertySourceLoader,\
com.alibaba.cloud.nacos.parser.NacosXmlPropertySourceLoaderNacosConfigBootstrapConfiguration
装配NacosConfigProperties、NacosConfigManager、NacosPropertySourceLocator等组件
NacosConfigProperties - 封装spring.cloud.nacos.config配置参数NacosConfigManager - 用于获取ConfigService对象NacosPropertySourceLocator - 用于加载配置封装PropertySource
注册中心源码分析
注册中心集成的源码在spring-cloud-starter-alibaba-nacos-discovery工程中。
spring.factories文件
org.springframework.boot.autoconfigure.EnableAutoConfiguration\com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration,\com.alibaba.cloud.nacos.ribbon.RibbonNacosAutoConfiguration,\com.alibaba.cloud.nacos.endpoint.NacosDiscoveryEndpointAutoConfiguration,\com.alibaba.cloud.nacos.registry.NacosServiceRegistryAutoConfiguration,\com.alibaba.cloud.nacos.discovery.NacosDiscoveryClientConfiguration,\com.alibaba.cloud.nacos.discovery.reactive.NacosReactiveDiscoveryClientConfiguration,\com.alibaba.cloud.nacos.discovery.configclient.NacosConfigServerAutoConfiguration,\com.alibaba.cloud.nacos.NacosServiceAutoConfiguration
org.springframework.cloud.bootstrap.BootstrapConfiguration\com.alibaba.cloud.nacos.discovery.configclient.NacosDiscoveryClientConfigServiceBootstrapConfigurationNacosDiscoveryClientConfigServiceBootstrapConfiguration
import了几个其他的配置类
NacosDiscoveryAutoConfiguration.classNacosServiceAutoConfiguration.classNacosDiscoveryClientConfiguration.classNacosReactiveDiscoveryClientConfiguration.class
NacosDiscoveryAutoConfiguration
装配NacosDiscoveryProperties、NacosServiceDiscovery组件。
NacosServiceDiscovery类用于获取注册中心的服务和实例。
RibbonNacosAutoConfiguration
Configuration(proxyBeanMethods false)
EnableConfigurationProperties
ConditionalOnBean(SpringClientFactory.class)
ConditionalOnRibbonNacos
ConditionalOnNacosDiscoveryEnabled
AutoConfigureAfter(RibbonAutoConfiguration.class)
// 使用NacosRibbonClientConfiguration装配NacosServerList
// NacosServerList用于获取注册到Nacos上的指定service的服务实例列表
RibbonClients(defaultConfiguration NacosRibbonClientConfiguration.class)
public class RibbonNacosAutoConfiguration {}RibbonClients注解导入RibbonClientConfigurationRegistrar类支持组合多个RibbonClient注解。
RibbonClientConfigurationRegistrar类会解析RibbonClients和RibbonClient注解将相关配置类注入到registry中。
NacosDiscoveryEndpointAutoConfiguration
装配NacosDiscoveryEndpoint和NacosDiscoveryHealthIndicator组件
NacosDiscoveryEndpoint - 用于获取Nacos配置参数和订阅的服务NacosDiscoveryHealthIndicator - 健康检查
NacosServiceRegistryAutoConfiguration
装配以下组件 NacosServiceRegistry 实现了ServiceRegistry接口用于服务注册、服务下线 NacosRegistration 封装服务实例信息instanceId、serviceId、host、port和metadata等信息 NacosAutoServiceRegistration 将服务注册到Nacos注册中心内部维护NacosServiceRegistry和NacosRegistration组件继承了AbstractAutoServiceRegistration抽象类其register用于注册服务AbstractAutoServiceRegistration实现了ApplicationListener接口监听WebServerInitializedEvent事件在事件发生时做服务注册
NacosDiscoveryClientConfiguration
装配NacosDiscoveryClient和NacosWatch组件。