前文回顾:

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相关推荐

  1. 玩转Spring Cloud之配置中心(config server config client)

    玩转Spring Cloud之配置中心(config server &config client)  本文内容导航: 一.搭建配置服务中心(config server) 1.1.git方式 1 ...

  2. 【重难点】【分布式 01】RESTful、RPC 对比、Dubbo、Spring Cloud 对比、Eureka、Zookeeper、Consul、Nacos 对比、分布式锁

    [重难点][分布式 01]RESTful.RPC 对比.Dubbo.Spring Cloud 对比.Eureka.Zookeeper.Consul.Nacos 对比.分布式锁 文章目录 [重难点][分 ...

  3. 破甲两千六 Spring Cloud 教程(三):添加Spring Cloud 的 Netflix Eureka 插件,实现服务端、客户端的发现与注册

    写在前面: Spring Cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等. 5大常用组件: 服务发现 ...

  4. (七)Alian 的 Spring Cloud Config 配置中心(客户端)

    目录 一.背景 二.maven依赖 三.配置文件 四.验证 一.背景   通过上一篇文章,我们已经搭建了配置中心了,接下里我们继续改造我们的订单服务了,之前我们的订单服务的数据库配置还是写在配置文件中 ...

  5. 基于Spring cloud Ribbon和Eureka实现客户端负载均衡

    前言 本案例将基于Spring cloud Ribbon和Eureka实现客户端负载均衡,其中Ribbon用于实现客户端负载均衡,Eureka主要是用于服务注册及发现: 传统的服务端负载均衡 常见的服 ...

  6. Spring Cloud中,Eureka常见问题总结

    Spring Cloud中,Eureka常见问题总结. 1 eureka.environment: 指定环境 参考文档: 1 eureka.datacenter: 指定数据中心 参考文档: 使用配置项 ...

  7. 实践出真知之Spring Cloud之基于Eureka、Ribbon、Feign的真实案例

    转载自  实践出真知之Spring Cloud之基于Eureka.Ribbon.Feign的真实案例 Eureka是Spring Cloud Eureka的简称,是Netflix提供的组件之一.通过E ...

  8. Spring Cloud Netflix之Eureka上篇

    前言:Spring Cloud NetFlix这个项目对NetFlix中一些久经考验靠谱的服务发现,熔断,网关,智能路由,以及负载均衡等做了封装,并通过注解的或简单配置的方式提供给Spring Clo ...

  9. 【夯实Spring Cloud】Spring Cloud分布式配置中心详解

    本文属于[夯实Spring Cloud]系列文章,该系列旨在用通俗易懂的语言,带大家了解和学习Spring Cloud技术,希望能给读者带来一些干货.系列目录如下: [夯实Spring Cloud]D ...

最新文章

  1. python 读取图片成为一维数组_python+opencv 图像的数组和矩阵操作
  2. linux shell find 命令简介
  3. 计算机应用计算题(88)10,计算机应用考试习题(88页)-原创力文档
  4. 数学家探索两个几何世界之间的镜像链接
  5. 字符集和编码II: fat/msdos/vfat (文件名乱码的问题)
  6. 贺利坚老师汇编课程23笔记:用DEBUG跟踪程序的执行
  7. eclipse 无法启动选择的项,最近未进行任何启动
  8. UE4官方文档学习笔记材质篇——分层材质
  9. python使用百度翻译api
  10. 硕士论文中期汇报ppt_做一场合格的中期汇报
  11. 如何使用python 给PDF生成目录
  12. C++实现CS模型(计算机网络)
  13. NI Multisim元件库:在Multisim中创建自定义元器件
  14. 普通人学会Python到底具体能做什么呢?
  15. AndroidP HIDL 转载
  16. 计算机管理处理卡,图文详解电脑卡怎么处理
  17. 【干】探索自己的云米冰箱
  18. c语言情书大赛,计算机科学与技术学院“C语言情书大赛”
  19. ubuntu虚拟机下测试摄像头拉流
  20. Windows软件打包工具

热门文章

  1. 03-缓存一致性---提高性能和引入CoreLink CCI-500
  2. 01-Secure Payload Dispatcher (SPD)
  3. printf()详解
  4. 2020-11-24(dll注入的N种搞法)
  5. addr 与 offset 区别
  6. 1、MySQL数据类型简介
  7. 超详细!各种内部排序算法的比较
  8. 3.2 进阶-好多鱼
  9. java中怎样创建多个对象,java中StringBuilder.appent方法创建几个对象
  10. 【注释规约】规范化的第一步,你类和方法的注释,规范嘛?