Spring Cloud Eureka

引入:远程调用时,url是写死的

String url = "http://127.0.0.1:9090/product/"+ orderInfo.getProductId();

解决思路:

比如(医院,学校等)机构的电话号码发生变化,就需要通知各个使⽤⽅, 但是这些机构的使⽤⽅群体是巨⼤的, 没办法做到⼀⼀通知, 怎么处理呢?
机构电话如果发⽣变化, 通知114. ⽤⼾需要联系机构时, 先打114查询电话, 然后再联系各个机构

同样的, 微服务开发时, 也可以采⽤类似的⽅案.
服务启动/变更时, 向注册中⼼报道. 注册中⼼记录应⽤和IP的关系.
调⽤⽅调⽤时, 先去注册中⼼获取服务⽅的IP, 再去服务⽅进⾏调⽤.

服务提供者(Server):⼀次业务中, 被其它微服务调⽤的服务. 也就是提供接⼝给其它微服务.
服务消费者(Client):⼀次业务中, 调⽤其它微服务的服务. 也就是调⽤其它微服务提供的接⼝.
服务注册中⼼(Registry): ⽤于保存Server 的注册信息, 当Server 节点发⽣变更时, Registry 会同步
变更. 服务与注册中⼼使⽤⼀定机制通信, 如果注册中⼼与某服务⻓时间⽆法通信, 就会注销该实例.

服务提供者和服务消费者是相对的

服务注册:服务提供者在启动时, 向 Registry 注册⾃⾝服务, 并向 Registry 定期发送⼼跳汇报存活状
态.
服务发现: 服务消费者从注册中⼼查询服务提供者的地址,并通过该地址调⽤服务提供者的接⼝. 服务
发现的⼀个重要作⽤就是提供给服务消费者⼀个可⽤的服务列表.

CPA理论

⼀致性(Consistency) :CAP理论中的⼀致性, 指的是强⼀致性. 所有节点在同⼀时间具有相同的数据(多个数据库中,主数据库和从数据库的数据同步要完全一致)
可⽤性(Availability): 保证每个请求都有响应(响应结果可能不对)(对所有的请求都有响应)
分区容错性(Partition Tolerance): 当出现⽹络分区后,系统仍然能够对外提供服务(一个服务器出现错误时,其他的服务器能够做出响应)

生活中:以银行举例:银行利率下调,这个通知需要发到各个工作人员(这个通知下发是需要一定的时间的)

一致性:所有的银行工作人员,对客户讲的利率都是一样的

可用性:不论何时,银行工作人员对客户咨询利率都是有答案的(这个答案可能是就的)

分区容错性:如果其中一个工作人员请假了,银行依然可以对外提供服务

常见的注册中心:

1. Zookeeper
Zookeeper的官⽅并没有说它是⼀个注册中⼼, 但是国内Java体系, ⼤部分的集群环境都是依赖
Zookeeper来完成注册中⼼的功能.
2. Eureka
Eureka是Netflix开发的基于REST的服务发现框架, 主要⽤于服务注册, 管理,负载均衡和服务故障
转移.
官⽅声明在Eureka2.0版本停⽌维护, 不建议使⽤. 但是Eureka是SpringCloud服务注册/发现的默认
实现, 所以⽬前还是有很多公司在使⽤.
3. Nacos
Nacos是Spring Cloud Alibaba架构中重要的组件, 除了服务注册, 服务发现功能之外, Nacos还⽀持
配置管理, 流量管理, DNS, 动态DNS等多种特性.

1.搭建Eureka Server(eureka server是一个独立的微服务器)

1.1创建eureka-server子模块

2.2引⼊eureka-server依赖

1.3 项⽬构建插件

1.4 完善启动类

1.5编写配置⽂件

1.6 启动服务
启动服务, 访问注册中⼼: http://127.0.0.1:10010/

2.服务注册

2.1加入eureka依赖

2.2.添加eureka配置信息

