范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

SpringCloud如何实现服务的发现与消费

  相信我们已经能够搭建起微服务架构的各个模块,并且已经成功运行起来。
  现在我们已经有了服务注册中心和服务提供者,下面就来尝试构建一个服务消费者。服务消费者
  这个服务消费者,主要完成两个目标:发现服务以及消费服务
  其中,服务的发现任务是由Eureka客户端完成,而服务消费的任务是由Ribbon完成,Ribbon是一个基于HTTP和TCP的客户端负载均衡器,它可以在通过客户端中配置的ribbonServerList服务端列表去轮询访问以达到负载均衡的作用。当Ribbon与Eureka联合使用时,Ribbon的服务实例清单ribbonServerList会被DiscoveryEnabledNIWSServerList重写,扩展成从Eureka注册中心中获取服务端列表。同时它也会用NIWSServerPing来取代IPing,它将职责委托给Eureka来确定服务端是否已经启动。本质就是它在Eureka服务发现的基础上实现了一套对服务实例的选择策略,从而实现对服务的消费。编码实现1.准备工作
  启动之前高可用的服务注册中心eureka-server以及hello-service服务,为了试实验Ribbon的客户端负载均衡的功能,通过java -jar命令行的方式来启动不同端口的hello-service
  但是在打包之前,如果hello-service中有测试类,需要将测试类跳过,否则敲入命令mvn:install会报错,因此打包的时候要使用这个命令:mvn install -Dmaven.test.skip=true 复制代码
  然后在target目录下,敲入命令:java -jar springboot-01-1.0-SNAPSHOT.jar --server.port=8081 java -jar springboot-01-1.0-SNAPSHOT.jar --server.port=8082 复制代码
  在启动成功之后,如下图所示,从Eureka信息面板可以看到名为HELLO-SERVICE的服务中出现了两个实例单元,分别是通过命令启动的8081端口和8082端口的服务.
  两个端口的服务2.新建Consumer
  创建一个SpringBoot的基础工程来实现消费服务者,取名为ribbon-consumer,并在pom中引入如下的依赖,新增了spring-cloud-starter-ribbon                      org.springframework.boot             spring-boot-starter-web                                org.springframework.boot             spring-boot-starter-test             test                               org.springframework.cloud             spring-cloud-starter-eureka-server                                org.springframework.cloud             spring-cloud-starter-ribbon               复制代码
  然后创建应用主类ConsumerApplication,通过@EnableDiscoveryClient注解让该应用注册为Eureka客户端应用,以获得服务发现的能力。同时,在该主类中创建RestTemplate的SpringBean实例,并通过@LoadBalanced注解开启客户端负载均衡。 @EnableDiscoveryClient @SpringBootApplication public class ConsumerApplication {      @Bean     @LoadBalanced     RestTemplate restTemplate(){         return new RestTemplate();     }      public static void main(String[] args) {         SpringApplication.run(ConsumerApplication.class,args);     } } 复制代码
  创建ConsumerController类并实现/ribbon-consumer接口。在该接口中,通过在上面创建的RestTemplate来实现对HELLO-SERVICE服务提供的/hello接口进行调用。可以看到在这里访问的地址是服务名HELLO-SERVICE,而不是一个具体的地址,在服务治理框架中,这是一个重要的特性。@RestController public class ConsumerController {      @Autowired     RestTemplate restTemplate;      @GetMapping("/ribbon-consumer")     public String helloConsumer(){         return restTemplate.getForEntity("http://HELLO-SERVICE/hello",String.class).getBody();     } } 复制代码
  在application.properties中配置Eureka服务注册中心的位置,需要与hello-service一样,不然是发现不了服务的。spring.application.name=ribbon-consumer server.port=9000  eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka 复制代码3.启动服务
  启动服务,然后在注册中心的面板中我们可以看到有两个服务。
  消费者服务
  然后在地址栏中输入 http://localhost:9000/ribbon-consumer发起get请求,成功返回了"Hello world",此时我们可以在ribbon-consumer应用的控制台中看到如下信息,Ribbon输出了当前客户端维护的HELLO-SERVICE的服务列表情况。其中包含了各个实例的位置,Ribbon就是按照此信息进行轮询访问,以实现基于客户端的负载均衡。DynamicServerListLoadBalancer for client HELLO - SERVICE initialized: DynamicServerListLoadBalancer: {     NFLoadBalancer: name = HELLO - SERVICE,     current list of Servers = [192.168 .31 .142: 8081, 192.168 .31 .142: 8082],     Load balancer stats = Zone stats: {         defaultzone = [Zone: defaultzone;Instance count: 2;Active connections count: 0;Circuit breaker tripped count: 0;Active connections per server: 0.0;]     },     Server stats: [         [Server: 192.168 .31 .142: 8081;Zone: defaultZone;Total Requests: 0;Successive connection failure: 0;Total blackout seconds: 0;Last connection made: Thu Jan 01 08: 00: 00 CST 1970;First connection made: Thu Jan 01 08: 00: 00 CST 1970;Active Connections: 0;total failure count in last(1000) msecs: 0;average resp time: 0.0;90 percentile resp time: 0.0;95 percentile resp time: 0.0;min resp time: 0.0;max resp time: 0.0;stddev resp time: 0.0],         [Server: 192.168 .31 .142: 8082;Zone: defaultZone;Total Requests: 0;Successive connection failure: 0;Total blackout seconds: 0;Last connection made: Thu Jan 01 08: 00: 00 CST 1970;First connection made: Thu Jan 01 08: 00: 00 CST 1970;Active Connections: 0;total failure count in last(1000) msecs: 0;average resp time: 0.0;90 percentile resp time: 0.0;95 percentile resp time: 0.0;min resp time: 0.0;max resp time: 0.0;stddev resp time: 0.0]     ] } ServerList: org.springframework.cloud.netflix.ribbon.eureka.DomainExtractingServerList @673b1fae 复制代码
  再尝试发送几次请求,并观察两个HELLO-SERVICE的控制台,可以看到两个控制台会交替打印下面的日志,可以用来判断当前的ribbon-consumer对HELLO-SERVICE的调用是否是负载均衡的。com.web.controller.HelloController  : /add, host:192.168.31.142, service_id:hello-service

