原创 

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

分类:spring,java    488人阅读    IT小君  2021-09-10 16:18

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;
    }
}



点击广告,支持我们为你提供更好的服务

中小型创意设计服务公司网站模板

小众时尚单品在线电子商务网站模板

有机水果蔬菜HTML5网站模板

canvas炫酷鼠标移动文字粒子特效

js+css3抽奖转盘旋转点餐代码

HTML5 Canvas竖直流动线条背景动画特效

css+js实现的颜色渐变数字时钟动画特效

HTML5现代家居装潢公司网站模板

现代时尚家具公司网站模板

jQuery右端悬浮带返回顶部特效

响应式咖啡饮品宣传网站模板

html5 canvas进度条圆环图表统计动画特效

html5图标下拉搜索框自动匹配代码

html5 svg夜空中星星流星动画场景特效

css鼠标跟随文字模糊特效

HTML5数字产品服务公司网站模板

html5 canvas彩色碎片组合球形旋转动画特效

响应式太阳能能源公司网站模板

网页设计开发公司网站模板

响应式时尚单品在线商城网站模板

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»
点击广告,支持我们为你提供更好的服务