Spring Cloud Alibaba 之 Nacos教程详解

网友投稿 334 2022-11-14


Spring Cloud Alibaba 之 Nacos教程详解

Nacos 技术讲解

一提到分布式系统就不的不提一下 CAP 原则

Nacos简介

Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、配http://置管理、服务治理的综合性解决方案。

官方介绍是这样的:

Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构的服务基础设施。

什么是CAP

CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。

CAP 的原则下 Alibaba Naos 同时支持AP和CP模式,他根据服务注册选择临时和永久来决定走AP模式还是CP模式,他这里支持Chttp://P模式对于我的理解来说,应该是为了配置中心集群,因为nacos可以同时作为注册中心和配置中心,因为他的配置中心信息是保存在nacos里面的,假如因为nacos其中一台挂掉后,还没有同步配置信息, 就可能发生配置不一致的情况., 配置中心的配置变更是服务端有监听器,配置中心发生配置变化, 然后服务端会监听到配置发生变化,从而做出改变

下面我搭建一个简单的微服务系统,针对这个系统进行讲解

(个人服务器,流量有限 ,请大家珍惜)点击项目体验地址https://ityml.com/index

系统架构图:

这个主要完成一个一个前端页面进行实时计算的功能,大家可以理解为一个简单的计算器.

website : 前端

Gateway :服务网关

UserCenter : 用户服务

MqCenter: 消息服务

AlogirthmCehttp://nter: 计算服务

ConfigCenter: 配置中心

ServiceDiscovery(Nacos):服务发现

CPP 为C 语言编写的计算流程

此项目包括用到的技术栈包括,Spring Cloud Alibaba/Spring Boot/mysql/MQ/linux 等

什么是Nacos

官方文档

Nacos提供「注册中心」、「配置中心」和「动态DNS服务」三大功能。

上面是Nacos 的官网大家可以自行了解下,对Nacos 做一个深入的了解,正所谓师傅领进门,修行在个人,大家还要多学习,多了解

天也不早了 ,人也不少了,闲话少说,先干正事。

** Nacos 下载地址**

选择对应版本进行解压(注意 Nacos 解压后 是一个完整的运行包,如果用的不熟练,不要动里面的配置信息)

下载完成后解压后进入到 bin 目录 在终端运行命令

MAC

sh startup.sh -m standalone

(standalone代表着单机模式运行,后看会单独讲解集群模式的搭建和启动方法)Windows

cmd startup.cmd

启动成功后 默认账号密码 nacos/nacos(初始账号密码)

登录后可以看到右上角中英文切换,英语不好的同学们 可以切换到中文

配置管理主要是用来做项目配置,比如配置文件等可以用nacos来管理 因为nacos不仅仅是服务中心,也是配置中心(后面有讲)

我们开发项目的配置一般有以下几种做法:

1. 硬编码--作为类字段的形式存在,导致:动态修改困难,没有持久化

2. 配置文件( properties、yml 文件等)--导致:配置动态变更,可能需要重启应用,让配置生效。当然,你也可以在代码中增加一个定时任务,如每隔 10s 读取配置文件内容,让最新的配置能够及时在应用中生效,这样也就免 去了重启应用这个“较重”的运维操作。

3. DB 配置表--导致:配置动态变更,可能需要通过暴露管理接口去解决。

Nacos 真正将配置从应用中剥离出来,统一管理,优雅的解决了配置的动态变更、持久化、运维成本等问题。应用自身既不需要去添加管理配置接口,也不需要自己去实现配置的持久化,更不需要引入“定时任务”以便降低运维成本。Nacos 提供的配置管理功能,将配置相关的所有逻辑都收拢,并且提供简单易用的 SDK,让应用的配置可以非常方便被 Nacos 管理起来不仅如此,Nacos提供 DNS-F功能, 可以与K8S、Spring Cloud和Dubbo等多个开源产品进行集成,实现服务的注册功能。

服务发现使用来管理注册到nacos 上的微服务,可以实现服务下线等功能。

命名空间是用来做服务环境区分,当项目需要开发,测试, 生产等多个不同的配置, 命名空间就可以做配置隔离。

集群管理 后面会单独讲解


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:三分钟完成 ubuntu16.04初始化,Java,maven,docker环境的部署问题
下一篇:Springboot项目实现Mysql多数据源切换的完整实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~