• springcloud-Eureka服务注册发现01(二)


    Eureka基础知识

    • 服务治理
    1. SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理.
    2. 在传统的rpc远程调用框架中, 管理每个服务与服务之间依赖关系比较复杂, 所以需要服务治理来管理服务与服务之间的依赖关系, 可以实现服务调用, 负载均衡, 容错等, 实现服务注册与发现
    • 服务注册与发现
    1. Eureka采用了C/S设计架构, Eureka Server作为服务注册功能的服务器, 它是服务注册中心. 而系统中的其他微服务使用Eureka客户端连接到Eureka Server并维持心跳连接, 这样系统维护人员可通过Eureka来监控系统中各微服务是否正常运行.
    2. 服务注册与发现中, 有一个注册中心, 当服务器启动的时候, 会把当前自己服务器的信息以别名方式注册到注册中心上, 另一方(如消费者)会以该别名的方式去注册中心上获取到实际的服务通讯地址, 然后再实现本地rpc的远程调用
    3. 下图是Eureka系统架构
    • Eureka的两个组件
    1. Eureka Server提供服务与注册
      • 各个微服务节点通过配置启动后, 会在EurekaServer中进行注册, 这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息, 服务节点的信息可以在界面中直观看到.
    2. EurekaClient通过注册中心进行访问
      • 是一个Java客户端, 用于简化Eureka Server的交互.
      • 客户端同时配备一个内置的, 使用轮循负载算法的负载均衡器.
      • 服务启动后, 会向Eureka Server发送心跳(默认周期30秒), 如果Eureka Server在多个心跳周期内都没有接收到某个节点的心跳, 则Eureka Server会把该服务节点从注册表中移除(默认90秒)

    单机版Eureka的构建

    • IDEA生成Eureka Server端服务注册中心
    1. 建Module: cloud-eureka-server7001
    2. 改POM
      • 新老对比
        <!-- 新版 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>
        
        <!-- 老版 -->
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-eureka</artifactId>
                </dependency>
    3. 写yml
      server:
        port: 7001
      eureka:
        instance:
          hostname: localhost #eureka服务端的实例名字
        client:
          register-with-eureka: false #表示不向注册中心注册自己
          fetch-registry: false #表示自己就是注册中心,职责是维护服务实例,并不需要去检索服务
          server-url:
            defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
    4. 主启动类
      //表示该工程是Eureka Server
      @EnableEurekaServer
      @SpringBootApplication
      public class EurekaMain7001 {
      
          public static void main(String[] args) {
              SpringApplication.run(EurekaMain7001.class, args);
          }
      }
    5. 测试: http://localhost:7001/
      • 出现下图网页即可
    • 支付微服务8001入驻Eureka Server
    1. cloud-provider-payment8001注册进Eureka Server, 成为服务提供者provider
    2. 改POM
      <dependency>
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
          </dependency>
    3. 写yml
      eureka:
        client:
          register-with-eureka: true
          fetch-registry: true
          service-url:
            defaultZone: http://localhost:7001/eureka
    4. 主启动类
      //表示这是一个Eureka客户端
      @EnableEurekaClient
      @SpringBootApplication
      public class PaymentMain8001 {
      
          public static void main(String[] args) {
              SpringApplication.run(PaymentMain8001.class, args);
          }
      }
    5. 测试
      • 成功启动服务后, 出现下图即可
    • 订单微服务80入驻Eureka Server
    1. EurekaClient端cloud-consumer-order80注册进入Eureka Server成为服务消费者consumer.
    2. 改pom
      <dependency>
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
          </dependency>
    3. 写yml
      spring:
        application:
          name: cloud-order-service
      
      eureka:
        client:
          register-with-eureka: true # 是否注册进入Eureka Server
          fetch-registry: true
          service-url:
            defaultZone: http://localhost:7001/eureka
    4. 主启动
      @EnableEurekaClient
      @SpringBootApplication
      public class OrderMain80 {
      
          public static void main(String[] args) {
              SpringApplication.run(OrderMain80.class, args);
          }
      }
    • 注意常出的bug
      • FAILED TO LOAD PROPERTY SOURCE FROM LOCATION 'CLASSPATH:/APPLICATION.YML’
      • 一般都是yml配置文件中的缩进没写对
  • 相关阅读:
    HTML5中的FileSystem API的一个问题(或者是BUG)
    TSQL入门(二)——创建表
    javascript绘制谢尔宾斯基三角形(Sierpinski triangle)
    VS2010操作SQL SERVER CE 4.0数据库
    TSQL入门(三)——增删改(INSERT、DELETE、UPDATE)
    IE6警告框
    TSQL入门(二)——创建表
    TSQL入门(一)——创建数据库
    TSQL入门(一)——创建数据库
    javascript绘制谢尔宾斯基三角形(Sierpinski triangle)
  • 原文地址:https://www.cnblogs.com/binwenhome/p/13179217.html
Copyright © 2020-2023  润新知