# 从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(1)

从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(1)

段子手168

1、微服务的注册中心

注册中心可以说是微服务架构中的”通讯录”,它记录了服务和服务地址的映射关系。
在分布式架构中服务会注册到这里,当服务需要调用其它服务时,就这里找到服务的地址,进行调用。

在这里插入图片描述

2、注册中心的主要作用

服务注册中心(下称注册中心)是微服务架构非常重要的一个组件,在微服务架构里主要起到了协调者的一个作用。注册中心一般包含如下几个功能:

1)服务发现:

服务注册/反注册:保存服务提供者和服务调用者信息。
服务订阅/取消订阅:服务调用者订阅服务提供者的信息,最好有实时推送的功能。
服务路由(可选):具有筛选整合服务提供者的能力。

2)服务配置:

配置订阅:服务提供者和服务调用者订阅微服务相关的配置。
配置下发:主动将配置推送给服务提供者和服务调用者。

3)服务健康检测:

检测服务提供者的健康情况。

3、常见的注册中心:Zookeeper, Eureka, Consul, Nacos。

1)Zookeeper

zookeeper 它是一个分布式服务框架,是 Apache Hadoop 的一个子项目,
它主要是用来解决分布式应用中经常遇到的一些数据管理问题,
如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
简单来说 zookeeper= 文件系统+监听通知机制。

2)Eureka

Eureka 是在java语言上,基于 Restful Api 开发的服务注册与发现组件,
Springcloud Netflix 中的重要组件。

3)Consul

Consul 是由 Hashicorp 基于Go 语言开发的支持多数据中心分布式高可用的服务发布和注册服务软件,
采用 Raft 算法保证服务的一致性,且支持健康检查。

4)Nacos

Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
简单来说 Nacos 就是注册中心+配置中心的组合,提供简单易用的特性集,
帮助我们解决微服务开发必会涉及到的服务注册与发现,服务配置,服务管理等问题。
Nacos 还是 Spring Cloud Alibaba 组件之一,负责服务注册与发现。

4、常见的注册中心:Zookeeper, Eureka, Consul, Nacos 的异同点:

在这里插入图片描述

5、注册中心:eureka 概述

1)Eureka 是 Netflix 开发的服务发现框架,springcloud 将它集成在自己的子项目 spring-cloud-netflix 中,实现 springcloud 的服务发现功能。

2)Eureka 的基本架构:

Eureka Server:提供服务注册和发现。
Service Consumer:服务消费方,从 Eureka 获取注册服务列表,从而能够消费服务。
Service Provider。服务提供方,将自身服务注册到 Eureka 从而使服务消费方能够找到。

3)Eureka 的交互流程与原理:

在这里插入图片描述

在这里插入图片描述

6、搭建 EurekaServer 注册中心,使用 Eureka 的步骤:

1)搭建 EurekaServer

创建工程,导入依赖坐标,配置 application.yml 文件,配置启动类。

2)将服务提供者注册到 EurekaServer

3)服务消费者通过注册中心获取服务列表,并调用。

7、在父工程 spring_cloud_demo 下,创建子工程(子模块)

创建 子工程(子模块)

--> 右键 spring_cloud_demo 父工程
--> Modules 
--> Maven 
--> Groupld : ( djh.it )Artifactld : ( eureka_service )Version : 1.0-SNAPSHOT
--> Next 
--> Module name: ( eureka_service )Content root : ( C:\java-test\idea2019\spring_cloud_demo\eureka_service )Module file location: ( C:\java-test\idea2019\spring_cloud_demo\eureka_service )
--> Finish

7、在子工程 eureka_service 的 pom.xml 中导入依赖


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>spring_cloud_demo</artifactId><groupId>djh.it</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>eureka_service</artifactId><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency></dependencies></project>
<!-- C:\java-test\idea2019\spring_cloud_demo\eureka_service\pom.xml -->

9、创建配置文件 application.yml


## C:\java-test\idea2019\spring_cloud_demo\eureka_service\src\main\resources\application.ymlserver:port: 9000  # 启动端口 命令行注入。eureka: # 配置 eureka_serverinstance:hostname: localhostclient:register-with-eureka: false  # 是否将自己注册到注册中心fetch-registry: false  # 是否从 Eureka 中获取注册信息service-url: # 配置暴露给 EurekaClient 的请求地址defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

10、创建 启动类 EurekaServerApplication.java


