Spring Cloud-Nacos版 学习理解

注册中心 Nacos

下载安装包

bin目录输入 cmd 进入命令行,输入startup.cmd -m standalone 启动

浏览器输入 http://127.0.0.1:8848/nacos/index.html,进入启动页面

账号密码均默认nacos

服务提供者 NacosProvider、服务调用者 NacosConsumer

服务提供者 NacosProvider 注册到 nacos,服务调用者 NacosConsumer 可以通过 nacos 调用 服务提供者 NacosProvider 的 接口。

三者关系

Nacos 配置中心

集中配置

Nacos 持久化

Nacos的数据通过数据库获取

Nacos 集群

1.文件路径不能有中文字符

2.数据库连接细节是否正确,比如用的utf8,连接的url写umb8

3.检查配置文件细节是否正确配上,有时候配置细节会突然消失或者突然冒出些什么东西,很麻烦

4.Java版本是否符合,需要8即以上

理解

Nacos

Nacos 是 注册中心,服务提供者 可以把 服务 注册到 多个Nacos 上,然后需要调用服务,访问 有对应服务 的 Nacos就好,相同的服务可以部署到多个Nacos上,利用 负载均衡组件Ribbon 可以有效 分担访问压力。

也可以运行时,动态加载配置。

Riddon

Riddon 是 负载均衡组件,当部署多个Nacos注册了相同功能的服务的时候,比如查询员工人数功能,可以在项目上,设置当调用者访问这个服务时,按某个模式均衡访问,比如100次访问,50%访问在A-nacos的服务上,50%访问在B-nacos的服务上,两个nacos部署在不同的服务器,相当于用两台服务器代替一台服务器分担了访问压力。

这里可选择Ribbon的 应用策略 ,比如随机访问、轮询访问,超时重试、过滤一些多次连接失败和请求并发数过高的服务器 等策略。

Sentinel

Sentinel 是 限流与防护组件,有这些功能,限流、熔断、服务降级。

限流:比如同一时间有5000个请求,同时访问一个服务,但系统限制只能100个,这个时候 限流 可以把5000个请求降到100个,然后再允许其访问服务

熔断:服务器压力太大了,直接断开服务。场景比如,请求数太多,但服务反应很慢。或者服务冒了一堆异常或者错误。

服务降级:当服务超时或者返回异常时,设定返回某个信息,比如404,页面维护中,服务不可用啥的。

GateWay

GateWay 是 网关统一入口,比如一家商场里有很多商店(微服务),不知道在哪,需要进入商店入口(GateWay )根据入口的引导去对应的商店寻求对应的服务。

OpenFeign

简化了微服务接收请求的过程

Dubbo

Dubbo 是 远程调用组件,可以忽略掉调用服务过程中的不方便之处。

比如,你在大餐厅点菜,但菜品(微服务)来源于不同的厨房(服务器),Dubbo像服务员他知道菜品从哪里拿,而你就只用等他上菜就完了,省略掉了从不同服务器调用服务的过程。

Spring Cloud Steam 与 RocketMQ、RabbitMQ

强化版RocketMQ、RabbitMQ,适用于 大流量高并发 场景 的消息中间件。

Spring Cloud Steam 整合 RocketMQ、RabbitMQ两种消息中间件,做即时通讯的框架。

RocketMQ是 发消息的组件,RabbitMQ 是 收消息的组件。

Kafka

Kafka 是 强化版的RocketMQ、RabbitMQ,适用于 大流量低延迟 场景 的消息中间件。

Mycat

Mycat 是 分库组件,可以把一个 大数据表 分成 多个小表 部署到 不同服务器 上,分担访问数据库的压力

Seata

Seata 是 分布式事务组件,管理不同微服务的事务,确保事务一致性。

比如你要打羽毛球,需要从两个商店(微服务)分别购买球拍和羽毛球(服务),那么Seata用于保障,当没出现两个都购买的情况时,比如就买了 拍 或者 球 可以 退这个款给你,防止影响客户体验,或者出现数据混乱,比如一个数据库记了你买了 球和拍 ,另外一个数据库不记得你买了球  和 拍。

Skywalking

Skywalking 是 微服务监控组件,上面显示实时显示各个服务的性能,比如某个微服务的各个接口最近一次返回数据速度,延迟等。

Docker

Docker 是 模拟Linux系统环境 的组件,它可以分出多个独立的Linux环境容器,用于装载 微服务的组件,比如提供A服务的Nacos装在一个容器内,提供B服务的Nacos又装在一个容器内,服务和服务按容器独立分离,出错了也不影响其他的。

比如所有的微服务(各个商店)都被打包成Docker容器。每个商店都可以在独立的容器中运行,不同容器之间相互隔离,出错了也不会影响到其他商店。这就像在购物中心里的每个商店都是独立的店铺,装修和管理各自独立。

