欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringCloud服务注册到Eureka Server

程序员文章站 2022-06-13 15:33:35
...

一、为什么使用Eureka?

   在一个完整的系统中,任何单点的服务都不能保证不会中断,因此我们需要服务发现机制,在某个节点中断后,其它的节点能够继续提供服务,从而保证整个系统的是可用的。
    Eureka Server会提供服务注册表,各个服务节点启动后,会在Eureka Server中进行注册,这样Eureka Server中就有了所有服务节点的信息,并且Eureka有监控页面,可以在页面中直观的看到所有注册服务的情况。

二、如何将SpringCloud服务注册到Eureka Server上?

1)开启Eureka Server
     step1.新建一个springBoot项目后除了springBoot的依赖外还需要在pom.xml中引入以下依赖:

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

    <!--放在dependencies外面-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    step2.在启动类中加入@EnableEurekaServer注解

@SpringBootApplication
@Component
@EnableEurekaServer
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

    Step3.在application.yml中添加如下配置

eureka:
  client:
    register-with-eureka: false #禁止自身注册到Eureka Server中
    fetch-registry: false #禁止从Eureka服务器获取注册信息
    service-url:
      defaultIcons: http://localhost:8080/eureka/ # 指定Eureka服务端的地址,
  server:
    enable-self-preservation: false #关闭自我保护
    eviction-interval-timer-in-ms: 10000 #清理间隔

step4.验证

当服务启动成功后在浏览器的地址栏中输入”localhost:8080”,如果出现以下情况就证明成功了。

SpringCloud服务注册到Eureka Server

2)将微服务注册到Eureka Server上
     step1.新建一个springBoot项目后除了springBoot的依赖外还需要在pom.xml中引入以下依赖:

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

    <!--放在dependencies外面-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    step2.在启动类中加入@EnableDiscoveryClient注解

@SpringBootApplication
@Component
@EnableDiscoveryClient
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

    Step3.在application.yml中添加如下配置

#默认使用配置
spring:
  profiles:
      active: dev
#公共配置与profiles选择无关
mybatis:
  typeAliasesPackage: com.aim.graduation.dao
  mapperLocations: classpath:mapper/*.xml
server:
  port: 8081  #注意端口号不要重复

---

#开发配置
spring:
  session:
    store-type: none
  application:
    name: schoolSaralyServiceProvider #设置服务名称

eureka:
 client:
  serviceUrl:
    defaultZone: http://localhost:8080/eureka/
 instance:
   prefer-ip-address: true #使用ip地址注册
   instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}} #设置实例的id
   lease-renewal-interval-in-seconds: 1 #设置eureka client发送心跳给server端的频率
   lease-expiration-duration-in-seconds: 2 #设置示eureka server至上一次收到client的心跳之后,等待下一次心跳的超时时间

将Eureka Server和SpringCloud服务同时打开,在浏览器的地址栏中输入localhost:8080就会出现下图的这种情况。

SpringCloud服务注册到Eureka Server

此时说明springCloud已经注册到Eureka Server上了。