/***   C:\java-test\idea2019\spring_cloud_demo\eureka_service\src\main\java\djh\it\eureka\EurekaServerApplication.java**   2024-4-19  启动类 EurekaServerApplication.java*/
package djh.it.eureka;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication
@EnableEurekaServer  //激活 Eureka
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}
}

11、运行启动类,进行测试

浏览器地址栏输入:http://localhost:9000 输出界面如下:

在这里插入图片描述

上一节学习请点击:
# 从浅入深 学习 SpringCloud 微服务架构(二)模拟微服务环境(2)通过 RestTemplate 调用远程服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker使用教程及docker部署Vue项目

什么是Docker及其工作原理 虚拟化技术Docker是什么&#xff1f;三大基本术语核心算法原理和具体操作步骤 Docker和传统虚拟化技术区别为什么使用Docker&#xff1f;Docker有什么作用&#xff1f;1.解决应用部署的环境问题遇到问题达到效果 2.容器化 docker的各种命令解释运行机…

6.GodotCanvasItem、Node2D及自定义节点

CanvasItem节点 CanvasItem节点&#xff0c;CanvasItem -> Node&#xff0c;所以CanvasItem继承了Node的所有功能Canvas是画布的意思&#xff0c;所以CanvasItem代表了就是可以被绘制的节点&#xff0c;可以设置可视化界面和材质的颜色所有的2D节点和GUI节点都继承于CanvasI…

网络行为分析与异常检测

构建防火墙和使用简单的安全解决方案不足以保护网络免受网络异常或攻击&#xff0c;因为DDoS攻击、未知恶意软件和其他安全威胁一直在上升&#xff0c;改变了网络安全格局。网络管理员必须积极主动地分析网络&#xff0c;获得对网络的完全控制&#xff0c;并全面了解网络流量活…

访问云平台中linux系统图形化界面,登录就出现黑屏的问题解决(ubuntu图形界面)

目录 一、问题-图形化界面访问黑屏 二、系统环境 &#xff08;一&#xff09;网络结构示意图 &#xff08;二&#xff09;内部机器版本 三、分析 四、解决过程 &#xff08;一&#xff09;通过MobaXterm远程访问图形化界面(未成功) 1、连接方法 2、连接结果 &#xf…

acwing-y总基础课算法笔记整理

技巧 vector, 变长数组&#xff0c;倍增的思想size() 返回元素个数 capacity() 容量empty() 返回是否为空clear() 清空front()/back()push_back()/pop_back()begin()/end()[]支持比较运算&#xff0c;按字典序pair<int, int>first, 第一个元素second, 第二个元素支持…

pt格式文件转engine小记【yolov5-6.0版本】

背景 项目是使用yolov5-6.0的版本&#xff0c;需要加一个新模型进去&#xff0c;yolov5提供的类别有很多&#xff0c;我这里使用chair椅子。第一步就是先把提供的pt文件转化为tensorrt所需要的engine格式的文件&#xff0c;在官网上有提供转换方法。&#xff08;似乎高版本的y…

查看apk是64位32位(三种方法)

通过检查APK文件&#xff0c;你可以确定该APK支持的架构类型&#xff0c;包括它是为64位&#xff08;例如arm64-v8a、x86_64&#xff09;还是32位&#xff08;例如armeabi-v7a、x86&#xff09;架构准备的。Android应用程序可以包含多个不同的二进制文件&#xff0c;每个文件针…

1097 矩阵行平移(语文题,选做)

输入样例&#xff1a; 7 2 99 11 87 23 67 20 75 89 37 94 27 91 63 50 11 44 38 50 26 40 26 24 73 85 63 28 62 18 68 15 83 27 97 88 25 43 23 78 98 20 30 81 99 77 36 48 59 25 34 22 输出样例&#xff1a; 529 481 479 263 417 342 343 样例解读 需要平移的是第 1、…

【Java】常见锁策略 CAS机制 锁优化策略

前言 在本文会详细介绍各种锁策略、CAS机制以及锁优化策略 不仅仅局限于Java&#xff0c;任何和锁相关的话题&#xff0c;都可能会涉及到下面的内容。 这些特性主要是给锁的实现者来参考的. 普通的程序猿也需要了解一些, 对于合理的使用锁也是有很大帮助的 文章目录 前言✍一、…