Kubernetes(K8s)

Kubernetes 是 容器管理平台,负责管理这些Docker容器。比如,当某个商店的顾客突然增加时,K8s可以自动扩展该商店的容器数量,确保能承受流量。这就像购物中心的管理人员能根据顾客流量动态调整商店的营业面积。

Jenkins

自动部署工具,新代码一更新在git或者其他什么类似的代码管理平台,就自动的 测试、构建、部署 代码在服务器上。

整体场景:

作为顾客(服务调用者),先进入 购物中心入口(GateWay),根据入口处的引导选择进入某个商店(布置在不同服务器上不同容器的微服务组件)去购买需要的商品(调用服务),这个时候 所进入商店(已确定服务器)的服务员(Dubbo)会帮你从 商店不同柜台(不同容器上的微服务组件)上拿到你需要的商品(服务),省去了你自己找的麻烦。

但是你付款的时候,你的球拍购买成功了,但羽毛球购买失败了,没关系,贴心的商店经理Seata,把你购买成功的球拍也退掉了,直达两个一起购买成功了,经理才没退掉你的球拍或者球。作为拥有多个店铺的商店老板(服务提供者),你发现突然有5000个顾客(服务调用者)要进入你的店中购物,但,店里只能容纳100个人购物,这个时候门口保安(Sentinel)帮你拦着了4900个人,只有100个人进去了,不过你的其他店铺情况就不太好了,另一家B店铺被保安直接关门了(熔断)因为里面人太多了,挤爆了,然后保安贴了一张告示,说下次再来(服务降级)

平时你经常通过 某app(Skywalking) 查看你拥有的不同店铺的销售情况,看了数据后,看起来销售相当火爆,每个店铺都挤满了,这个时候你叫了一个销售员(Ribbon)帮你把客户引导到你的其他有相同商品的商店(相同服务的微服务组件上)上去。

商品很快卖完了你要放货在商店上,但你不想一个个自己放商品(服务)上去不同的店(微服务),因为你店比较多,这个时候你请了一个服务员(Dubbo)帮你放,你直接叫他,商品就自己上去了。

Nacos作为服务注册与配置中心,商店在启动时会向Nacos注册自己的服务,顾客在购买时也会向Nacos查询服务地址。这样,商店就像一个购物中心的导航系统,顾客可以快速找到所需服务。、

在购物中心的场景中,假设商店的数据量非常大,每个商店都存储着大量的商品信息。Mycat作为分库分表组件,可以将一个大数据库拆分成多个小数据库。这样,查询和存储的压力会分散到多个数据库上,避免单一数据库的性能瓶颈,确保系统在高并发下的稳定性。

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

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

相关文章

第五届计算机、大数据与人工智能国际会议(ICCBD+AI 2024)

第五届计算机、大数据与人工智能国际会议(ICCBDAI 2024)将于2024年11月1日-3日在江西景德镇召开。本届会议由景德镇陶瓷大学主办,西安交通大学、暨南大学、南京邮电大学、长沙学院、景德镇学院、ELSP(爱迩思出版社)、E…

Python Django 数据库优化与性能调优

Python Django 数据库优化与性能调优 Django 是一个非常流行的 Python Web 框架,它的 ORM(对象关系映射)允许开发者以简单且直观的方式操作数据库。然而,随着数据量的增长,数据库操作的效率可能会成为瓶颈&#xff0c…

使用 PyTorch 构建 LSTM 股票价格预测模型

目录 引言准备工作1. 训练模型(train.py)2. 模型定义(model.py)3. 测试模型和可视化(test.py)使用说明模型调整结论 引言 在金融领域,股票价格预测是一个重要且具有挑战性的任务。随着深度学习…

Linux文件操作基础

目录 Linux文件操作基础 引入 回顾C语言文件操作 系统调用接口 open函数 read函数和write函数 close函数 模拟C语言接口 文件描述符 如何理解Linux下一切皆文件 文本读写与二进制读写 Linux文件操作基础 引入 在Linux第一章提到过,在Linux中&#xff0…

快速创建一个vue项目并运行

前期准备工作: 1.安装node 2.安装npm 3.设置淘宝镜像 4.全局安装webpack 5.webpack 4.X 开始,需要安装 webpack-cli 依赖 6.全局安装vue-cli 正文开始: 1.创建项目 ,回车 vue init webpack vue-svg > Project name vue-demo 项目名称 回车 > Pro…

电脑桌面自己变成了英文Desktop,怎么改回中文

目录 前言找到Desktop查看位置查找目标修改文件名为桌面重启电脑 或 重启 Windows 资源管理器CtrlShiftEsc 打开任务管理器找到 Windows 资源管理器重启 Windows 资源管理器 查看修改结果 前言 许多人在使用电脑的时候发现,我们经常使用的桌面,不知道因为…

