zoukankan      html  css  js  c++  java
  • spring cloud 之一(注册中心 Eureka)

    一、注册中心

      服务架构图(原理图)

     

    •  Eureka:就是一个服务注册中心(也可以是一个集群)。对外暴露自己的地址
    • 提供者:启动后想Eureka 注册自己的信息
    • 消费者:想Eureka订阅服务,Eureka将对应的服务所提供者地址列表发送给消费者。并且定期更新
    • 心跳:提供者定期通http方式向Eureka刷新自己的状态

      在微服务中,服务的注册与发现是核心的技术之一,spring cloud 提供了多种注册与发现的实现方式。spring cloud 支持最好的 eureka、 其次 consul 、然后 zookeeper

    二、注册与发现

      在服务注册与发现中,有一个注册中心,当服务启动时,会把当前的自己服务器的信息注册到注册中心上。另一方(消费者|生产者)去注册中心获取实际的服务通讯地址、然后通过rpc远程调用。

    三、注册中心的搭建

      1、创建spring boot项目 pom 注意spring cloud 版本

    <dependencyManagement>
            <dependencies>
                <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Finchley.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
         <!--eureka服务端依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            </dependency>

      2、创建application.yml文件

    spring:
      application:
        name: springcloud-eureka-server
    server:
      port: 8700
    #设置该服务中心的hostname,指定ip,该实例名称不能重复
    eureka:
      instance:
        hostname: localhost
      client:
        #由于我们目前创建的应用是一个服务注册中心,而不是一个普通的应用,默认情况下,这个应用会向注册中心(也是它自己)注册它自己,设置为false表示禁止这种自己向自己注册的默认行为
        register-with-eureka: false
        #表示是否从Eureka Server获取注册信息,默认为true。如果这是一个单点的 Eureka Server,不需要同步其他节点的数据,可以设为false。
        fetch-registry: false
        #指定服务注册中心的位置
        #如果是集群,Eureka集群相互指向注册中心
        service-url:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka
      server:
        #自我保护模式默认是自动开启的,可以选择关闭,禁用自我保护模式,保证不可用的服务及时剔除
        enable-self-preservation: true
        #剔除失效服务间隔单位ms,默认1分钟
        eviction-interval-timer-in-ms: 20000
        #留存的服务示例低于多少比例进入保护模式,默认85%
        renewal-percent-threshold: 0.5

       3、启动类添加@EnableEurekaServer 注解 启动项目 

       服务log(部分)

     访问url:http://localhost:8700/ 见下图则搭建成功:

  • 相关阅读:
    《牛客IOI周赛17提高组A》
    《Codeforces Round #645 (Div. 2)》
    《AtCoder Beginner Contest 168 E》思路详解
    《东华大学2020年程序设计竞赛题解》
    《牛客直播课习题1》
    《Codeforces Round #643 (Div. 2)》
    《TOJ5945》区间覆盖问题。
    解决方案、项目、程序集、命名空间
    SQL存储过程前面后面的几句代码是什么意思?
    无法将类型为“IList”的对象强制转换为类型“System.Data.DataRowView” 。的解决方法
  • 原文地址:https://www.cnblogs.com/lxn0216/p/13914902.html
Copyright © 2011-2022 走看看