Eureka作为服务注册与发现的组件,Eureka2.0已经闭源了,但是本教程还是以Eureka为核心进行展开。

1、三个模块

Spring Cloud Eureka是Spring Cloud Netflix微服务套件之一,基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。

eueka的3个重要模块,eureka-server,service-provider,service-consumer
       eureka-server:服务端,提供服务注册和发现;
       eureka-client-service-provider:服务端,服务提供者,通过http rest告知服务端注册,更新,取消服务;
       eureka-client-service-consumer:客户端,服务消费者,通过http rest从服务端获取需要服务的地址列表,然后配合一些负载均衡策略(ribbon)来调用服务端服务。

2、eureka-server

Eureka Server 的服务注册数据存储层是双层的 ConcurrentHashMap(线程安全高效的 Map 集合)。
        第一层的key=spring.application.name 也就是客户端实例注册的应用名;value 为嵌套的 ConcurrentHashMap。
        第二层的key=instanceId 也就是服务的唯一实例 ID,value 为 Lease 对象,Lease 对象存储着这个实例的所有注册信息,包括 ip 、端口、属性等。
        申明语句如下:
        private final ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>> registry= new ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>>();

服务注册表没有持久化到数据库,我想应该是出于性能的考虑吧。毕竟,注册表信息是需要定时获取、更新的。

3、创建服务注册中心——demo

3.1、引入依赖pom.xml

<dependencies>
          <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
        <dependency>
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
          </dependency>
     </dependencies>

3.2、eureka server启动代码

