spring-cloud-alibaba-nacos-discovery 是nacos spring cloud实现的开源项目,在Spring cloud Alibaba下面,基于Spring commons及Spring Netflix (主要是ribbon部分)实现,主要类记录如下:
- NacosDiscoveryClient ,基于DiscoveryClient的实现,主要是保存了相关properties
- NacosAutoServiceRegistration 服务注册
- NacosDiscoveryClientConfigServiceBootstrapConfiguration,Spring bootStrap 启动
- NacosDiscoveryAutoConfiguration,生成register相关bean
- NacosWatch 心跳
- NacosRibbonClientConfiguration,service对应的ServerList 管理
- NacosServerList ,serverList管理注意是extend com.netflix.loadbalancer.AbstractServerList
- NacosRule, 优先使用同一cluster的服务(只有同一cluster为空才使用其它instances),instances间使用getHostByRandomWeight算法,但NacosRule不是默认使用,默认还是ribbon的默认算法,可以使用(可以参考ribbon说明)如下代码设置为默认
@RibbonClients(defaultConfiguration = DefaultRibbonConfig.class)
@Configuration
public class DefaultRibbonConfig {
//https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-ribbon.html
@Bean
public IRule ribbonRule() {
return new NacosRule();
}
}