安卓流式布局实现记录

效果图&#xff1a; 1、导入第三方控件 implementation com.google.android:flexbox:1.1.0 2、布局中使用 <com.google.android.flexbox.FlexboxLayoutandroid:id"id/baggageFl"android:layout_width"match_parent"android:layout_height"wrap_co…

震惊!原来贡献开源代码这么简单,分分钟上手!

文章目录 前言一、什么是 Fork 和 PR&#xff1f;1. Fork&#xff08;分叉&#xff09;2. PR&#xff08;Pull Request&#xff0c;拉取请求&#xff09; 二、两种常见的贡献代码方式1. Fork 后通过 PR 提交代码2. 直接在项目分支中修改 三、如何 Fork 和发起 Pull Request&…

高效车辆管理:SpringBoot实现指南

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理车辆管理系统的相关信息成为必然。开发合适…

蜗牛兼职网的设计与实现(论文+源码)_kaic

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;蜗牛兼职网当然也不能排除在外。蜗牛兼职网是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c…

Unity开发Hololens项目

Unity打包Hololens设备 目录Visual Studio2019 / Visual Studio2022 远端部署设置Visual Studio2019 / Visual Studio2022 USB部署设置Hololens设备如何查找自身IPHololens设备门户Unity工程内的打包设置 目录 记录下自己做MR相关&#xff1a;Unity和HoloLens设备的历程。 Vi…

智能家居的“眼睛”:计算机视觉如何让家更智能

引言 在不远的未来&#xff0c;当我们走进家门&#xff0c;灯光自动亮起&#xff0c;空调已经调至最舒适的温度&#xff0c;甚至音乐也播放着我们最喜欢的歌曲。 这一切&#xff0c;都得益于智能家居系统的发展。而在这个系统中&#xff0c;计算机视觉技术扮演着至关重要的角色…

opencv 图像BGR三通道分离 split 与 合并 merge -python 实现

图像BGR三通道分离 split 与 合并 merge 会在图像预处理和图像增强中使用。 具体代码如下&#xff1a; #-*-coding:utf-8-*- # date:2021-03-21 # Author: DataBall - XIAN 1、将彩色图片 BGR 三通道分离&#xff08;注意观察 B、G、R 单通道图像素的明暗&#xff09;2、将3个…

Java知识巩固(六)

什么是可变长参数&#xff1f; 从 Java5 开始&#xff0c;Java 支持定义可变长参数&#xff0c;所谓可变长参数就是允许在调用方法时传入不定长度的参数。就比如下面这个方法就可以接受 0 个或者多个参数。 public static void method1(String... args) {//...... } 另外&am…

python 作业1

任务1: python为主的工作是很少的 学习的python的优势在于制作工具&#xff0c;制作合适的工具可以提高我们在工作中的工作效率的工具 提高我们的竞争优势。 任务2: 不换行 换行 任务3: 安装pycharm 进入相应网站Download PyCharm: The Python IDE for data science and we…

分享一套SpringBoot+Vue民宿(预约)系统

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue民宿(预约)系统&#xff0c;分享下嘿嘿。 项目介绍 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c…

qt QGraphicsEffect详解

一、QGraphicsEffect概述 QGraphicsEffect通过挂接到渲染管道并在源&#xff08;例如QGraphicsPixmapItem、QWidget&#xff09;和目标设备&#xff08;例如QGraphicsView的视口&#xff09;之间进行操作来更改元素的外观。它允许开发者为图形项添加各种视觉效果&#xff0c;如…

Redis——事务

文章目录 Redis 事务Redis 的事务和 MySQL 事务的区别:事务操作MULTIEXECDISCARDWATCHUNWATCHwatch的实现原理 总结 Redis 事务 什么是事务 Redis 的事务和 MySQL 的事务 概念上是类似的. 都是把⼀系列操作绑定成⼀组. 让这⼀组能够批量执行 Redis 的事务和 MySQL 事务的区别:…

无人机之融合集群技术篇

无人机的融合集群技术是一个涉及多个领域的复杂技术体系&#xff0c;它结合了无人机技术、自组网技术、集群控制技术以及反制设备等多个方面&#xff0c;旨在实现多架无人机之间的协同、编队、信息共享、任务分配和高效作业。 一、无人机自组网技术 无人机自组网技术是一种利用…

UDP/TCP协议

网络层只负责将数据包送达至目标主机&#xff0c;并不负责将数据包上交给上层的哪一个应用程序&#xff0c;这是传输层需要干的事&#xff0c;传输层通过端口来区分不同的应用程序。传输层协议主要分为UDP&#xff08;用户数据报协议&#xff09;和TCP&#xff08;传输控制协议…