当前位置: 首页 > news >正文

微服务框架中Nacos的个人学习心得

 微服务框架需要学习的东西很多,基本上我把它分为了五个模块:

第一:微服务技术模块

        分为三个常用小模块:

        1.微服务治理:

                注册发现

                远程调用

                配置管理

                网关路由

        2.微服务保护:

                流量控制

                系统保护

                熔断降级

                服务授权

        3.分布式事务:

                分布式事务

                TCC模型

                AT模型

                Seata

第二:缓存技术模块

        分为三个小模块

        1.分布式缓存:

                Redis数据结构

                SpringDataRedis

                缓存穿透、雪崩

        2.多级缓存:

                Openresty

                多级缓存

                Nginx本地缓存

                缓存数据同步

        3.Redis集群:

                Redis集群

                Redis主从复制

                Lua脚本

                数据持久化

第三:异步通信模块

        分为两个模块

        1.异步通信:

                数据持久化

                消息堆积问题

                MQ消息模型

                SpringAMQP

        2.可靠消息服务:

                消息可靠性

                消息幂等性

                镜像集群

                延迟队列

第四:搜索技术模块

        主要就一个分布式搜索:

                DSL语句

                RestAPI

                ES集群状态

第五:Devops模块

        主要就是Docker技术:

                Docker使用

                Dockerfile

                Dockers compose

版本兼容关系:

SpringCloud的关键:如何在Java代码中发起Http请求,来达到分布式的需求。

关于Nacos的理解

        关于Nacos,我的理解是,在SpringCloudAlibaba中Nacos是Eureka的替代,但是他的功能要比Eureka多一些。

Nacos的依赖:

父工程依赖:
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.6.RELEASE</version><type>pom</type><scope>import</scope>
</dependency>子工程的依赖:
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>在子工程的application.yml引入的配置:
spring:cloud:nacos:server-addr: localhost:8848///========注意 在做这些操作之前需要把以前使用Eureka的依赖和配置都注释掉

Nacos集群配置:

Nacos可以直接在网页上修改权重,不过Nacos他默认的选择的是随机查询

Nacos有个特殊的地方的是他有一个命名空间Namespace:

在Nacos网页上选择新建命名空间然后复制命名空间id粘贴到项目中的application.yml文件中:

从这里可以知道,我们需要服务可访问,必须把他们放在同一个命名空间之下

==========Nacos与Eureka之间的区别在于服务的健康检测=============

Nacos所有的新创建实例默认为临时实例,临时实例做的检测时心跳检测,Nacos检测时间比Eureka的要快一些。当Nacos创建的实例为非临时实例,Nacos会主动询问服务,并且当这个实例挂掉之后,Nacos不会清理掉他,而是会等他重新启动,并且会把服务挂掉的信息告诉给消费者。

如何设置临时和非临时实例:

CP和AP,CP就是强关联

关于Nacos的配置管理:

(对于一些有热更新需求的配置进行管理)

总结:如果需要在Nacos配置内完成热更新,我们需要做以下几件事情,第一,在Nacos浏览器中修改Nacos中的配置管理并发布(注意记住Nacos中配置管理的DataId),其次在发布成功之后我们需要在后端程序中新建一个配置文件(名字一定要是bootstrap.yaml),在配置文件中我们需要加入服务的名称,开发环境以及后缀名,然后我们需要在相对应的Controller类中加入@RefreshScope注解,然后把配置文件的属性和名称使用@Value(“${配置全称}”),这样我们就完成了Nacos的配置拉取和热修改

===如果Nacos创建了配置管理但没有加配置文件名称如userservice.yaml(加配置环境名称:userservice-dev.yaml)则表示这个配置是属于共享的环境配置,我们可以在这里面设置其他服务器所共享的配置。如果不同区域内的程序则调用不到dev

