当前位置 博文首页 > 一条IT:【springcloud合集】06:Eureka单机版服务注册

    一条IT:【springcloud合集】06:Eureka单机版服务注册

    作者:[db:作者] 时间:2021-08-13 15:48

    一个毕业后差一点进大厂的程序员的进阶之路——既为巩固知识,也为交流学习收藏+关注方便观看后续更新。

    痴迷技术,热爱分享。个人微信公众号【一条IT】,免费领取java/python全套学习资料。

    本期文章正开始开始学习第一个组件,注册中心——Eureka

    目录

    一、 Eureka是什么?

    二、Eureka的工作原理

    三、Eureka环境搭建

    1.新建moudle

    2.改pom

    3.写yml

    4.启动类

    5.测试

    四、payment8001注册进Eureka?

    1.pom添加依赖

    2.改yml

    3.启动类加注解

    4.测试

    五、order80注册进Eureka

    测试如下


    一、 Eureka是什么?

    Eureka 是Spring Cloud 体系中最核心、默认的注册中心组件,他的主要功能就是通过服务注册和服务发现来实现服务治理,管理springcloud中的众多微服务。

    说人话:如果说spring cloud是一个小区,众多微服务是小区里的住户,那么Eureka就是小区物业,谁来谁走都要和物业通报。

    二、Eureka的工作原理

    Eureka提供服务端与客户端,服务端即是Eureka服务注册中心,客户端完成微服务向Eureka服务的注册与发现。服务端和客户端均采用Java语言编写。

    dubbo是阿里开发的微服务框架。

    三、Eureka环境搭建

    同样老五步!!

    1.新建moudle

    不多说:cloud-eureka-server7001

    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>cloud2020</artifactId>
            <groupId>com.li.springcloud</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>cloud-eureka-server7001</artifactId>
    
        <dependencies>
            <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka-server -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.atguigu.springcloud</groupId>
                <artifactId>cloud-api-commons</artifactId>
                <version>${project.version}</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web  -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
            </dependency>
    
        </dependencies>
    </project>
     
    

    观察比之前多的依赖

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

    3.写yml

    注意理解每行的意思。

    server:
      port: 7001
    
    eureka:
      instance:
        hostname: localhost  #eureka服务端的实例名字
      client:
        register-with-eureka: false    #表识不向注册中心注册自己
        fetch-registry: false   #表示自己就是注册中心,职责是维护服务实例,并不需要去检索服务
        service-url:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/    #设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
     
     
    

    4.启动类

    新增注解?@EnableEurekaServer

    package com.li.springcloud;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    @EnableEurekaServer
    @SpringBootApplication
    public class EurekaMain7001 {
        public static void main(String[] args) {
            SpringApplication.run(EurekaMain7001.class,args);
        }
    }
     
     
    

    5.测试

    访问:http://localhost:7001/? 出现以下页面,搭建成功

    四、payment8001注册进Eureka?

    1.pom添加依赖

    注意区分和sever和client

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

    2.改yml

    添加如下,表示payment8001注册进7001

    eureka:
      client:
        register-with-eureka: true
        fetchRegistry: true
        service-url:
        defaultZone: http://localhost:7001/eureka

    3.启动类加注解

    添加注解?@EnableEurekaServer

    4.测试

    启动8001,再次访问http://localhost:7001/?,如下则成功。

    ?

    同时再次次访问数据库,看我们有没有把工程改坏,这里并没没有走Eureka,我们只是注册,并没有调用。

    五、order80注册进Eureka

    与8001无异,自己练习。

    测试如下

    1.访问http://localhost:7001/?

    自我保护机制以后讲。

    2.访问数据库

    依然能查出结果,同样只是注册,没有调用。

    六、总结

    单机版Eureka搭建完成,客户端都注册进注册中心,这样才能实现服务治理,负载均衡等操作。

    下一期搭建集群版Eureka注册中心和集群版payment。

    ?

    关于这篇文章还有什么问题,可以关注微信公众号【一条IT】联系我,我也会经常分享在公众号分享一些实用工具和学习资源,都是免费的。

    ?

    ?

    ?

    cs