Spring Boot 2.x 将 logback 1.2.x 升级至 1.3.x

场景 安全部门针对代码进行漏洞扫描时&#xff0c;发现 logback-core 和 logback-classic 都属于 1.2.x 版本&#xff0c;这个版本存在 CVE 漏洞&#xff0c;并且建议升级到 1.3.x 版本。 问题 将两个包直接升级到 1.3.x 版本时&#xff0c;Spring Boot Web 服务启动直接出现…

CNN卷积神经网络之LeNet-5原理与实战

文章目录 CNN卷积神经网络之LeNet-5原理与实战1、LeNet-5网络结构&#xff1a;1.1、LeNet-5由两个部分组成&#xff1a;1.2、模型单元结构&#xff1a;1.3、数据的传输&#xff1a; 2、LeNet-5网络参数详解&#xff1a; CNN卷积神经网络之LeNet-5原理与实战 1、LeNet-5网络结构…

MySql8快速迁移版的制作过程

首先说明&#xff0c;mysql 8的安装不同与mysql5.x。 做程序的朋友都知道&#xff0c;程序好做&#xff0c;客户难伺候&#xff0c;因为限于用户的情况&#xff0c;如何能让用户把程序运行起来很关键&#xff0c;比如日前我在做 山东高中信息技术 学考 考前练习 系统时&#x…

VirtualBox虚拟机使用win11系统,忘记密码如何重置密码

1. 点击重启同时按住Shift&#xff08;按住不放&#xff09; 2. 直到出现下面的界面&#xff0c;释放Shift&#xff0c;并进入疑难解答 3. 进入高级选项 4. 进入命令提示符 5. 发现当前是在X盘&#xff1f; 6. 进入C:\Windows\System32 c: cd Windows\System32 7. 备份osk.exe…

27个必备的Python技巧,你一定要知道!

目 录 01. 为什么使用缩进来分组语句&#xff1f; Guido van Rossum 认为使用缩进进行分组非常优雅&#xff0c;并且大大提高了普通 Python 程序的清晰度。大多数人在一段时间后就学会并喜欢上这个功能。 由于没有开始/结束括号&#xff0c;因此解析器感知的分组与人…

C++能不能调用C语言的动态库?

能。C当然可以调用C语言编写的动态库。 在C和C开发中&#xff0c;有许多知名的C库被广泛使用&#xff0c;比如C标准库、zlib、libcurl、sqlite、cairo等等等等。这些库在C项目中经常会被用到。在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C语言的资…

Rust入门-引用借用

一、引用借用&#xff0c;是什么、为什么、怎么用 所有权上篇我们已经讨论过了&#xff0c;所以这篇我们讨论Rust的引用借用 1、引用借用 是什么&#xff1f; Rust 通过借用(Borrowing) 这个概念来达成上述的目的&#xff0c;获取变量的引用&#xff0c;称之为借用(borrowin…

维护SQLite的私有分支(二十六)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite、MySQL 和 PostgreSQL 数据库速度比较&#xff08;本文阐述时间很早比较&#xff0c;不具有最新参考性&#xff09;&#xff08;二十五&#xff09; 下一篇&#xff1a;SQLite数据库中JSON 函数和运算符 1…

汇编语言 实验10.1

汇编语言 实验10.1 assume cs:code,ds:datasgdatasg segmentdb welcome to masm!,0 datasg endsstack segmentdw 0,0,0,0,0,0,0,0 stack endscode segment ;代码段start: mov dh,8mov dl,3mov cl,2mov ax,datasgmov ds,axmov si,0call show_strmov ax,4c00h ;程序返回int 21hs…

已经下载了pytorch,但在正确使用一段时间后出现No module named torch的错误

问题描述 使用的是叫做m2release的虚拟环境&#xff0c;在此环境下使用conda list可以发现是存在pytorch的&#xff0c;但是运行代码时却报No module named torch的错误。 解决方案 想尝试卸掉这个pytorch重新装一次&#xff0c;但是想卸载会提示找不到&#xff0c;想重新…

Java八股文4

Linux篇 1.free命令-查看内存状态 free命令用于显示内存状态&#xff0c;它可以提供关于系统内存使用情况的详细信息。这个命令会显示出内存的使用情况&#xff0c;包括实体内存、虚拟的交换文件内存、共享内存区段&#xff0c;以及系统核心使用的缓冲区等。 其中&#xff0c;参…