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

痴迷技术,热爱分享。个人微信公众号【一条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】联系我,我也会经常分享在公众号分享一些实用工具和学习资源,都是免费的。

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