Spring Cloud Alibaba 之 Nacos教程详解

 更新时间:2020年11月06日 16:35:22   作者:ityml  
Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、配置管理、服务治理的综合性解决方案。这篇文章主要介绍了Spring Cloud Alibaba 之 Nacos的相关知识,需要的朋友可以参考下

Nacos 技术讲解

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

Nacos简介

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

官方介绍是这样的:

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

什么是CAP

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

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

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

系统架构图:

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

  • website : 前端
  • Gateway :服务网关
  • UserCenter : 用户服务
  • MqCenter: 消息服务
  • AlogirthmCenter: 计算服务
  • 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 上的微服务,可以实现服务下线等功能。
  • 命名空间是用来做服务环境区分,当项目需要开发,测试, 生产等多个不同的配置, 命名空间就可以做配置隔离。
  • 集群管理 后面会单独讲解

到此这篇关于Spring Cloud Alibaba 之 Nacos的文章就介绍到这了,更多相关Spring Cloud Alibaba Nacos内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java InterruptedException 异常中断的实现

    java InterruptedException 异常中断的实现

    本文主要介绍了java InterruptedException 异常中断的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • 创建Maven项目和Spring IOC实例过程解析

    创建Maven项目和Spring IOC实例过程解析

    这篇文章主要介绍了创建Maven项目和Spring IOC实例过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • java中实现token过期失效超时

    java中实现token过期失效超时

    在Java应用程序中,为了确保安全性和保护用户数据,一种常见的做法是使用Token进行身份验证和授权,Token是由服务器生成的具有一定时效的令牌,用于识别和验证用户身份,当Token失效后,用户将无法再进行相关操作,从而提高系统的安全性
    2023-10-10
  • Spring中@Scheduled注解的参数详解

    Spring中@Scheduled注解的参数详解

    这篇文章主要介绍了Spring中@Scheduled注解的参数详解,@Scheduled注解的使用这里不详细说明,@Scheduled注解有几个参数需要说明一下,直接对8个参数进行讲解,需要的朋友可以参考下
    2023-11-11
  • springboot接入mq的方法示例

    springboot接入mq的方法示例

    本文主要介绍了springboot接入mq的方法示例,主要实现配置以及实现一个简单的发送、接收消息的例子,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • MyBatis查询数据,赋值给List集合时,数据缺少的问题及解决

    MyBatis查询数据,赋值给List集合时,数据缺少的问题及解决

    这篇文章主要介绍了MyBatis查询数据,赋值给List集合时,数据缺少的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • k8s+springboot+CronJob定时任务部署实现

    k8s+springboot+CronJob定时任务部署实现

    本文主要介绍了k8s+springboot+CronJob定时任务部署实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Spring Boot 配置 IDEA和DevTools 热部署的方法

    Spring Boot 配置 IDEA和DevTools 热部署的方法

    这篇文章主要介绍了Spring Boot 配置 IDEA和DevTools 热部署的方法,需要的朋友可以参考下
    2018-02-02
  • 手动模拟JDK动态代理的方法

    手动模拟JDK动态代理的方法

    这篇文章主要介绍了手动模拟JDK动态代理的方法,帮助大家更好的了解和学习Java 代理的相关知识,感兴趣的朋友可以了解下
    2020-11-11
  • Spring boot实现应用打包部署的示例

    Spring boot实现应用打包部署的示例

    本篇文章主要介绍了Spring boot实现应用打包部署的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11

最新评论