网站首页> 后端开发> Java> Spring Cloud Alibaba 之 Nacos教程详解

Spring Cloud Alibaba 之 Nacos教程详解

时间:2020-11-06 19:59:00 阅读:8231次 来源:互联网

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 上的微服务,可以实现服务下线等功能。

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

  • 集群管理 后面会单独讲解

本文地址:https://www.manongw.com/article/171.html

文章来源:转载于博客园,转载网址为https://www.cnblogs.com/onehm/archive/2020/11/06/13931608.html

版权申明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 ezhongheng@126.com 举报,一经查实,本站将立刻删除。

相关文章
  • 本文主要介绍了IDEA创建Servlet并配置web.xml的实现的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-23 10:52
  • 本文主要介绍了Java Servlet请求重定向的方法的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-10 16:09
  • 本文主要介绍了史上最通俗理解的Java死锁代码演示的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-19 22:27
  • 本文主要介绍了Spring如何基于aop实现操作日志功能的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-10 10:29
  • 本文主要介绍了Java Servlet 运行原理分析的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-10 16:31
  • 本文主要介绍了springboot整合dubbo设置全局唯一ID进行日志追踪的示例代码的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-26 18:52
  • 本文主要介绍了Kafka单节点伪分布式集群搭建实现过程详解的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-12 12:08
  • 本文主要介绍了关于Java8中map()和flatMap()的一些事的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-25 16:12
  • 本文主要介绍了Spring Cloud Alibaba 之 Nacos教程详解的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-06 19:59
  • 本文主要介绍了基于springboot实现文件上传的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-09 09:24