springCloud微服务之注册中心eureka集成

springCloud是目前非常流行的一款微服务框架,springCloud本身集成了很多优秀的第三方开源框架用来快速创建微服务系统,简便易用,关于springCloud更多的信息可以在百度搜索有更加专业和详细的介绍

本节主要讲解如何集成服务注册组件,eureka是netflix开源的一款服务治理和服务发现的组件,所有的服务都需要被注册才能使用微服务的方式访问和调用

微服务是多个组件的集合体,需要服务发现,配置中心,消息总线,负载均衡,断路器,数据监控等,包括后期采用doker部署微服务,需要的知识面比较多而且比较广,搭建一套微服务系统也并不容易,接下来开始入正题

1、创建一个微服务项目

用idea,新建一个maven项目

输入groupId和Artifactid

项目名和目录名可以采用驼峰法好看点

完成后删除src目录,只留下pom.xml文件

2、添加微服务通用的依赖

在pom.xml添加都会用到的springBoot依赖以及springCloud依赖,以及maven编译插件,然后点idea弹出的导入maven依赖

<?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>
    <packaging>pom</packaging>
    <modules>
        <module>cloud-eureka</module>
    </modules>
    <groupId>com.apgblogs</groupId>
    <artifactId>spring-cloud-study</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.5.RELEASE</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.1</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

3、创建eureka服务注册组件并添加依赖

在项目右键新建一个maven子模块

模块名加入分隔符-,也可以不加,显得好看点

点击完成后,在pom.xml中添加eureka服务端组件,完整pom.xml文件如下,并点击idea弹出的maven依赖导入

<?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">
    <parent>
        <artifactId>spring-cloud-study</artifactId>
        <groupId>com.apgblogs</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.apgblogs</groupId>
    <artifactId>cloud-eureka</artifactId>

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

</project>

4、创建eureka启动类和配置文件

创建一个包并创建启动类,如下图所示

  • @EnableEurekaServer 此注解表示启用服务注册组件,是一个eureka的服务端

创建springBoot配置文件,配置文件中采用两个端口,这样做的目的是实现eureka的高可用,也就是互相注册,如果其中一个服务出问题了,还有另一个服务在运行着不会导致严重的宕机,当然也可以用docker-compose实现高可用,暂时采用这种方式

  • service-url.defaultZone 表示当前服务注册到服务中心的地址,后续的其他服务组件都将采用这种方式注册
  • profile 表示启动时激活那个配置文件
  • --- 此分隔符就是实现分割多个配置参数的作用

5、启动eureka服务注册中心

在idea启动配置里面,复制一个同样的启动配置,填入激活的配置文件名称

出现多个springBoot启动的时候,idea会提示是否使用run dashboard面板,这个面板对于我们同时启动多个组件很方便还可以分组管理

两个同时启动

6、浏览器访问eureka可视化注册中心

在浏览器访问 http://localhost:8801/

会发现服务注册中心已经都出现了,有两个而且是高可用的

7、项目源码,分支为eureka

https://gitee.com/apgblogs/springCloudStudy/tree/eureka/

现在就已经完成了第一个组件,服务注册中心,后续其他的组件都将注册到服务中心,有任何问题可以留言评论

发表评论