• Eureka服务注册与发现


    目录

    一、Eureka概述

     1、Eureka特点

    2、Eureka两大组件

    3、Eureka三大角色

    二、Eureka Server服务注册中心

      1、pom.xml

      2、application.yml

    三、Service Provider服务提供方

       1、pom.xml

       2、application.yml

       3、启动类

       4、启动后查看服务注册中心

       5、换端口号再启动一个

       6、在看服务中心

    四、Service Consumer服务消费方

    1、pom.xml

    2、application.yml

    3、启动类

     4、查看注册中心


    GitHub地址https://github.com/yudiandemingzi/spring-cloud-study

    一、Eureka概述

     1、Eureka特点

      (1) Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。

      (2) Eureka 主管服务注册与发现,在微服务中,以后了这两者,只需要使用服务的标识符(==就是那个在每个服务的yml文件中取得服务名称==),

              就可以访问到服务,不需要修改服务调用的配置文件。

      (3) Eureka遵循AP原则(高可用,分区容错性),因为使用了自我保护机制所以保证了高可用。

    2、Eureka两大组件

        两大组件:Eureka Server(提供注册服务)、 Eureka Client(JAVA客户端,负责发送心跳)

       系统中的其他微服务使用Eureka客户端连接到Eureka服务端维持心跳连接(即注册)。SpringCloud的其他模块可以通过Eureka Server 来发现系统中的微服务并加以调用

    3、Eureka三大角色

                Eureka Server:提供服务注册和发现

            Service Provider:服务提供方,将自身服务注册到Eureka,从而使服务消费方能够找到

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

    二、Eureka Server服务注册中心

        1、pom.xml
    1. <!--注册服务中心的jar要多个-server-->
    2. <dependency>
    3. <groupId>org.springframework.cloud</groupId>
    4. <artifactId>spring-cloud-starter-eureka-server</artifactId>
    5. </dependency>
        2、application.yml

    1. server:
    2. port: 7001
    3. eureka:
    4. instance:
    5. hostname: localhost
    6. client:
    7. #声明自己是个服务端
    8. registerWithEureka: false #false表示不向注册中心注册自己
    9. fetchRegistry: false #false表示自己就是注册中心,职责是维护实例,不参加检索
    10. serviceUrl: #设置eureka server的交互地址,即对外暴露的地址
    11. defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

        3、启动类

    1. //注意:要在类前加@EnableEurekaServer标注
    2. @SpringBootApplication
    3. @EnableEurekaServer
    4. public class Eureka7001_APP {
    5. public static void main(String[] args) {
    6. SpringApplication.run(Eureka7001_APP.class,args);
    7. }
    8. }

    运行结果:输入:http://localhost:7001/

    三、Service Provider服务提供方

    假设这个商品微服务。

       1、pom.xml
    1. <dependency>
    2. <groupId>org.springframework.cloud</groupId>
    3. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    4. </dependency>
       2、application.yml

    1. server:
    2. port: 8001
    3. #指定注册中心地址
    4. eureka:
    5. client:
    6. serviceUrl:
    7. defaultZone: http://localhost:7001/eureka/
    8. #服务的名称
    9. spring:
    10. application:
    11. name: product-service

         3、启动类

    1. @SpringBootApplication
    2. public class ProductApplication {
    3. public static void main(String[] args) {
    4. SpringApplication.run(ProductApplication.class, args);
    5. }
    6. }

        4、启动后查看服务注册中心

     发现在服务注册中心已经注册了一个服务

        5、换端口号再启动一个

       6、在看服务中心

    这就是搭建了商品微服务集群。

    四、Service Consumer服务消费方

          其实服务方和消费在配置时候没有任何区别,它们都属于Eureka Client组件。只是涉及服务间的调用,所以就把被调方称为提供方,调用方称为消费方。就好比订单微服务,

    订单服务肯定需要去调商品微服务,所以这个订单微服务对于商品来讲可以理解服务提供方。一个微服务即可以是服务方也同时是提供方。

          1、pom.xml
    1. <!--这个对于每个不是注册中心的微服务都要添加-->
    2. <dependency>
    3. <groupId>org.springframework.cloud</groupId>
    4. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    5. </dependency>
         2、application.yml

    1. server:
    2. port: 9001
    3. #指定注册中心地址
    4. eureka:
    5. client:
    6. serviceUrl:
    7. defaultZone: http://localhost:7001/eureka/
    8. #服务的名称
    9. spring:
    10. application:
    11. name: order-service

        3、启动类

    1. @SpringBootApplication
    2. public class OrderApplication {
    3. public static void main(String[] args) {
    4. SpringApplication.run(OrderApplication.class, args);
    5. }
    6. }

    4、查看注册中心

    发现订单微服务也成功注册到注册中心

  • 相关阅读:
    STM32成熟变频逆变器方案
    FHQ-Treap 简介
    Java版分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis 电子招标采购系统功能清单
    CMU15445 (Fall 2020) 数据库系统 Project#1 - Buffer Pool 详解
    基于Advisor实现AOP
    strongSwan对接H3C
    <MySQL> 什么是数据库事务?事务该如何使用?
    mysql 5.7 解压版安装教程(之前是安装包,从其他电脑复制过来也适用)
    LabVIEW样式检查表8
    Binder 域
  • 原文地址:https://blog.csdn.net/qq_42428269/article/details/132807366