SpringCloud学习之整合eureka

Posted 爬树的猪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud学习之整合eureka相关的知识,希望对你有一定的参考价值。

一:eureka简介 

  1.eureka遵守cap原则里的AP原则,即高可用和分区容错性

    CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得

  2.eureka的地位

    Eureka 模块来实现服务注册和发现,Eureka Server作为服务的注册中心,其他微服务通过Eureka client 连接到 Eureka Server并维持心跳连接

 

  3. eureka的角色

    3.1 eureka server提供服务注册和发现

    3.2 Service Provider 服务提供方将自身服务注册进入eureka,从而使consumer能够通过eureka找到

    3.3 Service Consumer服务消费方从Eureka获取注册服务列表,从而能够消费服务

二: 整合eureka

  前提: 基于 https://www.cnblogs.com/zhanyifan/p/10693869.html 的基础环境进行整合eureka

  1. 创建maven module ---- microservicecloud-eureka-7001

    1.1 修改pom

      注意: 这里的eureka server端采用 spring-cloud-starter-eureka-server 而非 spring-cloud-starter-netflix-eureka-server,本人采用spring-cloud-starter-netflix-eureka-server 进行eureka server进行注册时候,client 端无法注册进eureka

<?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>microservicecloud</artifactId>
        <groupId>com.ligong.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>microservicecloud-eureka</artifactId>
    <dependencies>
        <!--eureka-server服务端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>org.springframework.cloud</groupId>-->
            <!--<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>-->
        <!--</dependency>-->
        <!--热部署-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
            <version>1.2.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <version>2.1.4.RELEASE</version>
        </dependency>
    </dependencies>
</project>

    1.2 修改application.yml

 

server:
  port: 7001
eureka:
  instance:
    hostname: eureka7001.com #eureka 服务端的实例名称 这里进行了主机映射,为了是方便后面的eureka集群配置
  client:
    register-with-eureka: false # false表示不向注册中心注册自己
    fetch-registry: false #false 表示自己端就是注册中心,我的职责是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址

    1.3 添加SpringBoot 主启动类  

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

    1.4 启动EurekaService7001App, 并访问eureka7001.com:7001

    

    如果能看到此页面,说明eureka搭建成功,这里我已经搭建完毕了eureka集群,已经微服务的注册,所以能看到的信息会多些,刚做到这步的时候 installces currently registered with eureka下应该为No application available

  2.修改provider module

    2.1 修改pom

      新增以下依赖,注意不是spring-cloud-starter-eureka-server 是 spring-cloud-starter-eureka 没有-server

 <dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-eureka</artifactId>
    <version>1.4.6.RELEASE</version>
 </dependency>
 <dependency>
   <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
 </dependency>

    2.2 修改application.yml

 

    新增以下内容

eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/

    2.3 在主启动类上添加@EnableEurekaClient 注解

 

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

    2.4 测试

      2.4.1 先启动eureka,

      2.4.2 再启动provider微服务

      

      如果在eureka的进程中出现这句话,说明服务注册成功。

      你也可以到eureka7001.com:7001上查看,会出现

      

 

       说明服务注册成功,至此,eureka的整合基本完成

    

以上是关于SpringCloud学习之整合eureka的主要内容,如果未能解决你的问题,请参考以下文章

SpringCoud学习之Eureka

Springcloud学习之Nacos

SpringCloud学习之SpringCloudStream&集成kafka

#yyds干货盘点# springcloud整合eureka实现服务注册与发现

SpringCloud学习之Stream消息驱动默认通道

SpringCloud整合Zookeeper代替Eureka