【微服务笔记01】微服务组件之Eureka注册中心的介绍及其基础环境的搭建

有目标就不怕路远。年轻人.无论你现在身在何方.重要的是你将要向何处去。只有明确的目标才能助你成功。没有目标的航船.任何方向的风对他来说都是逆风。因此,再遥远的旅程,只要有目标.就不怕路远。没有目标,哪来的劲头?一车尔尼雷夫斯基

导读:本篇文章讲解 【微服务笔记01】微服务组件之Eureka注册中心的介绍及其基础环境的搭建,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

这篇文章,主要介绍微服务中的注册中心Eureka及其基础环境的搭建【源代码地址】。

目录

一、Eureka注册中心

1.1、什么是注册中心

1.2、注册中心原理

二、搭建Eureka注册中心环境

2.1、创建父工程,引入微服务依赖

2.2、创建Eureka服务端工程

(1)引入Eureka服务端依赖

(2)创建启动类

(3)添加配置文件

(4)启动工程测试

2.3、创建Eureka客户端工程

(1)引入Eureka客户端依赖

(2)创建启动类

(3)添加配置文件

(4)启动工程测试


一、Eureka注册中心

1.1、什么是注册中心

  • 微服务架构中,会有很多的服务,每个服务都有对应的IP地址和端口,以及相关的服务信息,这里就存在一个问题???
    • 就是服务A调用服务B的时候,怎么知道B的IP地址和端口信息呢???
    • 可以有多种解决方案,比如:将服务A的IP地址和端口,直接在服务B配置文件中写死,这样,调用服务的时候,通过配置文件就可以获取到IP和端口。
    • 上面这种方式不太灵活,如果服务A部署到另外一台机器上面,那么就需要修改服务B中的配置文件,这显然是不可取的方式。
  • 为了解决上面这种情况,于是就出现了注册中心。
    • 基本思想:单独一个服务出来,这个服务专门用于收集和保存所有微服务的IP地址和端口相关信息。
    • 如果某个服务A需要调用服务B,则首先到注册中心里面查询服务B的地址信息,拿到地址信息后,在进行服务的调用。
    • 这种模式下,无论服务A部署到哪一台机器上面,都不会影响到服务B,因为服务B都是从注册中心获取服务信息,它不用管注册中心如何收集和保存的服务B地址信息。

注册中心,可以理解成为是一个微服务之间的一个电话簿,其中某个微服务需要调用另一个微服务的时候,只需要从电话簿里面获取到指定微服务的IP等信息,然后通过Restful的方式进行服务的消费即可。

常见的注册中心有如下几种:

  • Eureka。
  • Consul。
  • Zookeeper。
  • Dubbo。
  • Nacos。

注册中心的核心功能主要是:服务注册和服务发现。

1.2、注册中心原理

Eureka注册中心,它是采用【C/S】模式实现的一种架构,它由两部分组成,分别是:Eureka服务端、Eureka客户端。

  • Eureka服务端:服务端用于接收和保存客户端注册的信息,即:服务注册。
  • Eureka客户端:客户端用于从Eureka服务端获取其他微服务的相关信息,和eureka服务端保持通信,即:服务发现。

Eureka注册中心大致运行原理如下图所示:

【微服务笔记01】微服务组件之Eureka注册中心的介绍及其基础环境的搭建

上图就是注册中心大致的一个过程,几乎所有的注册中心都是采用这种模式的,基本步骤如下。

  • 首先,搭建一个Eureka服务端作为注册中心。
  • 当服务提供者、服务消费者启动的时候,会将自身的地址信息发送给eureka注册中心进行保存。
  • 服务提供者、服务消费者会从注册中心获取所有可用服务列表。
  • 通过可用服务列表,服务消费者根据相关地址,通过HTTP或者消息组件调用服务提供者的接口进行服务消费。

二、搭建Eureka注册中心环境

2.1、创建父工程,引入微服务依赖

