zoukankan      html  css  js  c++  java
  • F版本SpringCloud 4—Eureka注册中心开发和客户端开发

    源码地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials

    前言

    通过前三篇文章,用大白话介绍了微服务和SpringCloud以及服务治理相关的概念,从这篇开始SpringCloud代码的开发。

    SpringCloud 项目环境搭建

    SpringCloud所有的demo都会采用 多模块开发 的方式,通过父项目约束整个项目所有Module的版本,如果你不知道什么是 多模块开发,请阅读我的文章:SpringBoot 多模块开发 https://mp.weixin.qq.com/s/CDWnG0wr6hk6TvDYIELIaQ

    创建父项目「约束版本」

    父项目最大的作用就是约束版本,所有的步骤请严格按照教程进行,会有全面的截图

    1.在IDEA中创建一个maven项目(project)

    2.修改pom文件

    SpringCloud版本选择:Finchley.SR2,SpringBoot版本选择:2.0.3.RELEASE

    pom文件如下:

    <?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>
    
    
        <!--Finchley 版本的SpringCloud 依赖2.0.X的SpringBoot -->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.3.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
    
        <groupId>com.lby</groupId>
        <artifactId>cloud-demo-20f</artifactId>
        <version>1.0-SNAPSHOT</version>
        <!--    父级项目 使用pom-->
        <packaging>pom</packaging>
    
        <properties>
            <java.version>1.8</java.version>
            <!--        定义SpringCloud的版本号-->
            <spring-cloud.version>Finchley.SR2</spring-cloud.version>
        </properties>
    
        <!--    约束整个项目的SpringCloud版本-->
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <!--    插件配置-->
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    Eureka注册中心开发「单机版」

    1.基于Project创建一个新的Module

    至于骨架,不选择任何骨架,maven还是Spring Initializr主要看个人习惯,我选择maven。

    2.修改eureka-server-8801项目的pom文件

    观察pom文件可以发现,eureka-server-8801项目已经自动继承了父项目

    注册中心的完整pom配置:

    <?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">
    <!--    通过maven方式创建的项目,可以看到已经自动的继承了父项目,所以我们
        只需要配置依赖就可以了
    -->
        <parent>
            <artifactId>cloud-demo-20f</artifactId>
            <groupId>com.lby</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>eureka-server-8801</artifactId>
    
        <dependencies>
    <!--        导入注册中心的依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
        </dependencies>
    
    </project>
    

    3.创建SpringBoot的启动类,添加注解

    代码如下:

    package com.lby;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    /**
     * @author luxiaoyang
     * @create 2020-03-29-16:16
     * @SpringBootApplication 声明当前类为SpringBoot的启动类
     * @EnableEurekaServer 声明当前项目为注册中心
     */
    @SpringBootApplication
    @EnableEurekaServer
    public class EurekaServer8801 {
        public static void main(String[] args) {
            SpringApplication.run(EurekaServer8801.class,args);
        }
    }
    
    

    4.创建配置文件,写入注册中心的配置

    server:
      port: 8801
    
    eureka:
      client:
        #    在默认设置下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为
        #     因为当前服务就是注册中心 不需要向任何人注册
        #    eureka.client. register-with-eureka:由于该应用为注册中心,所以设置为false,代表不向注册中心注册自己
        registerWithEureka: false
        #    eureka. client . fetch-registry:由于注册中心的职责就是维护服务实例,它并不需要去检索服务,所以也设置为false。
        #      不主动发现别人
        fetchRegistry: false
        #    声明注册中心的地址
        serviceUrl:
          defaultZone: http://localhost:8801/eureka/
          
    

    通过以上四步 就完成注册中心的搭建

    5.启动项目,访问http://localhost:8801可以访问注册中心的管理页面

    No application available 目前没有客户端注册到注册中心

    Eureka客户端开发

    不用关闭注册中心,接下来创建一个客户端,让客户端注册到注册中心上

    创建客户端的步骤和注册中心类似

    1. 创建项目结构
    2. 修改pom
    3. 修改启动类
    4. 修改配置文件

    1.创建客户端项目 eureka-client-8803

    2.修改pom文件,导入依赖

    <?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>cloud-demo-20f</artifactId>
            <groupId>com.lby</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>eureka-client-8803</artifactId>
    
        <dependencies>
            <!--        Eureka 客户端的依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>
    
            <!--        web的依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <!--        测试的依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </project>
    

    3.创建启动类

    package com.lby;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    
    /**
     * @EnableDiscoveryClient 声明当前项目为一个 Eureka客户端 可以被发现的客户端
     * @EnableEurekaClient 声明当前项目为一个 Eureka客户端
     *
     * 区别:
     * @EnableEurekaClient 只能向 Eureka 注册中心注册
     * @EnableDiscoveryClient 除了向 Eureka 注册中心注册 可以向其他的注册中心注册 zookeeper consul
     */
    @SpringBootApplication
    @EnableEurekaClient
    public class EurekaClient8803 {
        public static void main(String[] args) {
            SpringApplication.run(EurekaClient8803.class,args);
        }
    }
    
    

    4.创建并修改配置文件

    通过上面的四步,就完成一个Eureka 客户端的搭建

    5.启动项目 观察注册中心的监控页面 看一看有没有服务注册到注册中心

    确保注册中心和客户端都启动了

    打开注册中心的网址http://localhost:8803 可以看到

    通过以上步骤就完成了最基本的注册中心和客户端的开发

    总结

    源码地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials

    通过SpringCloud做微服务开发,不管是注册中心,还是客户端,还是网关等,SpringCloud几乎所有的组件都是四板斧:

    1. 导入依赖
    2. 启动类上加注解
    3. 写配置文件
    4. 直接使用

    恭喜你完成了本章的学习,为你鼓掌!如果本文对你有帮助,请帮忙点赞,评论,转发,这对作者很重要,谢谢。

    要掌握SpringCloud更多的用法,请持续关注本系列教程。

    求关注,求点赞,求转发

    欢迎关注本人公众号:鹿老师的Java笔记,将在长期更新Java技术图文教程和视频教程,Java学习经验,Java面试经验以及Java实战开发经验。

  • 相关阅读:
    A. Two Semiknights Meet DFS
    Dummy Guy 几何
    Electrification Plan MST
    Parallel and Perpendicular 几何,数学
    A. Soroban 暴力+水题
    B. Fence 前缀和 水题
    Max Sum http://acm.hdu.edu.cn/showproblem.php?pid=1003
    亲和串 http://acm.hdu.edu.cn/showproblem.php?pid=2203
    N! http://acm.hdu.edu.cn/showproblem.php?pid=1042
    Let the Balloon Rise http://acm.hdu.edu.cn/showproblem.php?pid=1004
  • 原文地址:https://www.cnblogs.com/bingyang-py/p/12593488.html
Copyright © 2011-2022 走看看