Spring Cloud 学习之旅 --- 服务的消费
来源:互联网 发布:淘宝助理菜鸟打印组件 编辑:程序博客网 时间:2024/06/05 23:52
本文部分摘录自翟永超的个人博客
自从上篇博文到近期,工作较为繁忙,一直没时间更新博文。
在 Spring Cloud 学习之旅 — 服务注册与发现(二) 我们介绍了创建一个服务提供者到注册中心中,这一节我们讲讲如何使用消费者调用注册到注册中心的服务提供者提供的服务。
创建“服务消费者”
我们新建一个Maven工程,并在 pom.xml 中引入需要的依赖内容
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.4.3.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR4</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement><dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> </dependency></dependencies>
在此例子中,我们采用spring cloud的ribbon组件作为我们的负载均衡器和服务的调用。
在 src\main\java
下创建自己的包,并创建一个 ConsumerApplication
类,用作整个 Spring Boot 应用程序的入口。紧接着继续创建一个 ConsumerController
类,用于暴露Rest接口供外部访问。效果如下图:
由于我们也需要将消费者注册到注册中心中,所以我们需要允许应用被外部发现,给 ConsumerApplication
类添加上 @EnableDiscoveryClient
和 @SpringBootApplication
注解。
作为消费者,由于服务提供者往往是多实例的,我们需要开启客户端的负载均衡配置。Ribbon组件为我们提供了 RestTemplate
类和 @LoadBalanced
注解。其中 RestTemplate
类是我们调用服务的核心。使用 @LoadBalanced
注解后,应用将同时具有客户端的负载均衡能力。
紧接着要启动这个 SpringBoot 应用,给 main 函数添加上启动代码。效果如图 :
编写消费者
我们通过 Ribbon组件的 RestTemplate
对象可以调用在同个注册中心注册的服务。
我们创建一个 /consumer
对外接口,并在该接口中实现对上节的 simple-service 进行调用。效果如图:
我们在完成了服务消费的实现之后,再继续对 application.properties(本文中采用的是yml的配置文件) 做一些配置工作,具体如下:
注:注册中心使用的是集群配置的eureka注册中心,后面会有额外一篇博文讲到
启动
按顺序启动注册中心和服务提供者后,我们运行本项目。
启动完成后进入到eureka注册中心的界面,查看消费者的注册情况。
由图可以看出,当消费者注册成功后,我们可以看到这个应用已经注册到了eureka注册中心中。
我们访问刚刚写的对外接口 /consumer
,得到的结果如图:
至此说明访问成功,也说明我们调用服务提供者的服务调用成功了。
回忆负载均衡
还记得我们刚才说到的 @LoadBalanced
注解吗?我们好像没有看到什么效果可以证明我们已经使用到了负载均衡哦。
其实很好验证,这也是为什么我在上面的注册中心截图中,启动了两个服务提供者实例的原因。
我们不需要关闭消费者,此时关掉一个服务提供者,刷新界面就可以看到结果。
当关闭其中一个服务提供者后,不断地刷新将会看到上述两图轮流出现,也印证了我们的负载均衡器是生效的,并且采用的是轮询的机制在进行负载均衡。
那么,看完这篇博文的你,赶紧动手试一试吧^_^
- Spring Cloud 学习之旅 --- 服务的消费
- spring cloud 学习笔记-消费服务
- Spring Cloud中服务的发现与消费
- Spring Cloud(三):服务消费Ribbon
- Spring Cloud Eureka-服务注册、消费、断路
- 《spring cloud微服务实战》读书笔记——Spring Cloud Eureka(四)服务的发现和消费
- Spring Cloud-使用feign来消费Restful服务
- Spring Cloud构建微服务架构:服务消费(基础)
- Spring Cloud构建微服务架构:服务消费(Ribbon)
- Spring Cloud构建微服务架构:服务消费(Feign)
- 2.Spring Cloud:服务消费(基础)【Dalston版】
- 3.Spring Cloud:服务消费(Ribbon)【Dalston版】
- 4.Spring Cloud:服务消费(Feign)【Dalston版】
- Spring Cloud构建微服务架构服务消费基础
- Spring Cloud构建微服务架构—服务消费基础
- Spring Cloud构建微服务架构—服务消费Ribbon
- Spring Cloud构建微服务架构—服务消费Feign
- Spring Cloud构建微服务架构:服务消费(基础)
- python学习笔记1 数据类型
- 记一次SQL踩坑之旅
- PAT(乙级)1007
- 食物链_KEY
- ASP.NET使用CodeFirst更新mysql数据库是出错的解决方案
- Spring Cloud 学习之旅 --- 服务的消费
- webgate 整体技术说明 + 代码目录分析
- mysql并行复制降低主从同步延时的思路与启示
- while循环嵌套练习
- eclipse maven 搭建【SSM】项目
- 【树形dp+前向星】Godfather POJ
- NFC扫卡各种功能
- js不是两位数的数字,自动加0
- 基于zookeeper实现分布式锁