返回介绍

8.2 使用发现服务

发布于 2025-04-26 13:26:35 字数 2138 浏览 0 评论 0 收藏

在分布式系统中,可能存在很多应用和服务,而各个服务都独立自主地管理自身的数据。在服务与服务之间,有时候可能需要互相共享一些数据,传统的做法是使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。