dependencyManagement的作用、nacos的学习

使用SpringCloudAlibaba注意各组件的版本适配

SpringCloudAlibaba已经包含了适配的各组件(nacos、MQ等)的版本号,也是一个版本仲裁者,但是可能已经有了父项目Spring-Boot-Starter-Parent这个版本仲裁者,又不能加多个父项目,可以使用,

可以使用dependencyManagement来添加版本仲裁者

下面是固定格式,只有版本号可以变

type和scope不能少

dependencyManagement只是添加了一个版本仲裁者,当前项目没有添加SpringCloudAlibaba进来,子项目也并不会继承这个依赖,子项目要添加依赖必须要显示的声明,添加SpringCloudAlibaba里面的组件nacos、MQ等,不用声明版本号了

而dependencies中的依赖,子项目会直接继承

Spring-Boot-Starter-Parent这个版本仲裁者也可以放到dependencyManagement当中

因为公司实际开发中都有自己的一个maven项目给我们继承,这样就留出了继承父maven项目的地方


每一个微服务,会有一个定时任务,定时发送心跳到注册中心

还会有一个定时任务,定时拉取其他服务列表,缓存到当前服务中(当前服务就可以看成一个客户端,调用的另一个服务,可以看成服务器)。

每一个微服务也是一个客户端


如何搭建nacos?

在windows上下载nacos可执行文件

或者在linux中用docker拉取nacos镜像

并启动。

可以在nacos的配置文件中设置访问nacos的账号、密码、或者修改其他默认配置

然后在springboot项目中导入nacos的依赖


nacos集群,就是为了防止一个nacos服务坏了,所以会有多台nacos服务,也叫nacos集群。

这种多台服务的都会有一个主节点,多个从节点,主从架构

如何注册到nacos服务中心

        肯定要提供 服务名称,而服务的ip和端口,不用提供,nacos能够自己获取到

命名空间可以根据不同的项目去划分,也可以根据一个项目的不同开发环境去划分,都可以,只是起到一个服务隔离的作用(分组的作用也是一样的)

注册到nacos服务中心的默认是 临时实例


如何进行nacos服务调用

之前服务调用的方式(调用stock-service库存服务,需要知道库存服务的ip+端口号)

利用服务发现的方式后,将ip+端口号 改成 库存服务的名称即可(注册到nacos服务中的名称为stock-service)

因为要调用nacos服务的时候,中间必须要使用负载均衡器,所以在RestTepmlate上要加上@LoadBalanced注解

需要利用负载均衡器,去帮我们把 服务名称 解析成 ip地址+端口号 

负载均衡器默认是采用轮询的方式去调用服务 实例

nacos默认采用的就是ribbon的负载均衡技术

权重:结合负载均衡器ribbon使用,分配一个权重

订阅者列表可以查看服务 的访问记录


nacos各个配置项的含义

配置服务名称,通过上面配置了,下面也可以不写了,默认采用上面的名称



如何搭建nacos集群

准备工作

1. 在三台服务器上安装nacos,或者在本地安装三次nacos

2.修改nacos中的配置文件

设置远程(或者本地)mysql的访问ip和账号密码

这里的ip是三台服务器上nacos的实际访问ip地址+端口

3.在mysql数据库中,建一个名为nacos的数据库,将这个文件里的sql建表语句执行一遍

4.修改启动脚本中的参数(防止服务器内存不足,因为默认参数比较大)

5.在三台服务器上分别启动nacos。



搭建好了后,如何访问nacos集群?

能直接改nacos服务地址吗?不能,有多个nacos服务,如果改成其中一个nacos的地址,还是单节点nacos的模式。

如何设置集群的名称,默认就DEFAULT

我们需要通过访问nginx,然后通过nginx帮我们转发

下载在某台服务器上下载nginx后,修改里面的配置文件,通过nginx反向代理的方式,去访问nacos集群

如果访问了这台电脑(公网ip192.168.56.220)的8847端口,并且后面加了/nacos/,例如地址是http://192.168.56.220:8847/nacos,

就会反向代理 到上面三个ip地址+端口号中的其中一个(默认是轮询)

把上面三个ip地址+端口中的一个,拿下来 代替 nacoscluster 这个字符串 的位置

注意:因为nginx和上面三个nacos(集群)都部署在了远程服务器192.168.56.220上,所以对于

nginx监听的地址就是本地ip 127.0.0.1,对于反向代理,转发到的地址也是本地ip 127.0.0.1

使用docker部署nacos集群,上面的有些步骤更加简单。具体步骤搜索网上教程

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

three.js实现3D模型任意方向旋转

因为业务需要,我们在公司官网使用Three.js实现了可鼠标拖动任意旋转的3D旋转模型,可是实现之后发现除了Z轴方向都可以任意旋转,但是Z轴方向最多只能旋转180度。找遍全网也没有找到相关的资料来解释错在了哪一步,最终还是在github仓…

IT之家最新科技热点 | 小米 AI 研究院开创多模态通用模型

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

hive表小练习

-- 将对应的命令写在每个步骤中 -- 1.在hive中创建数据库school create database if not exists school; -- 2.在数据库school中创建如下的表 每张表的列分隔符都是, 存储格式是textfile 创建表名为student_info, 字段为stu_id 类型为string,注释为学生id 字段为stu_name 类…

