- 前言
- 第一部分 基础应用开发
- 第 1 章 Spring Boot 入门
- 第 2 章 在 Spring Boot 中使用数据库
- 第 3 章 Spring Boot 界面设计
- 第 4 章 提高数据库访问性能
- 第 5 章 Spring Boot 安全设计
- 第二部分 分布式应用开发
- 第 6 章 Spring Boot SSO
- 第 7 章 使用分布式文件系统
- 第 8 章 云应用开发
- 第 9 章 构建高性能的服务平台
- 第三部分 核心技术源代码分析
- 第 10 章 Spring Boot 自动配置实现原理
- 第 11 章 Spring Boot 数据访问实现原理
- 第 12 章 微服务核心技术实现原理
- 附录 A 安装 Neo4j
- 附录 B 安装 MongoDB
- 附录 C 安装 Redis
- 附录 D 安装 RabbitMQ
- 结束语
8.2 使用发现服务
在分布式系统中,可能存在很多应用和服务,而各个服务都独立自主地管理自身的数据。在服务与服务之间,有时候可能需要互相共享一些数据,传统的做法是使用 WebService,或者 SOAP 的方式,由服务提供者一方对外暴露接口,然后由服务消费者一方对接口进行访问,从而达到数据共享的目的。但是不管使用上面哪种方式,开发者都必须编写一些接口程序,可能还需要使用复杂的配置来实现。而使用 Spring Cloud,通过发现服务来实现服务之间的数据共享是轻而易举的。
8.2.1 创建发现服务器
要使用发现服务的功能,需要创建一个工程,用来构建一个发现服务器,在工程中需要引用如代码清单 8-10 所示的 Maven 依赖配置。
代码清单 8-10 发现服务器的依赖配置
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency>
然后创建一个简单主程序,并在主程序中增加注解 @EnableEurekaServer,即启用发现服务器的功能,如代码清单 8-11 所示。
代码清单 8-11 发现服务器主程序
@SpringBootApplication @EnableEurekaServer public class DiscoveryApplication { public static void main(String[] args) { SpringApplication.run(DiscoveryApplication.class, args); } }
8.2.2 使用发现服务的客户端配置
1)使用发现服务器的客户端,首先需要在工程中引用如代码清单 8-12 所示的 Maven 依赖配置,用来使用发现服务器提供的功能。
代码清单 8-12 使用发现服务器的客户端依赖配置
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency>
2)在工程的主程序中,增加一个注解 @EnableDiscoveryClient,以启用发现服务的客户端功能。
3)在工程的配置文件中配置发现服务器的地址和端口,如代码清单 8-13 所示。假设发现服务器在本地运行,并且端口为 8761。
代码清单 8-13 使用发现服务的客户端配置
eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ instance: preferIpAddress: true
4)在 bookstrap.yml 配置文件中,配置应用的名称(应用名称的配置与使用配置管理服务器的配置相同,可以参考代码清单 8-5),代码如下。这个名称就是一个应用在发现服务器中的一个唯一标识,必须保证它的唯一性。
spring: application: name: web
8.2.3 发现服务器测试
要测试发现服务器,首先启动实例工程中的 discovery 项目,然后启动 config、data、web 等项目,如果各个服务器和客户端都运行了,在浏览器中打开地址 http://localhost:8761 ,即可打开发现服务器的控制台。
现在就可以看到如图 8-2 所示的情况,这里可以看到已经注册的 CONFIG、DATA、WEB 三个服务,分别对应实例工程的配置服务、数据服务、Web 服务三个模块的实例。
图 8-2 发现服务器控制台
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论