17

同时运行 Config Server 和 Eureka Server 时推荐的配置是什么?Config Server 应该是 Eureka 的客户端吗?或者 Eureka 是否应该依赖 Config Server 属性进行配置?还是两者都可以?

4

4 回答 4

9

使用 Eureka 和 Config Server 的默认方式是使用 Config First bootstrap。本质上,您使 eureka 服务器成为配置服务器的客户端,但您没有使配置服务器成为尤里卡的客户端。

正如 Spring Cloud 的创始人 David Syer 在这些(和这个)问题上所说,您必须将配置服务器与前端负载均衡器一起使用,因此单个 URL 已经是高可用的。

我也是 Spring Cloud 的新手,但我同意他的观点,因为 Eureka 是一个服务发现,恕我直言,它应该只在它的问题域上运行。对于向 Config 服务器询问其配置的 Eureka 服务器来说,这将是一个复杂的逻辑。我无法想象如果配置服务器也是 Eureka 的服务器来获取其 defaultZone 列表,那么 Eureka 服务器将如何知道要获取哪个配置服务器。

对我来说,分离 Config Server 的 HA 会简单得多。

于 2016-11-01T04:42:17.880 回答
6

基于@Mideel 的回答

Eureka 和 Config Client 配置(需要Bootstrap):

# bootstrap.yml
cloud:
    config:
      discovery:
        enabled: true # This is required
        service-id: configserver # Config Server's eureka registry name
      enabled: true # This is default true already

配置服务器配置:

spring:
  application:
    name: configserver # Needs to match client configuration

使用注释注册配置服务器@EnableEurekaClient(它应该自动配置为已经注册到 Eureka)

于 2020-02-28T19:32:17.410 回答
5

Spring Cloud Config 服务为其他各种微服务提供配置信息,Eureka 服务就是其中之一。

每个应用程序/微服务通过 bootstrap.properties/.yml 指向其配置(来自 Config 服务),该配置在该应用程序的父上下文中加载,然后应用程序根据其“识别”它是一个发现/Eureka 客户端带注释的主类。这段文档提供了有关该过程的更多详细信息。

干杯,马克

于 2016-03-22T15:22:23.573 回答
3

EDIT1:我认为这是一个错误的答案,请参阅回复

如果你使用 Spring Boot:

我使用 Spring Microservices in Action 作为我的指南,并基于那里的源代码示例,我们将配置服务器作为带有@EnableEurekaClient注释的 Eureka 客户端,在配置服务器 application.yml 中,我们需要添加此属性:

spring: 
  cloud: 
    config: 
      discovery: 
        enabled: true

在另一个使用此配置服务器的 Eureka 客户端中,您需要将此属性添加到 application.yml :

spring: 
  cloud: 
    config: 
      enabled: true

就是这样,只需正常设置配置服务器,我认为在幕后来自 spring cloud 的配置库将使用 Eureka 处理其余部分。

于 2018-08-01T03:40:06.847 回答