Spring Cloud Eureka 5 (服务发现与消费-简单的robbin使用)
通过上述介绍,我们已经有了服务注册中心和服务提供者
下面我们来尝试构建一个服务的消费者
它要完成两个功能,发现服务和消费服务,其中发现服务由eureka客户端完成,消费服务由ribbon完成。
ribbon在eureka服务发现的基础上,实现了一套对服务实例的选择策略,从而实现对服务的消费。
在此之前我们需要做一些准备
启动之前的服务注册中心,为hello-service添加一个简单的接口,同时在创建一个hello-service2的项目并为之添加与hello-service相同的配置
在hello-service中新建一个HelloController的类


启动项目测试下接口

安装此配置创建hello-service2启动项目测试接口

这里为了区分将返回值写为hello2同时配置文件中的端口改为8081

至此准备工作完成我们也可以再次看下注册中心的情况

至此两个hello-service已经注册进来了。
我们正式开始构建服务的消费者
新建一个spring boot项目命名为ribbon-consumer
较之之前的hello-service我们加入了spring-cloud-starter-ribbon依赖

为服务主类加入@EnableDiscoveryClient注解
同时在该主类中创建RestTemplate的spring Bean实例并通过@LoadBalanced注解开启客户端的负载均衡

创建ConsumerController类并实现一个简单的/robbin-consumer的接口

application.properties做如下配置
spring.application.name=ribbon-consumer
server.port=9000
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka
启动项目
访问测


从测试结果显示ribbon-consumer分别在hello-service和hello-service2两个实例上做轮询访问
注:
由于各个服务间会相互调用所以服务的提供者和消费者也是相对的概念。
Spring Cloud Eureka 5 (服务发现与消费-简单的robbin使用)的更多相关文章
- 服务注册发现Eureka之一:Spring Cloud Eureka的服务注册与发现
Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁 ...
- Spring Cloud(2):服务发现(Eureka)
Spring Cloud Eureka是Spring Cloud Netflix项目下的一个模块,作用是服务的注册和发现,并实现服务治理.它有一个(或一组,以实现高可用)服务注册中心(eureka s ...
- Spring Cloud Eureka 实现服务注册与发现
微服务 是一种架构模式,跟具体的语言实现无关,微服务架构将业务逻辑分散到了各个服务当中,服务间通过网络层进行通信共同协作:这样一个应用就可以划分为多个服务单独来维护发布.构建一个可靠微服务系统是需要具 ...
- 1.【Spring Cloud Alibaba】服务发现-Nacos
一.服务的提供者与服务的消费者 二.服务发现原理 如果用户中心地址发生变化怎么办? 服务的消费者总能找到服务的提供者的这种原理,即服务发现原理. 三.什么是Nacos? Nacos文档地址请查看,引入 ...
- Spring Cloud Eureka 之服务端自我注册
Eureka服务端实现了一种自我注册机制,涉及配置项: eureka.client.register-with-eureka spring.application.name Eureka Server ...
- Spring Cloud 服务发现和消费
服务的发现和消费 有了服务中心和服务提供者,下面我们来实现一个服务的消费者: 服务消费者主要完成两个任务——服务的发现和服务的消费,服务发现的任务是由Eureka客户端完成,而服务消费的任务是由Rib ...
- spring cloud Eureka 服务注册发现与调用
记录一下用spring cloud Eureka搭建服务注册与发现框架的过程. 为了创建spring项目方便,使用了STS. 一.Eureka注册中心 1.新建项目-Spring Starter Pr ...
- 第三章 服务治理: Spring Cloud Eureka
Spring Cloud Eureka是 Spring Cloud Netflix微服务套件中的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能 服务治理 ...
- 干货|基于 Spring Cloud 的微服务落地
转自 微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务.但如果要将微服务架构运用到生产项目上,并且能够发挥该架构模式的重要作用,则需要微服务框架的支持. 在Java生态圈,目前使用较多的 ...
随机推荐
- python面向对象总结
一 面向对象的程序设计的由来 见概述:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二 什么是面向对象的程序设计及为什么要有它 面向过 ...
- react antd 动态表单
import React, { Component } from 'react'; import ReactDOM from 'react-dom'; import { Form, InputNumb ...
- 《锋利的jQuery》读书笔记(动画)
1.show()和hide() 实质就是改变当前DOM对象的display为block.none或inline-block(取决于之前的display),如下: $("element&quo ...
- [C#] Newtonsoft.Json 版本冲突
在web.config或者app.config里面加上一段: <runtime> <assemblyBinding xmlns="urn:schemas-microsoft ...
- ng 变量和常量服务
<!DOCTYPE html> <html ng-app="myApp"> <head lang="en"> <met ...
- 【Java 并发】Executor框架机制与线程池配置使用
[Java 并发]Executor框架机制与线程池配置使用 一,Executor框架Executor框架便是Java 5中引入的,其内部使用了线程池机制,在java.util.cocurrent 包下 ...
- LINUX命令—让人喜爱的find
FIND命令的让人喜爱的地方在于其后面跟着的 –exec 可以执行其他linux命令 这点太让人高兴了,不过他的结尾要带一个特殊的结构 {} \: 说说实例:
- 记录最近工作使用javascript对select[option]的操作
1: 数据库取值赋予select选项 $(function(){ $("input[name='state'][value='{$store.state}']").attr(&qu ...
- Android sharedUserId 使用
在Android 系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,.这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程 ...
- 使用iptables nat进行端口转发
1.将发向HostA:PortA的请求转发到HostB:PortB iptables -t nat -A PREROUTING -p tcp -i eth0 -d HostA --dport Port ...