服务注册:如何构建单点 Eureka 服务器

Posted JAVA每天小记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务注册:如何构建单点 Eureka 服务器相关的知识,希望对你有一定的参考价值。

上一篇文章,我们全面介绍了服务治理的解决方案,引出了 Spring Cloud Netflix Eureka 组件。Eureka 分为服务器端组件和客户端组件,今天我们将讨论 Eureka 服务器的构建方式及其实现原理。

基于 Eureka 构建注册中心

基于 Eureka 构建服务注册中心涉及两大部分内容,首先我们将给出构建单个 Eureka 服务器的方法。但是,Eureka 服务器不能保证高可用,因此在生产环境中,我们一般都还需要构建 Eureka 服务器集群

今天就介绍如何构建单点Eureka服务器

我们将创建一个新的 Maven 工程并命名为 eureka-server。eureka-server 是一个 Spring Boot 项目。同时我们引入了 spring-cloud-starter-eureka-server 依赖,该依赖是 Spring Cloud 中实现 Spring Cloud Netflix Eureka 功能的主体 jar 包:

<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

引入 Maven 依赖之后就可以创建 Spring Boot 的启动类,在示例代码中,我们把该启动类命名为 EurekaServerApplication,代码如下所示。

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
 
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}

请注意,在上面的代码中,我们在启动类上加了一个 @EnableEurekaServer 注解。在 Spring Cloud 中,包含 @EnableEurekaServer 注解的服务意味着就是一个 Eureka 服务器组件。

我们运行这个 EurekaServerApplication 类访问http://localhost:8761/,如果得到 Eureka 服务监控页面,则意味着 Eureka 服务器已经启动成功。

同时,Eureka 也为开发人员提供了一系列的配置项。这些配置项可以分成三大类,一类用于控制 Eureka 服务器端行为,以 eureka.server 开头;一类则是从客户端角度出发考虑配置需求,以 eureka.client 开头;而最后一类则关注于注册到 Eureka 的服务实例本身,以 eureka.instance 开头。请注意,Eureka 除了充当服务器端组件之外,实际上也可以作为客户端注册到 Eureka 本身,这时候它使用的就是客户端配置项。

Eureka 的配置项很多,我们无意一一进行展开。在日常开发过程中,使用的最多的还是客户端相关的配置,所以这里以客户端配置为例。现在,我们尝试在 eureka-server 工程的 application.yml 文件中添加了如下配置信息。

server:
  port: 8761
 eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://localhost:8761


以上是关于服务注册:如何构建单点 Eureka 服务器的主要内容,如果未能解决你的问题,请参考以下文章

服务注册与发现Eureka- 单机Eureka构建步骤

SpringCloud 注册中心 Eureka 集群是怎么保持数据一致的?

SpringCloud-2.0(5. 服务注册发现 - Eureka)

Eureka的高可用

微服务- eurka构建与使用

服务治理:Spring Cloud Eureka