PostgreSQL 如何优化存储过程的执行效率?

文章目录 一、查询优化1. 正确使用索引2. 避免不必要的全表扫描3. 使用合适的连接方式4. 优化子查询 二、参数传递1. 避免传递大对象2. 参数类型匹配 三、减少数据量处理1. 限制返回结果集2. 提前筛选数据 四、优化逻辑结构1. 分解复杂的存储过程2. 避免过度使用游标 五、事务处…

STM32快速复习(八)SPI通信

文章目录 前言一、SPI是什么?SPI的硬件电路?SPI发送的时序?二、库函数二、库函数示例代码总结 前言 SPI和IIC通信算是我在大学和面试中用的最多,问的最多的通信协议 IIC问到了,一般SPI也一定会问到。 SPI相对于IIC多了…

Apache Seata分布式事务原理解析探秘

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 前言 fescar发布已有时日,分布式事务一直是业界备受关注的领域,fesca…

批量文本编辑管理神器:一键修改多处内容,轻松转换编码,助力工作效率飞跃提升!

在信息爆炸的时代,文本处理已成为我们日常工作中不可或缺的一部分。无论是处理文档、整理数据还是编辑资料,都需要对大量的文本进行管理和修改。然而,传统的文本编辑方式往往效率低下,容易出错,难以满足现代工作的高效…

水箱高低水位浮球液位开关

水箱高低水位浮球液位开关概述 水箱高低水位浮球液位开关是一种用于监测和控制水箱中液位的自动化设备,它能够在水箱液位达到预设的高低限制时,输出开关信号,以控制水泵或电磁阀的开闭,从而维持水箱液位在一个安全的范围内。这类设…

做有一个有表情且会动的 Finder

作为一只合格的互联网巡回猎犬,今天给大家分享一个有趣且无聊的小工具,摸鱼发呆必备,可以说是一件「无用良品」了。 软件介绍 Mouse Finder 长的跟访达差不多,功能也一样,但有一个重要区别:眼睛会跟随鼠标…

图神经网络实战(16)——经典图生成算法

图神经网络实战(16)——经典图生成算法 0. 前言1. 图生成技术2. Erdős–Rnyi模型3. 小世界模型小结系列链接 0. 前言 图生成算法是指用于创建模拟图或网络结构的算法,这些算法可以根据特定的规则和概率分布生成具有特定属性的图&#xff0c…

Open3D 计算点云的粗糙度

目录 一、概述 二、代码实现 2.1 方法一 2.2方法二 三、实现效果 3.1原始点云 3.2计算后的点云 一、概述 点粗糙度(Point Roughness)是点云数据处理中一个重要的几何特征,它描述了一个点附近表面的平滑程度或不规则程度。计算点粗糙度…

硬件开发笔记(二十四):贴片电容的类别、封装介绍,AD21导入贴片电容、原理图和封装库3D模型

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140241817 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

【手写数据库内核组件】01 解析树的结构,不同类型的数据结构组多层的链表树,抽象类型统一引用格式

不同类型的链表 ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 不同类型…

将大型语言模型模块化打造协作智能体

B UILDING C OOPERATIVE E MBODIED A GENTS MODULARLY WITH L ARGE L ANGUAGE M ODELS 论文链接: https://arxiv.org/abs/2307.02485https://arxiv.org/abs/2307.02485 1.概述 在去中心化控制及多任务环境中,多智能体合作问题因原始感官观察、高昂…

1、spring5.2.x源码解读之下载源码和编译

1、下载源码 1.1、git下载源码 git地址:https://gitcode.net/mirrors/spring-projects/spring-framework.git 1.2、源码导入idea 源码下载地址:https://gitcode.net/mirrors/spring-projects/spring-framework/-/archive/5.2.x/spring-framework-5.2…

LeetCode题练习与总结:直线上最多的点数--149

一、题目描述 给你一个数组 points ,其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 示例 1: 输入:points [[1,1],[2,2],[3,3]] 输出:3示例 2: 输入:points [[1,…

Golang | Leetcode Golang题解之第220题存在重复元素III

题目: 题解: func getID(x, w int) int {if x > 0 {return x / w}return (x1)/w - 1 }func containsNearbyAlmostDuplicate(nums []int, k, t int) bool {mp : map[int]int{}for i, x : range nums {id : getID(x, t1)if _, has : mp[id]; has {retu…

安卓备忘录App开发

安卓备忘录APP开发,文章末尾有源码和apk安装包 目标用户: 普通安卓手机用户,需要一个简单易用的备忘录App来记录和管理日常事务。 主要功能: 用户注册: 用户可以创建一个账号,输入用户名和密码。 用户登录: 用户可以通过用户名和密码登录到应用。 用户信息存储: 用户名和…

算法010:无重复字符的最长子串

无重复字符的最长子串. - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/longest-substring-without-repeating-characters/ 使用的算法:滑动窗口 在这个…

Qt/C++音视频开发78-获取本地摄像头支持的分辨率/帧率/格式等信息/mjpeg/yuyv/h264

一、前言 上一篇文章讲到用ffmpeg命令方式执行打印到日志输出,可以拿到本地摄像头设备信息,顺藤摸瓜,发现可以通过执行 ffmpeg -f dshow -list_options true -i video“Webcam” 命令获取指定摄像头设备的分辨率帧率格式等信息,会…