2.3启动服务

3.服务发现

3.1加入eureka依赖

3.2添加eureka配置信息

3.3修改远程调用代码

这里用了三个product-service端口,所以

请求次数 1    2    3    4     5     6    7    8    9 

实例         1    2    0    1     2    0    1    2    0

取余:请求计数器%实例数

3.4启动服务器

Eureka和Zookeeper都是⽤于服务注册和发现的⼯具,区别如下:
1. Eureka是Netflix开源的项⽬, ⽽Zookeeper是Apache开源的项⽬.
2. Eureka 基于AP原则, 保证⾼可⽤, Zookeeper基于CP原则, 保证数据⼀致性.
3. Eureka 每个节点 都是均等的, Zookeeper的节点区分Leader 和Follower 或 Observer, 也正因为这
个原因, 如果Zookeeper的Leader发⽣故障时, 需要重新选举, 选举过程集群会有短暂时间的不可⽤

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mybatilsplaus 常用注解

官网地址 baomidou注解配置

vue3项目,表单增删改

效果图 ArticleChannel.vue页面代码 <script setup> import {artGetChannelsService ,artDelChannelService} from /api/article.js import { Edit, Delete } from element-plus/icons-vue //调用open方法&#xff0c;ChannelEdit去修改组件内部类容 import ChannelEdit…

【Linux】1w详解如何实现一个简单的shell

目录 实现思路 1. 交互 获取命令行 2. 子串分割 解析命令行 3. 指令的判断 内建命令 4. 普通命令的执行 补充&#xff1a;vim 文本替换 整体代码 重点思考 1.getenv和putenv是什么意思 2.代码extern char **environ; 3.内建命令是什么 4.lastcode WEXITSTATUS(sta…

linux nethogs网络监控程序(端口监控、流量监控、上传流量、下载流量、进程监控进程网络)

文章目录 Nethogs 网络监控程序详解1. 引言2. Nethogs 的安装与运行2.1 安装 Nethogs- **Debian/Ubuntu**- **Fedora**- **Arch Linux** 2.2 运行 Nethogs 3. Nethogs 的使用详解3.1 基本界面- **PID**&#xff1a;进程的 ID。- **用户**&#xff1a;运行该进程的用户。- **程序…

graphviz subgraph添加边界框

subgraph name 属性必须要以cluster开头。 A Quick Introduction to GraphvizAn awesome tool for software documentation and visualizing graphshttps://www.worthe-it.co.za/blog/2017-09-19-quick-introduction-to-graphviz.html digraph {rankdir"LR"// the n…

DEBUG:jeston卡 远程ssh编程

问题 jeston 打开网页 gpt都不方便 而且只需要敲命令就行 解决 下载MobaXterm(window执行) liunx需要虚拟机 软件 远程快速复制命令

7.13 专题训练DP

P1255 数楼梯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) ac代码 #include<bits/stdc.h> using namespace std; typedef long long ll; #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) const ll mod 1e97;int main() {IOS;int n;cin>>n;int a[…

Unity Text Mesh Pro 中英文混编自动换行问题

问题描述 使用TextMeshPro 输入中英文时&#xff0c;在一行内 输入中英文&#xff0c;当英文部分超过第一行剩余位置时&#xff0c;整个英文部分都会自动换行 问题截图&#xff1a; 期待截图&#xff1a; 问题说明 因为 TextMeshPro识别中文后会带换行符。 解决方案 修改…

MICCAI 2024 每日一篇论文 纯纯直读 CUTS:用于多粒度无监督医学图像分割的深度学习和拓扑框架

MICCAI 2024 CUTS: A Deep Learning and Topological Framework for Multigranular Unsupervised Medical Image Segmentation CUTS: 用于多粒度无监督医学图像分割的深度学习和拓扑框架 作者 陈璐1*、Matthew Amodio1*、梁博伦.沈2、冯高3、阿曼阿维斯塔4、Sanjay Aneja3,5…