因为微服务是基于SpringBoot框架进行开发的,所以我们需要引入SpringBoot的依赖,并且还需要引入SpringCloud的依赖。

  • 在父工程里面,引入【SpringBoot】和【SpringCloud】两个依赖。
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.gitcode.eureka</groupId>
    <artifactId>eureka-demo</artifactId>
    <packaging>pom</packaging>
    <version>1.0.0</version>
    <modules>
        <module>eureka-server</module>
    </modules>

    <name>eureka-demo</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <!-- 引入SpringBoot依赖 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencyManagement>
        <!-- 使用 dependencyManagement 依赖管理,统一管理组件的版本 -->
        <dependencies>
            <!-- 引入 SpringCloud 微服务依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR12</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>
  • 注意:SpringBoot的版本和SpringCloud的版本是有对应关系的,不同的SpringBoot版本需要使用不同的SpringCloud版本,可以从下面这个地址查找对应的微服务版本。

SpringBoot和SpringCloud版本对应关系】,这个地址中描述了版本的对应关系,如下图所示:

【微服务笔记01】微服务组件之Eureka注册中心的介绍及其基础环境的搭建

2.2、创建Eureka服务端工程

(1)引入Eureka服务端依赖

  • 创建【eureka-server】子工程,在pom文件里面引入【spring-cloud-starter-netflix-eureka-server】依赖。
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.gitcode.eureka</groupId>
        <artifactId>eureka-demo</artifactId>
        <version>1.0.0</version>
    </parent>

    <artifactId>eureka-server</artifactId>
    <version>1.0.0</version>

    <name>eureka-server</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!-- 引入 Web 工程 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 引入 eureka 服务端依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
</project>

(2)创建启动类

  • 创建工程启动类,并且启动类上面添加【@EnabledEurekaServer】注解,开启Eureka服务端功能。
package com.gitcode.eureka;

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

/**
 * @version 1.0.0
 * @Date: 2022/12/30 11:05
 * @Copyright (C) ZhuYouBin
 * @Description:
 */
// 开启 Eureka 服务端
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApp {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApp.class, args);
    }
}

(3)添加配置文件

  • 在【application.yml】配置文件中,添加eureka相关的配置信息。
server:
  port: 8761
spring:
  application:
    name: eureka-server # 微服务工程应用名称

# eureka配置
eureka:
  instance:
    hostname: ${spring.application.name}
  client:
    register-with-eureka: false # 是否将自己注册到eureka注册中心
    fetch-registry: false # 是否从eureka注册中心获取注册信息

(4)启动工程测试

结果上面三个步骤,eureka服务端工程已经创建完成了,下面就是启动工程,浏览器访问【http://localhost:8761/】即可看到注册中心的界面,如下图:

【微服务笔记01】微服务组件之Eureka注册中心的介绍及其基础环境的搭建

2.3、创建Eureka客户端工程

(1)引入Eureka客户端依赖

  • 创建【eureka-client】子工程,在pom文件里面引入【spring-cloud-starter-netflix-eureka-client】依赖。
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.gitcode.eureka</groupId>
        <artifactId>eureka-demo</artifactId>
        <version>1.0.0</version>
    </parent>

    <artifactId>eureka-client</artifactId>
    <version>1.0.0</version>

    <name>eureka-client</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!-- 引入 Web 工程 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 引入 eureka 客户端依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>
</project>

(2)创建启动类

  • 创建工程启动类,并且启动类上面添加【@EnabledEurekaClient】注解,开启Eureka客户端的功能。
package com.gitcode.eureka;

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

/**
 * @version 1.0.0
 * @Date: 2022/12/30 11:05
 * @Copyright (C) ZhuYouBin
 * @Description:
 */
// 开启 Eureka 客户端
@EnableEurekaClient
@SpringBootApplication
public class EurekaClientApp {
    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApp.class, args);
    }
}

(3)添加配置文件

server:
  port: 9527
spring:
  application:
    name: eureka-client # 微服务工程应用名称

# eureka配置
eureka:
  instance:
    hostname: ${spring.application.name}
  client:
    register-with-eureka: true # 是否将自己注册到eureka注册中心
    fetch-registry: true # 是否从eureka注册中心获取注册信息
    service-url:
      defaultZone: http://localhost:8761/eureka/ # eureka服务端的地址

(4)启动工程测试

启动eureka服务端工程和eureka客户端工程,然后浏览器访问【http://localhost:8761/】注册中心,可以在eureka注册中心界面看见一个客户端信息。

【微服务笔记01】微服务组件之Eureka注册中心的介绍及其基础环境的搭建

到此,Eureka注册中心的环境搭建完成了。

综上,这篇文章结束了,主要介绍微服务中的注册中心Eureka及其基础环境的搭建。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134546.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!