(profiles:
         active: dev #开发环境,这里是dev)的配置下面配置是test的文件。

 如果配置属性里面都有的话,遵循如下配置:项目里面写的配置<服务名.yaml<服务名-环境名.yaml

Nacos的集群处理:

Nacos1-3是我在一台电脑上模拟的Nacos集群的效果,在里面我分别修改了

三个端口作为Nacos的启动端口,和修改了

application.propersties文件里面的内容作为连接数据库,其中db.num=1代表有一个集群数量(几台MySQL默认一台)并且把三个Nacos的端口分别改成8845、8846、8847三个不同的端口。做完这些操作之后还需要对Nginx的config文件进行修改:找到里面的nginx.conf文件,在里面添加配置

upstream nacos-cluster {server 127.0.0.1:8845;server 127.0.0.1:8846;server 127.0.0.1:8847;
}server {listen       80;server_name  localhost;location /nacos {proxy_pass http://nacos-cluster;}
}

这样当我们访问80端口的时候就会自动给我们随机访问到Nacos的8845~8847之间的端口从而实现集群搭建。

相关文章:

微服务框架中Nacos的个人学习心得

微服务框架需要学习的东西很多&#xff0c;基本上我把它分为了五个模块&#xff1a; 第一&#xff1a;微服务技术模块 分为三个常用小模块&#xff1a; 1.微服务治理&#xff1a; 注册发现 远程调用 配置管理 网关路由 2.微服务保护&#xff1a; 流量控制 系统保护 熔断降级 服…...

Unity Animator 运行时修改某个动画状态的播放速度

1.添加动画参数&#xff0c;选择需要动态修改速度的动画状态 2.在属性面板种设置速度倍速参数...

阿里云常用的操作

阿里云常见的产品和服务 容器服务 可以查看容器日志、监控容器cpu和内存&#xff0c; 日志服务 SLS 可以查看所有服务的日志&#xff0c; Web应用防火墙 WAF 可以查看 QPS. 阿里云查看集群&#xff1a; 点击 “产品和服务” 中的 容器服务&#xff0c;可以查看 集群列表&…...

【MATLAB源码-第231期】基于matlab的polar码编码译码仿真,对比SC,SCL,BP,SCAN,SSC等译码算法误码率。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 极化码&#xff08;Polar Code&#xff09; 极化码&#xff08;Polar Code&#xff09;是一种新型的信道编码技术&#xff0c;由土耳其裔教授Erdal Arıkan在2008年提出。极化码在理论上被证明能够在信道容量上达到香农极限…...

创新实训(十三) 项目开发——实现用户终止对话功能

思路分析&#xff1a; 如何实现用户终止AI正在进行的回答&#xff1f; 分析实现思路如下&#xff1a; 首先是在用户点击发送后&#xff0c;切换终止对话&#xff0c;点击后大模型终止对话&#xff0c;停止sse&#xff0c;不再接收后端的消息。同时因为对话记录存入数据库是后…...

基于Java+MySQL停车场车位管理系统详细设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…...

LeetCode 53.最大子数组和(dp)

给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 示例 1&#xff1a; 输入&#xff1a;nums [-2,1,-3,4,-1,2,1,-5,4] 输出&#xff1a;…...

IOS17闪退问题Assertion failure in void _UIGraphicsBeginImageContextWithOptions

最近项目更新到最新版本IOS17&#xff0c;发现一个以前的页面突然闪退了。原来是IOS17下&#xff0c;这个方法 UIGraphicsBeginImageContext(CGSize size) 已经被移除&#xff0c;原参数如果size为0的话&#xff0c;会出现闪退现象。 根据说明&#xff0c;上述方法已经被替换…...

float8格式

产生背景 在人工智能神经元网络中&#xff0c;一个参数用1字节表示即可&#xff0c;或者说&#xff0c;这是个猜想&#xff1a;因为图像的颜色用8比特表示就够了&#xff0c;所以说&#xff0c;猜想神经元的区分度应该小于256。 数字的分配 8比特有256个码位&#xff0c;分为…...

云效BizDevOps上手亲测

云效BizDevOps上手亲测 什么是云效项目协作Projex配置2023业务空间原始诉求字段原始诉求工作流创建原始诉求配置2023产品空间创建主题业务原始诉求关联主题配置2023研发空间新建需求需求关联主题 与传统区别云效开发流程传统开发流程云效BizDevOps 操作体验 什么是云效 在说到…...

亚太杯赛题思路发布(中文版)

导读&#xff1a; 本文将继续修炼回归模型算法&#xff0c;并总结了一些常用的除线性回归模型之外的模型&#xff0c;其中包括一些单模型及集成学习器。 保序回归、多项式回归、多输出回归、多输出K近邻回归、决策树回归、多输出决策树回归、AdaBoost回归、梯度提升决策树回归…...

【Linux】部署 GitLab 服务

1、配置实验环境 安装git apt install git 安装docker apt install docker 安装tree apt install tree 2、安装 Gitlab 下载官方库与安装包 下载官方库的安装脚本 curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bas…...

cs与msf权限传递以及mimikatz抓取win2012明文密码

启动服务端 进入客户端 建立监听 制作脚本 客户端运行程序 主机上线 打开msf 调用handler模块 创建监听 11.cs->msf 传递会话 12.传参完成 msf->cs会话传递 抓取密码&#xff08;null&#xff09; 修改注册表 shell reg add "HKEY_LOC…...

C++ 矩阵的最小路径和解法

描述 给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。 数据范围: 1≤𝑛,𝑚≤5001≤n,m≤500,矩阵中任意值都满足 0≤𝑎𝑖,𝑗≤1000≤ai,j​≤100 要求…...

http服务网络请求如何确保数据安全(含python示例源码)

深度学习类文章回顾 【YOLO深度学习系列】图像分类、物体检测、实例分割、物体追踪、姿态估计、定向边框检测演示系统【含源码】 【深度学习】物体检测/实例分割/物体追踪/姿态估计/定向边框/图像分类检测演示系统【含源码】 【深度学习】YOLOV8数据标注及模型训练方法整体流程…...

网络构建关键技术_2.IPv4与IPv6融合组网技术

互联网数字分配机构&#xff08;IANA&#xff09;在2016年已向国际互联网工程任务组&#xff08;IETF&#xff09;提出建议&#xff0c;要求新制定的国际互联网标准只支持IPv6&#xff0c;不再兼容IPv4。目前&#xff0c;IPv6已经成为唯一公认的下一代互联网商用解决方案&#…...

数仓建模—数据生命周期管理

数仓建模—数据生命周期管理 数据生命周期管理 (DLM) 是一种在从数据输入到数据销毁的整个生命周期内管理数据的方法。 数据根据不同的条件分处不同的阶段,随着其完成不同的任务或满足特定要求而逐次经历这些阶段。 一个出色的 DLM 流程提供针对企业数据的结构和组织,帮助实…...

【INTEL(ALTERA)】Nios II软件开发人员手册中设计位置的错误示例

目录 说明 解决方法 说明 Nios II软件开发人员手册正确无误 请参阅 Nios 中包含的Nios II硬件设计示例 II 嵌入式设计套件 &#xff08;EDS&#xff09;。提供设计示例 设计上 Altera网站的示例页面。 Nios II软件开发人员手册正确无误 请参阅 创建本应用程序和创建本 bsp …...

jeecg导入excel 含图片(嵌入式,浮动式)

jeecgboot的excel导入 含图片&#xff08;嵌入式&#xff0c;浮动式&#xff09; 一、啰嗦二、准备三、 代码1、代码&#xff08;修改覆写的ExcelImportServer&#xff09;2、代码&#xff08;修改覆写的PoiPublicUtil&#xff09;3、代码&#xff08;新增类SAXParserHandler&a…...

GPT-5 一年半后发布?对此你有何期待?

GPT-5 一年半后发布&#xff1f;对此你有何期待&#xff1f; IT之家6月22日消息&#xff0c;在美国达特茅斯工程学院周四公布的采访中&#xff0c;OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布&#xff0c;给出了肯定答案并表示将在一年半后发布。此外&#xff0c;…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...