原创  spring cloud 获取服务发现的服务信息

分类:spring,java 2021-09-10 16:18    299人阅读   

gitee地址 https://gitee.com/aquari/spring_cloud_all

package com.springCloudAll.web;

import com.springCloudAll.client.TestClient;
import com.springCloudAll.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import java.net.URI;
import java.util.List;

/**
 * Created by YouGuessWho on 2017/4/27.
 */
@RequestMapping(value="/discoveryTest")
@RestController
public class DiscoveryTestController {

    @Autowired
    private DiscoveryClient client;

    @Autowired
    private LoadBalancerClient loadBalancer;

    /**
     * 服务发现测试
     * @return
     */
    @RequestMapping("/getServiceData")
    public  String getSentence() {
        return  "discovery service and get data:"+getWord("TEST_SERVICE");//大小写不区分
    }

    /**
     * 负载均衡
     * @param service
     * @return
     */
    @RequestMapping("/getWordRibbon")
    public String getWordRibbon(String service) {
        ServiceInstance instance = loadBalancer.choose("TEST_SERVICE");
        return (new RestTemplate()).getForObject(instance.getUri(),String.class);
    }

    @RequestMapping("/getWordHystrix")
    public String getWordHystrix() {
        return  "Hystrix get data:"+testService.getWordHystrix();
    }


    private String getWord(String service) {
        List<String> tt = client.getServices();
        List<ServiceInstance> list = client.getInstances(service);
        if (list != null && list.size() > 0 ) {
            URI uri = list.get(0).getUri();
            if (uri !=null ) {
                return (new RestTemplate()).getForObject(uri,String.class);
            }
        }
        return null;
    }
}



支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

服务器费用不足...

CSS3+DIV很酷的渐变波浪网页特效

Nodejs实现的后台管理模板下载

js擦鞋效果

红色大气商业咨询业务公司主页模板

动态的即将到来建设中HTML5模板

动态table表格小部件

jquery slick轮播切换例子

高端黄色工业和建筑集团HTML模板

用Bootstrap实现mansory网格瀑布流布局插件

祖玛弹珠js小游戏代码

两队vs比赛照片显示效果

3种样式环境保护网站绿色HTML5模板

CSS SVG开关按钮切换网页白天和夜晚

生物实验室和科学研究网站模板下载

CSS写的灯笼动态效果

玉石翡翠直销商网站HTML模板

6种时尚的营销多用途网页模板

科技公司网站中文HTML模板

Hover悬停按钮阴影box-shadow

蓝色的网络建站公司HTML页面

服务器费用不足...
 工具推荐 更多»