SpringCloud(九):Ribbon脱离Eureka使用及原生api

来源:互联网 发布:java如何让窗口置顶 编辑:程序博客网 时间:2024/05/21 11:30

前面介绍了使用Eureka和Ribbon的情况,这里小编带你继续学习脱离Eureka如何使用Ribbon以及如何使用ribbon原生api。

脱离eureka使用Ribbon

一、复制原先ribbon项目更改为:microservice-consumer-movie-ribbon-without-eureka

更新pom,application.yml中的名称,在parent的pom文件中加入其module。

二、将原先的配置文件定义负载均衡策略的代码去掉,添加内容

ribbon:  eureka:   enabled: falsemicroservice-provider-user:  ribbon:    listOfServers: localhost:7900  

三、更改controller中的findById()方法

@GetMapping("/movie/{id}")private User findById(@PathVariable Long id) {ServiceInstance serviceInstance = this.LoadBalancerClient.choose("microservice-provider-user");System.out.println("***"+serviceInstance.getHost()+":"+serviceInstance.getPort()+":"+serviceInstance.getServiceId());return this.restTemplate.getForObject("http://microservice-provider-user/simple/"+id, User.class);}

四、启动

先启动eureka,再启动四个提供者实例,7900,7901,修改application.yml即可。最后启动消费者。启动成功界面:、


五、访问页面:localhost:8010/movie/1,刷新四次


由上图可知,只访问了配置文件中配置的7900端口。


使用ribbon的原生api

官网资料:

Using the Ribbon API Directly
You can also use the LoadBalancerClient directly. Example:


public class MyClass {
    @Autowired
    private LoadBalancerClient loadBalancer;


    public void doStuff() {
        ServiceInstance instance = loadBalancer.choose("stores");
        URI storesUri = URI.create(String.format("http://%s:%s", instance.getHost(), instance.getPort()));
        // ... do something with the URI
    }
}


在咱们项目中的体现:

@Autowiredprivate LoadBalancerClient LoadBalancerClient;@GetMapping("/test")public String test() {ServiceInstance serviceInstance = this.LoadBalancerClient.choose("microservice-provider-user");System.out.println("111"+serviceInstance.getHost()+":"+serviceInstance.getPort()+":"+serviceInstance.getServiceId());ServiceInstance serviceInstance2 = this.LoadBalancerClient.choose("microservice-provider-user2");System.out.println("222"+serviceInstance2.getHost()+":"+serviceInstance2.getPort()+":"+serviceInstance2.getServiceId());return "1";}

小结

博客到这里,关于ribbon的介绍就告一段落了。博客中介绍的完整的项目源码地址:链接:http://pan.baidu.com/s/1i4NmJ5b 密码:y0hf


建议大家跟随博客一步步进行搭建,源码作为参考。实践中更有利于成长!


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 睡觉压奶了疼怎么办 堵奶了挤不下来怎么办 孕36周胎儿腿短怎么办 孕晚期胎儿腿短怎么办 孕晚期宝宝腿短怎么办 手劳累过度麻痛怎么办 大人发烧40不退怎么办? 颈椎扯的脑袋疼怎么办 孕妇颈椎痛导致失眠怎么办 做完运动脊椎中间痛怎么办? 阴虛阴虚火旺怎么办 脸一躺下就丑怎么办 身体淤堵的厉害怎么办 怀孕晚期脚肿了怎么办 宝宝感冒咳嗽流鼻涕流泪怎么办 孕晚期睡觉习惯面朝右怎么办 鼻涕一直不停的流怎么办 宝宝一直流清鼻涕怎么办 感冒了眼睛酸胀流泪怎么办 五个月宝宝感冒流鼻涕怎么办 六个月宝宝感冒流鼻涕怎么办 一岁宝宝感冒咳嗽流鼻涕怎么办 七个月宝宝感冒流鼻涕咳嗽怎么办 孩子握笔姿势不正确怎么办 走久了脚底板痛怎么办 不会给宝宝拍嗝怎么办 打了肉毒素淤青怎么办 新生儿一吃母乳就睡觉怎么办 10岁半宝宝缺钾怎么办 宝宝吃不到乳晕怎么办 喂母乳乳头破了怎么办 宝宝吸了乳头痛怎么办 喂母乳奶头很疼怎么办 孩子吸的乳头痛怎么办 新生儿一直睡觉不吸吮怎么办 新生儿光睡觉不吃奶怎么办 婴儿不吸母亲的奶怎么办 肾里有结石一直不掉下来怎么办 宝宝拍不出来嗝怎么办 未满月宝宝溢奶怎么办 吃母乳老是吐奶怎么办