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.mzph.cn/diannao/42376.shtml

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

相关文章

什么是独立服务器?

独立服务器是指一个单独的物理服务器,整体的硬件设施都是独立存在的,有着强大的性能,只需要运行用户个人的数据信息,并且可以享受到独立服务器的硬件与软件,当网站有着大量的用户进行访问或者是需要运行大型的软件时&a…

leetcode热题100.零钱兑换(动态规划)

今天给大家分享一道动态规划的常考题,零钱兑换,很有趣的动态规划题目,希望可以对大家找工作过程中起到帮助,帮助大家拓展下思维 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount &#xf…

6、Redis系统-数据结构-06-跳表

六、跳表(Skiplist) 跳表是一种高效的动态数据结构,可以用于实现有序集合(Sorted Set,Zset)。与平衡树相比,跳表具有实现简单、效率高的优点,因此被 Redis 选用作为有序集合的底层数…

阶段三:项目开发---搭建项目前后端系统基础架构:任务13:实现基本的登录功能

任务描述 任务名称: 实现基本的登录功能 知识点: 了解前端Vue项目的基本执行过程 重 点: 构建项目的基本登陆功能 内 容: 通过实现项目的基本登录功能,来了解前端Vue项目的基本执行过程,并完成基…

如何让代码兼容 Python 2 和 Python 3?Future 库助你一臂之力

目录 01Future 是什么? 为什么选择 Future? 安装与配置 02Future 的基本用法 1、兼容 print 函数 2、兼容整数除法 3、兼容 Unicode 字符串 03Future 的高级功能 1. 处理字符串与字节 2. 统一异常处理…

linux kthread任务管理

目录 一、linux 创建内核线程1.1 kthread_create1.2 kthread_create_worker kthread_queue_work 二、设置线程优先级和调度策略2.1 sched_setscheduler2.2 调度策略 一、linux 创建内核线程 1.1 kthread_create 在 linux 中,可以使用 kthread_create 接口创建内核…

移动校园(7)ii:uniapp路由响应拦截器处理token,以及微信小程序报错当前页面正在处于跳转状态,请稍后再进行跳转....

依据昨天的写完,在token过期之后,再次调用接口,会触发后端拦截,扔进全局错误处理中间件 前端说明提示都没有,只有一个这个,现在优化一下,再写一个类似全局后置守卫,当状态码是401的时…

MySQL——数据连接池

数据库连接 --- 执行完毕 --- 释放(连接到释放的过程十分浪费系统资源) 池化技术:准备一些预先的资源,过来就连接预先准备好的 编写连接池,实现一个接口 DataSource 开源数据源实现(拿来即用)…

增强安全防护,解读智慧校园系统的登录日志功能

在构建智慧校园系统时,登录日志功能扮演着不可或缺的角色,它不仅是系统安全的守护者,也是提升管理效率和确保合规性的有力工具。这一机制详细记录每次登录尝试的方方面面,涵盖了时间戳、用户身份、登录来源的IP地址乃至使用的设备…

phpcms 升级php8.3.8

windows 2008 server 不支持php8.3.8,需升级为windows 2012 1.下载php8.3.8 PHP8.3.9 For Windows: Binaries and sources Releases 2.配置php.ini (1.)在php目录下找到php.ini-development文件,把它复制一份,改名为php.ini (2.)修改php安装目录 根…

《昇思 25 天学习打卡营第 10 天 | ResNet50 迁移学习 》

《昇思 25 天学习打卡营第 10 天 | ResNet50 迁移学习 》 活动地址:https://xihe.mindspore.cn/events/mindspore-training-camp 签名:Sam9029 使用迁移学习进行狼狗图像分类 简介 在机器学习和深度学习中,我们经常面临数据不足的问题。 迁…

python【文件操作】

文件操作 一、创建文件夹二、文件操作模式1.覆盖写入2.读取3.追加 三、 Python脚本在文件中查找和替换文本四、 python清空文件夹 一、创建文件夹 判断文件或者文件夹是否存在 import ospathrD://测试文件夹 if not os.path.exists(path):os.mkdir(path)print(os.path.exists…

C++模板元编程(二)——完美转发

完美转发指的是函数模板可以将自己的参数“完美”地转发给内部调用的其它函数。所谓完美,即不仅能准确地转发参数的值,还能保证被转发参数的左、右值属性不变。 文章目录 场景旧的方法新的方法内部实现参考文献 场景 思考下面的代码: templ…

高防服务器的重要性

在数字化时代,网络安全已成为企业和个人最为关注的问题之一。随着网络攻击的日益频繁和复杂,传统的服务器租用服务已难以满足高安全需求的市场。高防服务器租用应运而生,成为保护网络安全的重要解决方案。本文将探讨高防服务器租用的概念、重…

专业140+总分420+天津大学815信号与系统考研经验天大电子信息与通信工程,真题,大纲,参考书。

顺利上岸天津大学,专业课815信号与系统140,总分420,总结一些自己的复习经历,希望对于报考天大的同学有些许帮助,少走弯路,顺利上岸。专业课: 815信号与系统:指定教材吴大正&#xf…

2-26 基于matlab开发的制冷循环模型

基于matlab开发的制冷循环模型。Simscape两相流域中的制冷循环模型,在simulink中完成多循环温度控制。程序已调通,可直接运行。 2-26 制冷循环模型 Simscape两相流域 - 小红书 (xiaohongshu.com)

Arduino ESP8266 开发环境搭建

Arduino ESP8266 开发环境搭建 很久之前学嵌入式时,用过Arduino8266进行开发,开发成本低、难度小,体验很不错。 近期,又突然要用,遂再次搭建环境,但变动挺多,有些小波折,开贴记录。…

生成式AI应用实列和价值链

生成式AI应用实列和价值链 生成式AI应用实列ChatGPTGeminiGitHub CopilotSynthesia 价值链 生成式AI应用实列 ChatGPT ChatGPT 并不是生成式 AI 行业中唯一的公司。 Stability AI 的 Stable Diffusion 可以根据文本描述生成图像,发布后 90 天内,在 Git…

vue是如何进行监听数据变化的?vue2和vue3分别是什么,vue3为什么要更换

在 Vue 中,数据变化的监听是通过响应式系统来实现的。Vue 2.x 和 Vue 3 在这方面有一些区别。 Vue 2.x 的数据监听 Vue 2.x 使用的是 Object.defineProperty() 方法来实现数据的响应式。当你声明一个 Vue 实例的数据对象时,Vue 将遍历这个对象的属性&a…

清除屏幕上信息的命令clear

清除屏幕上信息的命令clear There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should leave quickly. 清…