首页>代码>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;
    }
}
最近下载更多
微信网友_7134912998903808  LV15 2024年9月11日
lt33333  LV7 2023年6月5日
lipiao161  LV16 2023年4月27日
352601466  LV2 2022年9月20日
wangdengzhe  LV7 2022年5月24日
lsqazx  LV5 2022年2月11日
luowei45  LV1 2022年1月12日
pxqtsht  LV16 2021年11月3日
lyd19931203  LV21 2021年8月4日
lgh2010101  LV17 2021年7月12日
最近浏览更多
微信网友_7134912998903808  LV15 2024年9月11日
chn-lei  LV2 2024年8月27日
1049066887  LV13 2024年8月21日
ゆ 、 Hurt°  LV2 2024年7月8日
唯易人生  LV3 2023年7月5日
644106  LV8 2023年6月8日
lt33333  LV7 2023年6月5日
微信网友_6115804675756032  LV7 2023年5月23日
随便取个名字_哈哈  LV27 2023年5月18日
流连瓦盖法  LV7 2023年4月28日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友