Spring Cloud(二) 配置Eureka Client
前文回顾:
Spring Cloud(一)Eureka Server-单体及集群搭建
本节我们将创建两个Eureka Client,注册到上节中的Eureka Server中,一个作为服务提供方,一个作为服务调用方。
一.服务提供方(生产者)
1.pom中添加依赖
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.3.RELEASE</version><relativePath/></parent>
<properties><java.version>1.8</java.version><spring-cloud.version>Greenwich.RELEASE</spring-cloud.version></properties>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId><version>2.1.0.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
2.Application启动类中添加注解
@EuableDiscoveryClient:就是一个自动发现客户端的实现
@SpringBootApplication
@EnableDiscoveryClient
public class ProducerApplication {public static void main(String[] args) {SpringApplication.run(ProducerApplication.class, args);}
}
3.配置文件
spring.application.name=spring-cloud-producer
server.port=9000
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
4.提供服务
@RestController
public class HelloController {
@RequestMapping("/hello")public String index(@RequestParam String name) {return "hello " + name + ",welcome to Spring Cloud";}
}
二.服务调用方(消费者)
1.pom中添加依赖
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.3.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.yfy</groupId><artifactId>consumer</artifactId><version>0.0.1-SNAPSHOT</version><name>consumer</name><description>Demo project for Spring Boot</description>
<properties><java.version>1.8</java.version></properties>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId><version>2.1.0.RELEASE</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.1.0.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
2.Application启动类中添加注解
@EnableDiscoveryClient
:启用服务注册与发现@EnableFeignClients
:启用feign进行远程调用
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}
}
3.配置文件
spring.application.name=spring-cloud-consumer
server.port=9001
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
feign.hystrix.enabled=true
4.Feign调用实现
@FeignClient(name= "spring-cloud-producer",fallback = HelloRemoteHystrix.class)
public interface HelloRemote {
@RequestMapping(value = "/hello")String hello(@RequestParam(value = "name") String name);
}
5.web层调用远程服务
@RestController
public class HelloController {@AutowiredHelloRemote helloremote;@RequestMapping("/hello/{name}")public String index(@PathVariable("name") String name) {return helloremote.hello(name);}
}
三.测试
依次启动spring-cloud-eureka、spring-cloud-producer、spring-cloud-consumer三个项目
浏览器中输入:http://localhost:9001/hello/yfy
返回:hello yfy,welcome to Spring Cloud
4.负载均衡测试
将生产者的controller方法修改为
@RestController
public class HelloController {@RequestMapping("/hello")public String index(@RequestParam String name) {return "hello " + name + ",welcome to Spring Cloud:product2";}
}
再启动一个生产者,端口为9003
浏览器中输入:http://localhost:9001/hello/yfy
第一次返回:hello yfy,welcome to Spring Cloud
第一次返回:`hello yfy,welcome to Spring Cloud:product2
不断的进行测试下去会发现两种结果交替出现,说明两个服务中心自动提供了服务均衡负载的功能。
Spring Cloud(二) 配置Eureka Client相关推荐
- 玩转Spring Cloud之配置中心(config server config client)
玩转Spring Cloud之配置中心(config server &config client) 本文内容导航: 一.搭建配置服务中心(config server) 1.1.git方式 1 ...
- 【重难点】【分布式 01】RESTful、RPC 对比、Dubbo、Spring Cloud 对比、Eureka、Zookeeper、Consul、Nacos 对比、分布式锁
[重难点][分布式 01]RESTful.RPC 对比.Dubbo.Spring Cloud 对比.Eureka.Zookeeper.Consul.Nacos 对比.分布式锁 文章目录 [重难点][分 ...
- 破甲两千六 Spring Cloud 教程(三):添加Spring Cloud 的 Netflix Eureka 插件,实现服务端、客户端的发现与注册
写在前面: Spring Cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等. 5大常用组件: 服务发现 ...
- (七)Alian 的 Spring Cloud Config 配置中心(客户端)
目录 一.背景 二.maven依赖 三.配置文件 四.验证 一.背景 通过上一篇文章,我们已经搭建了配置中心了,接下里我们继续改造我们的订单服务了,之前我们的订单服务的数据库配置还是写在配置文件中 ...
- 基于Spring cloud Ribbon和Eureka实现客户端负载均衡
前言 本案例将基于Spring cloud Ribbon和Eureka实现客户端负载均衡,其中Ribbon用于实现客户端负载均衡,Eureka主要是用于服务注册及发现: 传统的服务端负载均衡 常见的服 ...
- Spring Cloud中,Eureka常见问题总结
Spring Cloud中,Eureka常见问题总结. 1 eureka.environment: 指定环境 参考文档: 1 eureka.datacenter: 指定数据中心 参考文档: 使用配置项 ...
- 实践出真知之Spring Cloud之基于Eureka、Ribbon、Feign的真实案例
转载自 实践出真知之Spring Cloud之基于Eureka.Ribbon.Feign的真实案例 Eureka是Spring Cloud Eureka的简称,是Netflix提供的组件之一.通过E ...
- Spring Cloud Netflix之Eureka上篇
前言:Spring Cloud NetFlix这个项目对NetFlix中一些久经考验靠谱的服务发现,熔断,网关,智能路由,以及负载均衡等做了封装,并通过注解的或简单配置的方式提供给Spring Clo ...
- 【夯实Spring Cloud】Spring Cloud分布式配置中心详解
本文属于[夯实Spring Cloud]系列文章,该系列旨在用通俗易懂的语言,带大家了解和学习Spring Cloud技术,希望能给读者带来一些干货.系列目录如下: [夯实Spring Cloud]D ...
最新文章
- python 读取图片成为一维数组_python+opencv 图像的数组和矩阵操作
- linux shell find 命令简介
- 计算机应用计算题(88)10,计算机应用考试习题(88页)-原创力文档
- 数学家探索两个几何世界之间的镜像链接
- 字符集和编码II: fat/msdos/vfat (文件名乱码的问题)
- 贺利坚老师汇编课程23笔记:用DEBUG跟踪程序的执行
- eclipse 无法启动选择的项,最近未进行任何启动
- UE4官方文档学习笔记材质篇——分层材质
- python使用百度翻译api
- 硕士论文中期汇报ppt_做一场合格的中期汇报
- 如何使用python 给PDF生成目录
- C++实现CS模型(计算机网络)
- NI Multisim元件库:在Multisim中创建自定义元器件
- 普通人学会Python到底具体能做什么呢?
- AndroidP HIDL 转载
- 计算机管理处理卡,图文详解电脑卡怎么处理
- 【干】探索自己的云米冰箱
- c语言情书大赛,计算机科学与技术学院“C语言情书大赛”
- ubuntu虚拟机下测试摄像头拉流
- Windows软件打包工具