Spring Cloud 框架 -- Eureka 介绍以及搭建

Eureka 介绍

什么是 Eureka?

Eureka (2018年下半年停更) 是 Netflix 公司提供的一款服务注册中心,Eureka 基于 REST 来实现服务的注册与发现。

Eureka 也是 Spring Cloud 五大神兽之一,五大神兽分别如下:

  • 注册中心——Netflix Eureka

  • 客服端负载均衡——Netflix Ribbon

  • 断路器——Netflix Hystrix

  • 服务网关——Netflix Zuul

  • 分布式配置——Spring Cloud Config

曾经,Eureka 是 Spring Cloud 中最重要的核心组件之一,Spring Cloud 中封装了 Eureka,在 Eureka 的基础上,优化了一些配置,然后提供了可视化的页面,可以方便的查看服务的注册情况以及服务注册中心集群的运行情况。

Eureka 由两部分:服务端和客户端,服务端就是注册中心,用来接收其他服务的注册,客户端则是一个 java 客户端,用来注册,并可以实现负载均衡等功能。

从图中,我们可以看出,Eureka 中,有三个角色:

  • Eureka Server:注册中心

  • Eureka Provider:服务提供者

  • Eureka Consumer:服务消费者

什么是注册中心

Eureka 是 Spring Cloud 中的注册中心,类似于 Dubbo 中的 Zookeeper。

那么到底什么是注册中心,为什么需要注册中心?

在传统的单体应用中,所有的业务都集中在一个项目中,当用户从浏览器发起请求时,直接由前端发送请求给后端,后端调用业务逻辑,给前端请求做出响应,完成一次调用。整个调用过程是一条直线,不需要服务之间的中转,所以没有必要引入注册中心。

随着公司项目越来越大,我们会将系统进行拆分,例如一个电商系统,可以拆分为订单模块、物流模块、支付模块等。这样,当用户发起请求时,就需要各个模块之间进行协调,这样不可避免的要进行模块之间的调用。

模块之间的调用也会变得越来越复杂,而且模块之间还存在强耦合。

为了解决服务之间的耦合,注册中心应运而生。

Eureka 的搭建

1、创建普通 Spring Boot 项目,并添加 Eureka 的依赖。

如下图所示:

2、在启动类上添加注解 @EnableEurekaServer

注解 @EnableEurekaServer 表示开启 Eureka 的功能

package com.example.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer // 表示开启 Eureka 的功能
public class EurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }

}

3、在 application.properties 文件中添加配置信息

如下图所示:

# 为当前服务指定一个名字
spring.application.name = eureka
# 设置端口号
server.port = 1111
# 默认情况下,Eureka Server 也是一个微服务,所以当它还是一个注册中心的时候,它会有两层身份:1.注册中心,2.普通微服务,
# 即它会自己把自己注册到注册中心
# register-with-eureka 设置为 false ,表示当前项目不要注册到注册中心。
eureka.client.register-with-eureka = false
# 表示是否从 Eureka Server 上获取注册信息
eureka.client.fetch-registry=false

4、启动项目

如果启动项目时,报错Error processing condition on org.springframework.boot.autoconfigure.freemarker.FreeMarkerServletWeb

解决办法参考文章:https://www.cnblogs.com/youcoding/p/13251920.html

打开浏览器,访问 http://localhost:1111,效果如下:

这就是 Eureka 的后台控制界面。

其中:

  • System Status:表示系统状态,如系统启动时间等

  • DS Replicas:表示集群环境下的副本,即当前服务从哪里同步数据

  • Instances currently registered with Eureka:当前已注册的服务

  • General Info:系统运行环境,如 CPU、内存等

  • Instance Info:当前服务的基本信息,如 IP 地址等。

每天学习一点点,每天进步一点点。

posted @ 2020-07-05 10:39  爱吃西瓜的番茄酱  阅读(478)  评论(0编辑  收藏  举报