首页>代码>springcloud alibaba+springboot开发个人博客微服务版本的demo实例,通过接口测试服务发现,监控,降级>/my_blog/blog-center/src/main/java/com/my/blogcenter/configuration/NacosWeightRule.java
package com.my.blogcenter.configuration; import com.alibaba.nacos.api.exception.NacosException; import com.alibaba.nacos.api.naming.NamingService; import com.alibaba.nacos.api.naming.pojo.Instance; import com.netflix.client.config.IClientConfig; import com.netflix.loadbalancer.AbstractLoadBalancerRule; import com.netflix.loadbalancer.BaseLoadBalancer; import com.netflix.loadbalancer.Server; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.alibaba.nacos.NacosDiscoveryProperties; import org.springframework.cloud.alibaba.nacos.ribbon.NacosServer; /** * @author carrymec@126.com * @desc 基于权重选择服务节点 * @date 2020-03-07 */ @Slf4j public class NacosWeightRule extends AbstractLoadBalancerRule { @Autowired private NacosDiscoveryProperties discoveryProperties; @Override public void initWithNiwsConfig(IClientConfig iClientConfig) { } @Override public Server choose(Object key) { try { BaseLoadBalancer loadBalancer = (BaseLoadBalancer) this.getLoadBalancer(); log.info("loadBalancer->{}", loadBalancer); //获取请求微服务的名称 String name = loadBalancer.getName(); //拿到服务发现的相关api NamingService namingService = discoveryProperties.namingServiceInstance(); Instance instance = namingService.selectOneHealthyInstance(name); log.info("port:{},ClusterName:{}", instance.getPort(), instance.getClusterName()); return new NacosServer(instance); } catch (NacosException e) { e.printStackTrace(); } return null; } }
最近下载更多
lt33333 LV6
2023年6月5日
lipiao161 LV15
2023年4月27日
352601466 LV2
2022年9月20日
wangdengzhe LV7
2022年5月24日
lsqazx LV5
2022年2月11日
luowei45 LV1
2022年1月12日
pxqtsht LV15
2021年11月3日
lyd19931203 LV21
2021年8月4日
lgh2010101 LV17
2021年7月12日
15997331343 LV7
2021年6月16日