NACOS是阿里巴巴的开源服务注册中心和配置中心,并致力于为开发人员提供方便,简单的开源框架。
NACOS有哪些惊人的地方?请参阅下面的图:
从上面的图片来看,不难看到阿里巴巴的野心杀死了弹簧云的三个主要组成部分,即。
本文的目录结构如下:
NACOS的官方文件的引入中有这样的句子,如下所示:
NACOS可帮助您更加敏捷,更容易地构建,交付和管理微服务平台。Nacos是以“服务”为中心的现代应用程序架构的服务基础架构(例如微服务,Yunyuan悬挂)。
这是什么意思?如果您不用担心,则有一个比较受伤的比较。
我相信每个人都使用了这两个组件。你感觉怎么样?
当然,这两个组成部分中最直观的感觉很麻烦,如下:
使用NACOS的开发人员非常酷。我不必自己建立服务。阿里为您准备服务,只是开始;该界面有英语,非常适合初学者。
当然,最重要的原因是上述组件可能面临。例如,尤里卡(Eureka)停止了。谁知道背面的其他组件是否会如此?
当然,初学者当然是官方文件。下面列出的作者列出了与NACOS相关的官方文件:
根据Maven的微服务项目,每个组件版本如下:
注意:Spring Boot,Spring Cloud,Spring Cloud Alibaba的版本不休闲,官方网站Clear%8C%E5%A6%82%E4%B8%E5%9B%9B%BE%EF%EF%BC%9A
不同版本的阿里巴巴也对应于不同组件的版本,如下所示:
确保完全选择文档给出的版本,否则会有意外的错误,不是鸡...
作者使用模块的聚合项目演示。依赖性如下,与上述版本相对应:
注意:如果您的版本与作者不同,请严格按照官方文档给出的版本进行调整,否则您将有意外的错误...
根据上面选择的弹簧云的版本,相应的NACOS版本是直接转到GitHub
下载后,只需解压缩即可。从其目录结构和文件名来看,这是一个弹簧启动项目。
输入目录,有两个脚本,如下:
由于作者是本地窗口,因此直接单击启动项目,以下接口将启动:
在浏览器中输入NACOS的登录接口。
用户名:NACOS;密码:NACOS
成功登录的接口如下:
我相信服务注册和微服务的发现使用了尤里卡。要在本地构建尤里卡微服务,但是整合阿里巴巴的NACO并不那么复杂,只需启动阿里巴巴提供的NACOS服务,以便程序员可以将所有能量带到所有能量的业务条款,以下是一个简单的体系结构图:
关于上述体系结构图,作者创建了两个模块,即(服务提供商),(服务消费者),责任如下:
由于使用了多模型聚合项目,因此仅需要一个NACOS-Provider模块。
1.添加maven依赖项以添加此依赖项,如下所示:
由于父模板中指定的版本,您可以直接在子模块中引入依赖项,并且您不需要指定的版本编号来实现版本管理的效果。
2.配置信息,例如服务名称,端口号,NACOS服务器的地址和配置文件中的其他信息,如下:
3.打开服务注册并发现大多数Spring Boot功能模块都是相同的,您需要使用注释打开特定功能,否则无法引入自动配置。打开服务注册发现的功能,如下:
4.将示范服务NACOS-Provider写为在NACOS中注册的服务提供商。
5.根据上述5个步骤开始项目以完成最基本的服务。现在,您只需要启动NACOS-Provider服务即可。
开始成功后,NACOS服务管理 - >服务列表将在此处找到NACOS-Provider服务在注册中注册的服务,如下所示:
好的,您可以看到服务注册在NACOS中成功,完成任务............
它也已注册以输入NACOS,因此一般步骤是相同的。步骤如下:
1.添加maven依赖项以添加此依赖项,如下所示:
2.配置YML文件也是指定服务名称,端口和NACOS服务器的地址,如下:
3.打开服务注册发现的功能使用标签,如下所示:
4.如何演示演示服务?NACOS-Provider提供了一项服务,因此我们称其为演示。
实际上,NACOS整合了色带,为什么会看到?开口的依赖性将一眼知道,如下所示:
因此,我们可以使用功能区的负载平衡来调用服务。步骤如下:
好的,到目前为止,Nacos-Consume已准备好完成,并且该项目可以在下面开始。
5.在成功启动启动项目之后,将在NACOS的服务列表中检查两项服务,即NACOS-Provider,Nacos-Consumer,如下所示:图:图:
目前,服务提供商和消费者都成功地注册了NACOS,因此下一步是是否可以转让服务的问题。
直接调用NACOS-CAMSUME的接口,然后输入地址:返回信息如下图所示,这意味着相互调用是成功的:
NACOS的服务注册非常简单,比Eureka简单得多。您无需自己建立一个注册中心。
为什么要使用配置管理?实际上,这不仅是微服务的痛点,而且单个服务中有一个痛点。如果在线项目希望修改某个配置,例如添加数据源,是否有必要要停止服务更新吗?显然这是不现实的,那么如何解决?
在单个应用程序之前已经写了一篇文章。如果您有兴趣,您可以看到:如何使Spring Boot的配置“移动”?
在微服务环境中,仍然有很多选项,例如config+bus,ctrip开源Apollo ....
这不是今天的重点。您如何看待Config+Bus?您必须自己构建配置微服务,并且需要集成GitHub等,您是否不舒服?
让我们介绍NACOS如何完美地实现和动态刷新。
一个新的模块用于集成NACOS以实现配置管理。项目结构如下:
我在哪里可以看到NACOS配置列表?在管理平台 - >配置管理 - >配置列表列,如下所示:
由于该项目由模块汇总,因此无需指定版本编号,该版本数如下:
设置文件中NACOS的配置,如下:
Dataid是配置的唯一标识。如何获得值?格式如下:
如下图所示,以下配置添加到NACOS中:
以上是添加的配置。发布后,视图列表如下所示:
NACOS中的配置非常简单。只需阅读本机注释即可。步骤如下:
运行项目成功后,在浏览器中输入地址:http:// localhost:9003/nacos/test/1,然后返回以下结果:
结果,NACOS中的配置已生效。这很简单吗?
想象:既然需求已经改变,我需要将此配置更改为2,那么我会直接更改NACOS中的配置吗?
尝试一下,将NACOS中的配置直接修改为2,如下所示:
目前,我们将访问不重新启动项目:http:// localhost:9003/nacos/test/1,结果如下:
什么?交叉发行什么是什么不变?NACOS可以自动刷新配置吗?
实际上,如果您想自动刷新NACOS的配置,则需要结合本机注释。该注释是否熟悉。在配置中,我们还使用此注释来刷新配置。我们只需要在配置物理类上标记注释,如下:
此时,重新启动后,将NACOS中的此配置更改为3,然后访问http:// localhost:9003/nacos/test/1。结果如下:
想象:正常业务发展至少有三个环境,如下:
因此,每个环境的配置肯定是不同的,因此问题出现了,如何清楚区分NACOS中的上述三种不同配置?
许多人可能会问:格式没有环境区别吗?这不满意吗?
当然,可以区分它,但是微观服务配置不仅仅是这些?一旦您更多,如何找到?多种环境的配置混合在一起,可以区分它吗?
当然,阿里巴巴的NACOS开发团队显然考虑了这个问题。官方建议使用名称空间来解决环境配置隔离问题。
命名空间(命名空间):解决多环境和多阶段数据的隔离问题。在多组不同的环境中,您可以根据指定的环境创建不同的名称空间,以实现多环境数据隔离。
NACOS中提供的命名空间是我们上面创建的配置属于此名称空间,如下所示:
当然,我们可以根据业务需求创建自己的命名空间。操作如下:
陈创建了三个,即开发,测试和产品,如下所示:
注意:在上图中,系统的唯一ID会自动生成。随后的指定不同名称空间使用此ID。
创建完成后,您可以在配置列表上方看到不同的命名空间,如下所示:
由于配置了NACOS中的名称空间配置,因此微服务如何配置?如前所述,NACOS指定的命名空间是,因此如何指定项目中的名称空间?
实际上,这很简单,假设在此命名空间中添加一个,如下所示:
目前,您只需要在配置中指定以下配置:
注意:必须在配置文件中指定命名空间,否则不会生效。
在这一点上,所有配置都已经完成,启动了项目,并且浏览器访问http:// localhost:9003/nacos/test/1。结果如下所示:
想象以下场景:有两个微服务,一个是订单系统,另一个是用户系统,但是它们具有相同的配置。例如,如何区分它?
顾名思义,目前,小组派上用场了,小组意味着分组。
组:NACOS中的一组配置集是组织配置的维度之一。简而言之,可以将不同系统或微服务的配置文件放在组中。如果NACOS未指定组,则默认数据包为Default_group。
在上述情况下,订单系统和用户系统可以分别分为一个组,例如。当然,这是一个相对细的grain组。根据企业的业务,一组可能会有更多的微服务。
以下是NACOS的新产品。命名空间是,该组如下图所示:
此时命名空间中的配置如下所示:
在配置文件中指定组,配置如下:
注意:组配置与名称空间相同,并将其配置在文件中。
在这一点上,所有配置都已经完成,启动了项目,并且浏览器访问http:// localhost:9003/nacos/test/1。结果如下所示:
NACOS实施管理和动态配置刷新非常简单。总结以下步骤:
场景:项目的微服务数量逐渐增加,并且将有相同的配置。然后,我们可以提取与项目项目的配置相同的配置,例如集群中的数据源信息。
NACOS的共享配置可以完美地解决上述问题。配置也很简单。没有办法,它是如此强大。
陈在这里显示了两种共享配置,即如下所示:下面:
注意:确保有后缀或
配置中的内容如下:
配置中的内容如下:
创建一个新的模块Nacos-Config-Share来演示效果,依靠相同
配置如下:
上面的配置几乎相同,指定为命名空间,NACOS服务地址...
当然,除了上述配置外,这绝对还不够。要共享配置,您需要添加以下配置:
如果您想查看效果,则必须在引言中引入您,如下所示:
在上面的配置之后,启动NACOS-CONFIG-SHARE项目,请访问:http:// localhost:9003/nacos/test/1,结果如下所示:
动态刷新配置将不再在这里演示,请自己播放...
如前所述,您是否想过一个问题?NACOS的一系列配置存储在哪里?
实际上,NACOS默认情况下使用嵌入式数据库。可以在NACOS-Server文件下的目录中对此进行验证,如下所示:
因此,问题是,如何使用自己的数据库存储这些配置?
目前,NACO仅支持数据库和版本要求:
首先在MySQL中构建一个新的数据库(休闲名称),然后在NACOS中执行SQL脚本。该脚本在NACOS服务器文件夹中,如下所示:图:
执行此脚本,该表将自动创建,如下图所示:
NACOS服务器也是一个春季启动项目。当然,如果要连接自己的数据库,则需要配置数据源。那么在哪里配置?
配置文件也位于NACOS-Server中的纠缠中,如下所示:
您只需要取消MySQL配置的注释并配置您自己的数据源,如下所示:
修改后,将NACOS服务器重新启动。
如何验证它是否耐用?它非常简单,只需创建一个配置,然后检查表中是否存在,如下图所示:
足够了,它太高了,再用一次,它真的很大......................................................
NACOS建议群集模式部署,以避免单点故障,因此如何构建群集?请参阅官方文档:https://nacos.io/zh-cn/docs/cluster-mode-mode-quick-start。html
没什么可说的,窃取官方网站的建筑图,如下:
上面的图片是什么意思?说实话,这个文件真的不好。许多初学者一眼就惊呆了,请参阅陈的建筑,如下:
阅读了陈谅解备忘录的图片后,该请求进来并将其转发给NACOS群集。当然,为了保持高可用性,数据库必须是群集模式。
NACOS正式推荐Linux下的群集模式,因此Chen试图在Linux环境中设置。NGINX和MYSQL不再在此处演示如何构建群集。这不是当今的重点。NACOS簇的主要演示方法主要证明。
在github上下载您的相应版本,陈的版本为1.2.1,地址:https://github.com/alibaba/nacos/nacos/releases/tag/1.2.1
找到后缀的文件下载,如下所示:
由于条件的限制,Chen仅在一台服务器上启动了三个NACOS服务演示。NACOS的端口分别为8848、8849和8850。
修改NACOS NACOS的默认端口号为8848,因此如何修改端口?您只需要修改目录中的一个,如下图所示:
修改群集配置,因此如何配置群集?目录中有一个文件,如下所示:
您只需要在目录中复制此文件,配置的内容如下:
这是什么意思?这是服务器的IP地址。在此处填写服务器的IP,后者是NACOS的端口号。
修改数据源。在持久性中已经谈论过这一点。您只需要替换数据源,如下图所示:
在上述步骤之后,已经配置了NACOS群集,现在启动了NACOS,命令如下:
开始是成功的,访问任何港口的NACOS服务,他们在中国建立的三个节点将看到以下数字:
此时,NACOS群集已经完成...
NGINX群集在此处设置,并直接在架子上配置-alone nginx.modify nginx的conf文件,内容如下:
我相信每个人都可以理解,而且我不会在这里做太多的解释...配置完成后,启动nginx并直接访问:http:// ip/nacos。
既然群集已经建立,则项目中必须有两种方式。有两种方法,以下介绍。
第一种类型:通过直接连接进行配置,如下:
第二个:直接连接到nginx,如下:
NACOS簇非常简单。唯一的配置是设置三个NACOS服务。这也是NACOS的设计概念,它允许开发人员尽快开始并专注于业务开发。
让我们简要回顾CAP的概念,如下所示:
通常,分布式系统必须优先确保P,其余的是C和A的选择。
当然,不同注册中心的上限也有所不同,如下:
Spring Cloud的高级专栏已经很长时间了。一段时间以前,我一直在忙于工作。铁粉知道陈完成了两列文章,即春季靴高级,Mybatis Advanced;珍惜它,赞美是一种美德!
上面的源代码已上传到GitHub,并需要对关键字采集的回复。
作者:代码猿技术专栏