最火视频素材去哪里找?热门的视频素材网站库分享给你

寻找独特视频素材&#xff1f;这些网站助你成为创作之星&#xff01; 朋友们&#xff01;你是否还在为寻找那些能让你的视频内容焕发光彩的素材而四处奔波&#xff1f;内容为王&#xff0c;但没有独特而吸引人的素材&#xff0c;再好的内容也难以吸引观众的目光。别担心&#…

3分钟搞定Kali Linux安装,超详细教程(附安装包)

**今天写一写Kali渗透中的第一个知识点&#xff1a;Kali安装配置。 俗话说得好&#xff1a;kali学得好&#xff0c;牢饭吃到饱&#xff01;** 相信很多同学在刚接触网络安全的时候&#xff0c;都听过kali linux的大名&#xff0c;那到底什么是kali&#xff0c;初学者用kali能做…

操作系统智能助手OS Copilot评测报告

背景 如果不是朋友告知&#xff0c;我还不知道阿里云推出了【操作系统智能助手OS Copilot】这样一款产品。 我做系统运维的工作还是挺多的&#xff0c;知道系统运维工作的一些痛点&#xff1b;例如&#xff1a; Linux命令繁杂&#xff0c;想全部记住不太可能&#xff0c;多数…

防火墙NAT智能选举综合实验

&#xff08;在上一篇防火墙安全策略实验基础上&#xff09; 一、拓扑图&#xff1a; 二、实验要求&#xff1a; 7、办公区设备可以通过电信链路和移动链路上网&#xff08;多对多的NAT&#xff0c;并且需要保留一个公网IP不能用来转换&#xff09; 8、分公司设备可以通过总…

打造高效工作与生活质量的完美平衡

在快节奏的编程行业中&#xff0c;保持健康的工作与生活平衡是至关重要的。长时间坐在电脑前、面对紧凑的项目截止日期和频繁的加班文化&#xff0c;很容易导致身心健康问题&#xff0c;如眼睛疲劳、颈部和背部疼痛、压力累积、睡眠障碍乃至慢性疾病。因此&#xff0c;采取积极…

将vue项目整合到springboot项目中并在阿里云上运行

第一步&#xff0c;使用springboot中的thymeleaf模板引擎 导入依赖 <!-- thymeleaf 模板 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency> 在r…

中职网络安全B模块Cenots6.8数据库

任务环境说明&#xff1a; ✓ 服务器场景&#xff1a;CentOS6.8&#xff08;开放链接&#xff09; ✓ 用户名&#xff1a;root&#xff1b;密码&#xff1a;123456 进入虚拟机操作系统&#xff1a;CentOS 6.8&#xff0c;登陆数据库&#xff08;用户名&#xff1a;root&#x…

5.1 软件工程基础知识-软件工程概述

软件工程诞生原因 软件工程基本原理&#xff08;容易被考到&#xff09; 软件生存周期 能力成熟度模型 - CMM 能力成熟度模型 - CMMI 真题

数据库-MySQL 实战项目——书店图书进销存管理系统数据库设计与实现(附源码)

一、前言 该项目非常适合MySQL入门学习的小伙伴&#xff0c;博主提供了源码、数据和一些查询语句&#xff0c;供大家学习和参考&#xff0c;代码和表设计有什么不恰当还请各位大佬多多指点。 所需环境 MySQL可视化工具&#xff1a;navicat&#xff1b; 数据库&#xff1a;MySq…

AGI 之 【Hugging Face】 的【问答系统】的 [Haystack构建问答Pipeline] 的简单整理

AGI 之 【Hugging Face】 的【问答系统】的 [Haystack构建问答Pipeline] 的简单整理 目录 AGI 之 【Hugging Face】 的【问答系统】的 [Haystack构建问答Pipeline] 的简单整理 一、简单介绍 二、构建问答系统 三、用Haystack构建问答pipeline 1、检索器 2、阅读器 3、初…