孕期睡眠很重要,为了胎儿,坏的睡觉习惯赶紧改自己怀孕了,你会非常注意自己的睡眠习惯吗?一些年轻的孕妇可能觉得自己习惯性的熬夜已经不在话下,如今,让自己改还是挺难的?有可能她们根本不在乎孕期睡眠习惯的好坏吧!事实上,如果你孕期中医有办法丨节后嗓子上火,多喝水可不够齐鲁网闪电新闻2月17日讯春节假期期间,大家暂时放下工作的忙碌,与家人一起享受假期的快乐。而假期,免不了吃吃喝喝,各种聚会少不了。大鱼大肉探亲访友一番过后,好多小朋友便出现发热咽痛锦江酒店集团到底有多少个品牌,哪些值得你加盟?锦江酒店集团到底有多少个酒店品牌?王总想要加盟,就问了这个问题。你先来看这张图。映入眼前的全部都是锦江的品牌,密密麻麻的,这么多的酒店品牌,可以供给从个人投资到房地产开发商的投资人民宿风格别墅设计,既能出租也能自住现在越来越多的人出门旅游不再选择传统的酒店住宿,转而选择民宿。因为传统酒店离景点越近就越贵,而民宿不光能够近距离体验当地生活,居住条件也更好。今天为大家带来一套现代风格的民宿设计效五龙潭捞螺记春天到了,万物复苏,家里的生态缸因为天气回暖里面的藻类开始疯长。去五龙潭捞几个螺,顺便欣赏一下风景。下了几场雨,小草都已经绿了园内的玉兰花也都开了五龙潭位于趵突泉北门北,与趵突泉一青海德令哈市可鲁克湖和托素湖可鲁克湖和托素湖在柴达木盆地的东北部,距海西蒙古族藏族自治州首府德令哈西南约50公里的怀头他拉草原上,有两个一大一小美丽恬静的湖泊,名叫可鲁克湖和托素湖。它们就象是两面熠熠闪亮的巨北京1936年的15张照片1。1936年,北京房山,一名向导们正驱赶着一头毛驴涉水过河,另一名男子站在旁边的木板桥上看着。2。1936年,北京通县,潞河上很有年代感的一座石拱桥。3。1936年,北京长辛店毓北京微旅行线路一场世纪疫情起伏反复,出入境旅游全面停滞,跨省游团队游也受到很多限制。2021年,北京市文化和旅游局积极适应疫情防控催生的消费业态变化,策划开展了大北京新场景微旅行只为找到你微旅行春分之后,虚火上升,常喝4道汤不上火春分,是春季的第四个节气。春分的意义,一是指一天时间白天黑夜平分,各为12小时二是古时以立春至立夏为春季,春分正当春季3个月之中,平分了春季。春分后,气候温和,雨水充沛,我国大部分得了冠心病,中医怎么说?看完该文,学会分辨你是哪种冠心病冠心病又叫冠状动脉粥样硬化性心脏病,是冠状动脉血管发生动脉粥样硬化病变,引起血管腔狭窄或阻塞,造成心肌缺血缺氧或坏死而导致的心脏病。典型的冠心病的表现因劳累过度情绪激动等诱发,突发饿了胃痛,吃饱了胃还痛?你可能是消化性溃疡了消化性溃疡,就是大家经常听到的胃溃疡,是大家非常熟知的一种胃病。很多人对于溃疡这件事非常的不以为意,认为只是小毛小病,吃点胃药过阵子就好了。但是消化性溃疡并不是普通的胃病,如果不及
徐小明周三操作策略今天上午上证指数90分钟顶部钝化消失,加上昨天60分钟和120分钟钝化的消失,至此所有分钟周期的顶部钝化全消失了。钝化消失后市场在近期不会再有结构,因为构筑结构是需要一个过程的,要GlobalSpeed在线视频播放控制,最高支持16倍超快播放GlobalSpeed是一款能控制在线视频播放的ChromeEdgeFirefox扩展,免费开源,无数据收集无追踪,可以实现播放速度控制倒带前进逐帧分析标记AB重复等功能,支持快捷豆腐,是肾结石的加速剂吗?建议这4物,能不吃就不吃肾结石是临床上常见的疾病,这是因为一种特殊因素导致尿液内的晶体物质饱和度过高,析出的晶体会在肾脏内聚集,长期滞留下会形成结石。一般情况下,结石的体积都比较小,不会给人带来明显的不适空调行业的2022房地产助内销,海外堵出口作者张未原创深眸财经(chutou0325)空调的未来发展趋势如何,这个问题在各大媒体平台你方唱罢我登场。不过,当下的企业究竟是否具备增长潜力,才是众人现在所关心的真正问题。疫情导中国首善是什么意思?谁是二善三善?中国首富上了热搜,今天中国首善也来了什么是中国首善,顾名思义是指中国首位捐款最多的人,目前京东刘强东以149亿元成为中国首善,美团王兴147亿元中国二善小米雷军145亿元中国三善,一位炒股15年老股民分享缩量上涨意味着什么?不懂就千万别炒股炒股注定是一场孤独的旅行朋友大多因为两个基础而成为朋友世事洞悉之后,早不再象十八九岁那般渴望友谊,青少年阶段,鲜衣怒马,与三五好友同行,或载舟户湖,觉得人生如此无憾。然而,逐渐发现水滴公司第三季度营收7。7亿,净利润1。7亿同比扭亏12月6日,水滴公司发布了截至9月30日的2022年第三季度财报。财报显示,水滴公司第三季度净营收为7。72亿元,同比下滑0。9归属于水滴公司的净利润为1。7亿元,而2021年同期网购白酒发货地为何总在河南?行家揭秘原因有三个,看懂不吃亏网购这些年发展迅速,互联网红利也带动了一大批城市企业的发展,造就了经济的快速增长。虽然网购的诞生和发展影响了实体经济的增速,但是不可否认的是网购确实让人的消费意愿增多,也创造了不少外资集体唱多消费股在疫情防控优化后,外资投行开始集体唱多中国资产,尤其是消费板块。多家投行将消费板块从此前的低配评级调高至顶配。首先是高盛在2023中国宏观经济展望交流会上表示,2023年给予A股市安井食品三全食品海欣食品,谁才是龙头水饺作为我国的特色美食,深受广大消费者的喜爱。20年前,能吃上湾仔码头的水饺是一件很幸福的事情。如今,各大品牌的水饺挤满了超市的冰柜,挑起来也让人发愁。今天,我们一起看一下速冻水饺官宣破产!它会是2022年最后一家破产的车企吗?时至年底,国内汽车市场有人欢喜有人忧,前有广汽菲克申请破产恒驰汽车被爆裁员,后有福田宝沃正式官宣破产。11月29日,北汽福田汽车股份有限公司发布关于法院宣告北京宝沃汽车股份有限公司