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

分类:spring,java 2021-09-10T16:18:12    56人阅读   

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



支付宝打赏 微信打赏

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

服务器费用不足...

layui后台HTML框架管理系统模板

新闻列表jquery.SuperSlide整体切换

jquery顶部导航浮动二级菜单

微信助力活动模板 bootstrap框架手机网页模板

layui房产物业管理系统OA模板

挂号预约手机端页面Vue代码

手机端邀请好友统计页面

jquery产品介绍列表切换

Bootstrap电商系统管理模板_换肤HTML5后台系统UI框架 - AdminDesigns1.5

unicorn后台管理模版

手机短信验证码注册H5页面

仿天猫购物详情页h5页面

仿微信聊天主界面html

INSPINIA - 响应CRM后台模板 附加前端单页滚动模板

响应式图文博客网站HTML模板

svg旋转动画loading特效

网上书店HTML模板_Bootstrap网上书城电商HTML5模板 - BookStore

5套响应式大型在线商城HTML5模板_各行业电商模板HTML框架 - MyStore

3套CRM,CMS,etc系统后台模板 bootstrap数据管理页面 - Adminto v1.5

2048小游戏html代码

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