@SpringBootApplication
       @EnableEurekaServer
       public class EurekaServerApplication {

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

@EnableEurekaServer的主要作用是启动EurekaServer运行环境和上下文。

3.3、application配置文件

application配置文件可以是xml或yml结构,我比较喜欢xml结构,yml是缩进格式,我觉得比较容易写错。

server.port=8080

spring.application.name: eureka-server

#服务注册中心实例的主机名
       eureka.instance.hostname: localhost

#表示是否将自己注册在EurekaServer上,默认为true。由于当前应用就是EurekaServer,所以置为false
        eureka.client.register-with-eureka: false

#表示表示是否从EurekaServer获取注册信息,默认为true。单节点不需要同步其他的EurekaServer节点的数据

eureka.client.fetch-registry: false

#设置Eureka的地址
       eureka.client.service-url.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

3.4、查看eureka server

访问http://localhost:8080/地址。如图上部分

Environment: 环境,默认为test,生产环境建议改下,看着顺眼
        Data center: 数据中心,生产环境建议改下
        Current time:当前的系统时间
        Uptime:已经运行了多少时间
        Lease expiration enabled:是否启用租约过期 ,自我保护机制关闭时,该值默认是true, 自我保护机制开启之后为false。
        Renews threshold: 每分钟最少续约数,Eureka Server 期望每分钟收到客户端实例续约的总数。
        Renews (last min): 最后一分钟的续约数量(不含当前,1分钟更新一次),Eureka Server 最后 1 分钟收到客户端实例续约的总数。

页面下部分:

total-avail-memory : 总共可用的内存
    environment : 环境名称,默认test 
    num-of-cpus : CPU的个数
    current-memory-usage : 当前已经使用内存的百分比
    server-uptime : 服务启动时间
    registered-replicas : 相邻集群复制节点
   unavailable-replicas :不可用的集群复制节点,

available-replicas :可用的相邻集群复制节点

ipAddr:eureka服务端IP
    status:eureka服务端状态

3.5、源代码链接:https://files-cdn.cnblogs.com/files/wreading/eureka-server.rar

Spring cloud ——EurekaServer的更多相关文章

  1. 快速搭建单机版Spring Cloud EurekaServer

    原文链接:http://www.yiidian.com/springcloud/build-eureka-single.html 本文介绍搭建单机版的Eureka Server服务 1 创建项目,导入 ...

  2. Spring Cloud 入门 Eureka-Server服务注册

    这里就不介绍怎么创建springboot项目了,可以查看我前面的博客 Spring Cloud Eureka Spring Cloud Eureka是Spring Cloud Netflix项目下的服 ...

  3. 综合使用spring cloud技术实现微服务应用

    在之前的章节,我们已经实现了配置服务器.注册服务器.微服务服务端,实现了服务注册与发现.这一章将实现微服务的客户端,以及联调.实现整个spring cloud框架核心应用. 本文属于<7天学会s ...

  4. Spring cloud实现服务注册及发现

    服务注册与发现对于微服务系统来说非常重要.有了服务发现与注册,你就不需要整天改服务调用的配置文件了,你只需要使用服务的标识符,就可以访问到服务. 本文属于<7天学会spring cloud系列& ...

  5. 将spring cloud打包docker镜像

    简介:用spring cloud构建微服务后,微服务肯定要docker镜像化然后用rancher等可视化工具管理,这就是走完了一套基本的流程,现在简单介绍下 环境:两台centos7.x的服务器,一台 ...

  6. Spring Cloud构建微服务架构(一)服务注册与发现

    Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁 ...

  7. spring cloud微服务搭建第一天

    martin fowler大神提出微服务的概念后,各种微服务的技术满天飞,现在用的比较多的是spring cloud和阿里的dubbo,由于dubbo 在16年10月份就停止更新了,这里我们讲解spr ...

  8. Spring Cloud在国内中小型公司能用起来吗?

    今天吃完饭休息的时候瞎逛知乎,突然看到这个一个问题Spring Cloud在国内中小型公司能用起来吗?,吸引了我的注意.仔细的看了题主的问题,发现这是一个好问题,题主经过了一番思考,并且用图形全面的将 ...

  9. 使用Sidecar将Node.js引入Spring Cloud

    网上看到的一篇文章,觉得写得挺好,现转载于此,以方便需要的网友查阅. 该文章介绍了非JAVA语言提供的应用集成到Spring Cloud的这样一个实现,以便我们使用其他语言作为参考. 感谢原作者分享, ...

随机推荐

  1. 借汇编之力窥探String背后的数据结构奥秘

    熟悉C++.java.VB等编程语言的朋友都知道String(字符串),它是编程语言中表示文本的数据类型,字符串由若干字符组成的,是所有编程语⾔中⾮常重要的成员.可能很多朋友平时只是使用它,没有仔细研 ...

  2. vscode + platformIO开发stm32f4

    我的电脑环境 win10 vscode 1.36.1 vscode安装插件 安装完这个插件后会提示你安装 platformIOCore,按照提示安装即可.安装过程可能比较缓慢, 可能需要翻墙. 新建项 ...

  3. java内存区域,jvm内存各个区域详解

    一.运行时数据区域 1.如图所示,可分为如下几个区域. 2.程序计数器 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器.字节码解释器工作时就是通过改变这个计数器的 ...

  4. CSS3选择器归类整理

    CSS3选择器归类整理(附CSS优先级要点) CSS是用于网页设计可用的最强大的工具之一.使用它我们可以在几分钟内改变一个网站的界面,而不用改变页面的标签.在深入研究CSS选择器之前,我们应该先搞懂C ...

  5. 在Spring Boot中添加全局异常捕捉提示

    在一个项目中的异常我们我们都会统一进行处理的,那么如何进行统一进行处理呢? 全局异常捕捉: 新建一个类GlobalDefaultExceptionHandler, 在class注解上@Controll ...

  6. 转:Maven的默认中央仓库以及修改默认仓库&配置第三方jar包从私服下载

    当构建一个Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下: 1.从本地资源库中查找并获得依赖包,如果没有,执行第2步. 2.从Maven默认中央仓库中查找并获得依赖包 ...

  7. Docker数据挂载

    Docker数据管理 在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录(Bind mounts) 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很 ...

  8. Redis面试热点之底层实现篇(续)

    0.题外话 接着昨天的[决战西二旗]|Redis面试热点之底层实现篇继续来了解一下ziplist压缩列表这个数据结构. 你可能会抱有疑问:我只是使用Redis的功能并且公司的运维同事都已经搭建好了平台 ...

  9. iOS RSA加解密签名和验证

    转自:http://www.jianshu.com/p/81b0b54436b8 Pre:在公司负责了一个项目,需要用到iOS RSA验证签名的功能.后台给我的仅仅是一个公钥的字符串.经过起初的一段时 ...

  10. 数据库Oracle通用函数

    通用函数:可用于任意数据类型,并且适用于空值.• NVL (expr1, expr2) • NVL2 (expr1, expr2, expr3) • NULLIF (expr1, expr2) • C ...