Spring Cloud 入门 (四): 分布式环境下自动发现配置服务

本贴最后更新于 2245 天前,其中的信息可能已经时移世改

通过配置服务器 Config Server 获取到了我们配置的 hello 信息“hello world”. 但自己的配置文件中必须配置 config server 的 URL(http://localhost:8888), 如果把 config server 搬到另外一个独立 IP 上, 那么作为一个 client 的 hello world 应用必须修改自己的 bootstrap.yml 中的 config server 的 URL 地址,这明显是不够方便的。

既然 config server 已经注册到了 eureka 服务中心,能否让服务中心自动帮 hello world 应用找到它需要的 config server 呢? 答案是肯定的。我们的 hello world 应用只需要提供它需要的配置所在在的 config server 的名字就可以了, 在前面例子中,配置服务的名字就是“config-server”。那我们现在就把之前的服务和应用稍作修改, 来达到自动发现服务的方案。下图是 Spring Cloud 提供的服务发现机制。Config-server 是其中的 Service Provider, Config-client 是 Service Consumer, 它们都注册到服务中心 Eureka Server。

imagepng

1. 将 config-server 注册到服务中心

config-server 本身就是一个 Spring Boot 应用, 可以直接参考 Spring Cloud 入门(一): 服务注册, 将 config-server 注册到 eureka server 中。访问 http://localhost:8761, 可以看到我们的 config-server 已经注册。

imagepng

2. 修改 hello world 应用的配置

1).同样,需要将 Hello 我让你的应用注册到 eureka 服务中心, 配置方法同前面一样。

2).修改配置文件,将 config-server 的 URL 硬编码机制改成,通过服务中心根据名字自动发现机制, 修改 bootstrap.yml

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
spring:
  application:
    name: config-client
  cloud:
    config:
      label: master
      profile: dev
#      uri: http://localhost:8888/
      discovery:
         enabled: true
         serviceId: config-server
management:
  security:
    enabled: false
server:
  port: 8881

我们注释掉了硬编码的 config-server 的 URL 配置, 取而代之的是服务注册中心的地址 http://localhost:8761/eureka/以及配置服务的名字“config-server”, 同时打开自动发现机制 discovery.enable = true. 我们在运行一下 hello world 应用, 可以发现, GIT 里面的内容依然可以访问。此时我们的 hello world 应用已经完全不知道配置服务的地址,也不知道配置的内容, 所有这些都通过服务注册中心自动发现。

imagepng

3. 微服务化

当服务很多时,都需要同时从配置中心读取文件的时候,这时我们可以考虑将配置中心做成一个微服务,并且将其集群化,从而达到高可用,架构图如下:
imagepng

  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    943 引用 • 1460 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...