注册中心 —— SpringCloud Netflix Eureka
Eureka 简介
Eureka 是一个基于 REST 的服务发现组件,SpringCloud 将它集成在其子项目 spring-cloud-netflix 中,以实现 SpringCloud 的服务注册与发现,同时提供了负载均衡、故障转移等能力,目前 Eureka2.0 已经不再维护,故不推荐使用
Eureka 有两种角色组件:
- Eureka Server:服务注册中心组件,提供了服务的注册与发现的接口
- Eureka Client:各种微服务,把自身的服务实例注册到 Eureka Server 中,也可通过 Eureka Server 获取服务列表,消费服务
微服务客户端在 Eureka 上注册,然后每隔 30 秒发送心跳来更新它们的租约。如果客户端不能多次续订租约,就将在大约 90 秒内从服务器注册表中剔除。注册信息和更新被复制到集群中的所有 Eureka 节点,来自任何区域的客户端都可以查找注册表信息(每30秒发生一次)来定位它们的服务并进行远程调用
搭建 Eureka 注册中心
创建 eureka-server 项目,引入依赖,本项目基于 SpringBoot 2.3.1,SpringCloud Hoxton.SR12
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
...
<dependencies>
在启动类上添加 @EnaleEurekaServer 注解,启用 Euerka 注册中心功能
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
在配置文件添加 Eureka 服务端的配置
server:
port: 8001 # 指定运行端口
spring:
application:
name: eureka-server # 指定服务名称
eureka:
instance:
hostname: localhost # 指定主机名称
client:
fetch-registry: false # 指定能否从注册中心获取服务
register-with-eureka: false # 指定是否将服务注册到注册中心
运行 main 方法启动服务,在浏览器中访问 http://localhost:8001/ 便可以看到 Eureka 注册中心的界面
创建 eureka-client 项目,引入依赖
<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-client</artifactId>
</dependency>
在启动类上添加 @EnableDiscoveryClient 注解,表明是一个 Eureka 客户端
@EnableDiscoveryClient
@SpringBootApplication
public class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientApplication.class, args);
}
}
在配置文件添加 Eureka 客户端的配置
server:
port: 8101 # 指定运行端口
spring:
application:
name: eureka-client # 指定服务名称
eureka:
client:
fetch-registry: true # 指定能否从注册中心获取服务
register-with-eureka: true # 指定是否将服务注册到注册中心
service-url:
defaultZone: http://localhost:8001/eureka
运行 main 方法,启动 eureka-client 项目,刷新 http://localhost:8001/ 页面,即可看到 cureka-client 已经注入 Eurcka 服务
搭建 Eureka 注册中心集群
由于所有服务都会注册到注册中心,服务之间的调用都是通过从注册中心获取服务列表来调用的。注册中心一旦宕机,所有服务调用都会出现问题,因此需要多个注册中心组成集群来提供服务
创建两个 eureka-server 项目,eureka-server-1 项目的配置文件如下:
server:
port: 8002 # 指定运行端口
spring:
application:
name: eureka-server-1 # 指定服务名称
eureka:
instance:
hostname: localhost # 指定主机名称
client:
fetch-registry: true # 指定能否从注册中心获取服务
register-with-eureka: true # 指定是否将服务注册到注册中心
service-url:
defaultZone: http://localhost:8003/eureka/
eureka-server-2 项目的配置文件如下:
server:
port: 8003 # 指定运行端口
spring:
application:
name: eureka-server-1 # 指定服务名称
eureka:
instance:
hostname: localhost # 指定主机名称
client:
fetch-registry: true # 指定能否从注册中心获取服务
register-with-eureka: true # 指定是否将服务注册到注册中心
service-url:
defaultZone: http://localhost:8002/eureka/
通过两个注册中心互相注册,搭建注册中心的双节点集群。分别启动项目,查看 http://localhost:8001/ 和 http://localhost:8002/,可以看到两个注册中心已经分别注册了
注册中心 —— SpringCloud Netflix Eureka的更多相关文章
- SpringCloud学习笔记(三、SpringCloud Netflix Eureka)
目录: 服务发现简介 SpringCloud Netflix Eureka应用 Eureka高可用 Eureka源码分析 >>> Eureka Client初始化(客户端定时获取服务 ...
- spring cloud深入学习(二)-----服务注册中心spring cloud eureka
服务治理 主要用来实现各个微服务实例的自动化注册与发现,为啥需要这玩意呢?在一开始比如A系统调用B服务,可能通过手工维护B服务的实例,并且还得采用负载均衡等方式,这些全部都得需要手工维护,等后面系统越 ...
- 谈谈注册中心 zookeeper 和 eureka中的CP和 AP
谈谈注册中心 zookeeper 和 eureka中的CP和 AP 前言 在分布式架构中往往伴随CAP的理论.因为分布式的架构,不再使用传统的单机架构,多机为了提供可靠服务所以需要冗余数据因而会存在分 ...
- SpringCloud Netflix Eureka(服务注册/发现)
⒈Eureka是什么? Eureka是Netflix的一个子模块,也是核心模块之一,Eureka是一个基于REST的服务,用于定位服务以实现云端中间层服务发现和故障转移,服务注册与发现对于微服务架构来 ...
- 微服务实战系列(二)-注册中心Springcloud Eureka客户端
1. 场景描述 前几天介绍了下springcloud的Eureka注册中心(springcloud-注册中心快速构建),今天结合springboot-web介绍下eureka客户端服务注册. 2. 解 ...
- SpringCloud Netflix Eureka
Eureka是Netflix开源的服务发现组件,基于REST,SpringCloud将它集成在子项目Spring Cloud Netflix中,从而实现服务的注册.发现. Eureka包含Server ...
- 微服务实战系列(四)-注册中心springcloud alibaba nacos
1.场景描述 因要用到微服务,关于注册中心这块,与同事在技术原型上做了讨论,初步定的方案是使用:阿里巴巴的nacos+springcloud gateway,下面表格是同事整理的注册中心对比,以前用的 ...
- 微服务组件--注册中心Spring Cloud Eureka分析
Eureka核心功能点 [1]服务注册(register):Eureka Client会通过发送REST请求的方式向Eureka Server注册自己的服务,提供自身的元数据,比如ip地址.端口.运行 ...
- 高可用注册中心 ->Spring Cloud Eureka
在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况, 所以在生产 环境中必须对各个组件进行高可用部署, 对于微服务如此, 对于服务注册中心也一样. 但 是到本节为止,我们一直都在使用单节点 ...
- 【微服务】之二:从零开始,轻松搞定SpringCloud微服务系列--注册中心(一)
微服务体系,有效解决项目庞大.互相依赖的问题.目前SpringCloud体系有强大的一整套针对微服务的解决方案.本文中,重点对微服务体系中的服务发现注册中心进行详细说明.本篇中的注册中心,采用Netf ...
随机推荐
- RT-Thread 中 minIni 组件包无法添加的解决方法
事件 今天在 Env 下添加 minIni 包的时候出现了无法将其添加到工程的情况.借此机会来记录一下如何解决该类问题. 如果你想快速排错可以直接到 [2.minIni 组件出现的问题]查看. 一.准 ...
- Postgresql——jsonb类型
Postgresql Json 最近有个功能,需要用到 NoSQL 数据库.但是又不想因为这个小小的功能给系统增加一个 MongoDB 数据库,于是就想到了 Postgresql 支持 JSON 类型 ...
- 小米二面:Redis 如何保证数据不丢失?
前段时间表妹收到了小米秋招补录的面试邀请,一面还算顺利,很快就通过了,但在看二面面试录屏的时候,我发现了一个问题,回答的不是很好,也就是我们今天要聊的这个问题:Redis 如何保证数据不丢失? 很多人 ...
- 解密Spring Cloud微服务调用:如何轻松获取请求目标方的IP和端口
公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. 目的 Spring Cloud 线上微服务实例都是2个起步,如果出问题后,在没有ELK等日志分析平台,如何确定调用到了目标 ...
- Proj4:改进LiteOS中物理内存分配算法
Proj4:改进LiteOS中物理内存分配算法 实验目的 掌握LiteOS系统调用的自定义方法 实验环境 Ubantu和IMX6ULL mini 实验内容 (从代码角度详细描述实验的步骤和过程) 原先 ...
- Jupyter Notebook 使用与安装
简介 Jupyter Notebook就是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序.如在编程过程中需要编写说明文档,可在同一个页面中直接编写 ...
- PHP异步通信
目录 PHP swoole websocket服务器端 websocket 客户端 直播平台 基于宝塔nginx安装Nginx-rtmp-module搭建流媒体服务器 web H5端拉流 其他 PHP ...
- MD5在文件安全中的应用与重要性
一.MD5简介 MD5(Message-Digest Algorithm 5)是一种广泛应用的密码散列函数,由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)于1992年提出.它主 ...
- 新手友好、轻量级的C#/.NET万能工具库
前言 今天分享一个基于MIT License协议开源.免费.新手友好.轻量级的C#/.NET万能工具库.帮助类库(支持.NET和.NET Core,可以帮助开发者们减少常见重复功能方法查找,提高开发工 ...
- cgroup的入门资料
近期在准备特性的设计文档,按照评审专家的建议,需要排查现有产品中算力资源比如CPU.内存的分配方案,确认现有的硬件款型是否具备充足的资源来启用本特性. 依据前辈提供的建议,检查了产品的部署脚本,发现当 ...