【SpringCloud】服务注册中心——Eureka

文章目录

    • 前言
    • 1、Eureka基础知识
      • 1.1、什么是服务治理
      • 1.2、什么是服务注册
      • 1.3、Eureka两大组件
    • 2、单机Eureka构建步骤
      • 2.1、服务注册中心EurekaServer
      • 2.2、服务提供者EurekaClient
      • 2.3、服务消费者EurekaClient
    • 3、集群Eureka构建步骤
      • 3.1、Eureka集群原理
      • 3.2、EurekaServer集群环境构建步骤
        • 3.2.1、创建两个EurekaServer
        • 3.2.2、修改映射配置
        • 3.2.3、为两个注册中心编写yml
        • 3.2.4、将8001和80两个微服务注册到集群
        • 3.2.5、测试

前言

该技术博客是关于尚硅谷周阳老师的SpringCloud课程笔记总结,方便自己同时,希望能为大家带来帮助!

1、Eureka基础知识

1.1、什么是服务治理

【SpringCloud】服务注册中心——Eureka_第1张图片

1.2、什么是服务注册

在这里插入图片描述

1.3、Eureka两大组件

【SpringCloud】服务注册中心——Eureka_第2张图片

2、单机Eureka构建步骤

2.1、服务注册中心EurekaServer

  1. 首先创建一个Maven模块,名为cloud-eureka-server7001
  2. 编写pom.xml
<dependencies>
    
    <dependency>
        <groupId>org.springframework.cloudgroupId>
        <artifactId>spring-cloud-starter-netflix-eureka-serverartifactId>
    dependency>

    <dependency>
        <groupId>com.atguigu.springcloudgroupId>
        <artifactId>cloud-api-commonsartifactId>
        <version>${project.version}version>
    dependency>

    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>

    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-actuatorartifactId>
    dependency>

    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-devtoolsartifactId>
        <scope>runtimescope>
        <optional>trueoptional>
    dependency>

    
    <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
    dependency>

    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-testartifactId>
        <scope>testscope>
    dependency>
    
    <dependency>
        <groupId>junitgroupId>
        <artifactId>junitartifactId>
    dependency>
dependencies>
  1. 编写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交互的地址查询服务和注册服务都需要依赖这个地址
  1. 编写主启动类
//该注解表示服务注册中心
@EnableEurekaServer
@SpringBootApplication
public class EurekaMain7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaMain7001.class,args);
    }
}
  1. 测试,打开浏览器输入http://localhost:7001/,就能看到服务注册中心页面

2.2、服务提供者EurekaClient

  1. 首先创建一个Maven模块,名为cloud-provider-payment8001
  2. 编写pom.xml
<dependencies>
    <dependency>
        <groupId>org.springframework.cloudgroupId>
        <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    dependency>

    <dependency>
        <groupId>com.xugroupId>
        <artifactId>cloud-api-commonsartifactId>
        <version>${project.version}version>
    dependency>

    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>

    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-actuatorartifactId>
    dependency>

    
    <dependency>
        <groupId>org.mybatis.spring.bootgroupId>
        <artifactId>mybatis-spring-boot-starterartifactId>
    dependency>

    
    <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>druid-spring-boot-starterartifactId>
        <version>1.1.10version>
    dependency>
    
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
    dependency>

    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-jdbcartifactId>
    dependency>

    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-devtoolsartifactId>
        <scope>runtimescope>
        <optional>trueoptional>
    dependency>

    
    <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
        <optional>trueoptional>
    dependency>

    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-testartifactId>
        <scope>testscope>
    dependency>
    <dependency>
        <groupId>com.xugroupId>
        <artifactId>cloud-api-commonsartifactId>
        <version>1.0-SNAPSHOTversion>
        <scope>compilescope>
    dependency>
dependencies>
  1. 编写yml
server:
  port: 8001
  
eureka:
  client:
    register-with-eureka: true
    fetchRegistry: true
    service-url:
      defaultZone: http://localhost:7001/eureka
  1. 主启动类
//该注解表示EurekaClient端
@EnableEurekaClient
@SpringBootApplication
public class PaymentMain8001 {
    public static void main(String[] args) {
        SpringApplication.run(PaymentMain8001.class,args);
    }
}
  1. 测试,先启动EurekaServer,再启动EurekaClient,然后访问http://localhost:7001 就可以看到该服务注册到服务注册中心上了!

2.3、服务消费者EurekaClient

接下来创建服务消费者:cloud-consumer-order80

创建方式几乎和服务提供者类似,除了yml基本没什么不同:

spring:
  application:
    name: cloud-order-service

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

3、集群Eureka构建步骤

3.1、Eureka集群原理

【SpringCloud】服务注册中心——Eureka_第3张图片
解决办法:搭建Eureka注册中心集群,实现负载均衡+故障容错

3.2、EurekaServer集群环境构建步骤

3.2.1、创建两个EurekaServer

创建过程,可以参考cloud-eureka-server7001 ,创建cloud-eureka-server7001
其中pom.xml文件、启动类的编写也可以参考!

3.2.2、修改映射配置

找到C:\Windows\System32\drivers\etc路径下的hosts文件

修改映射配置添加进hosts文件:
在这里插入图片描述

3.2.3、为两个注册中心编写yml

7001:

server:
  port: 7001

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

7002:

server:
  port: 7002

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

3.2.4、将8001和80两个微服务注册到集群

只需要改变两个服务的yml即可:

# 将两个服务的service-url替换成下方代码
service-url:
  defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka  #集群版

3.2.5、测试

  1. 先要启动EurekaServer,7001/7002服务
  2. 再启动服务提供者provider,8001服务
  3. 再启动消费者,80

你可能感兴趣的:(eureka,spring,cloud,spring,cloud,alibaba,spring,boot,spring)