Spring Cloud Alibaba(3)---Nacos概述
Spring Cloud Alibaba(3)---nacos概述
上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Nacos。
上一篇博客地址:SpringCloudAlibaba的概述
一、概述
1、背景
去了解nacos是因为自己有个项目采用的是springcloud全家桶,因为之前采用的是比较老的Eureka,也是因为Eureka 2.0不开源的原因,所以想采用nacos来作为服务注册发现中心。
现在也越来越多的公司开始推荐使用nacos,我个人认为nacos首先有一个很大的优点就是把 注册服务中心 和 配置中心 合二为一,而且还有控制台界面,更加简便的让我们去管理
微服务。
2、官方概览
我们先来看下官方是怎么介绍nacos的: Nacos官方文档
Nacos 致力于帮助您发现、配置和管理微服务。
从这里描述就是Nacos主要有三方面的功能: 服务注册发现, 服务配置, 服务管理。
Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
动态服务发现
动态其中一个方面, 指的是热的含义. 比如服务器注册了, 不用重启, 就能发现。
动态配置
也是同样的道理,服务配置修改了, 不用重启服务, 能够自动识别配置修改。
服务元数据及流量管理
这里应该是和负载均衡有关系了. 流量怎么分配, 根据元数据设置, 进行管理。我们可以通过nacos来设置某个微服务每秒可以访问的次数。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台
如何能够是构建, 交付,管理 微服务平台变得更容易,更快捷呢? 想到了自动化部署那一套. 有一个界面, 点点按钮, 就开始操作了. 不用一台服务器, 一台服务器的去处理。
3、nacos是什么?
官方第一句话就是
服务(Service)是 Nacos 世界的一等公民。
这个有点客户是上帝的意思,也就是对于Nacos而言,服务是它的上帝, nacos就是全部围绕着服务转。Nacos支持发现,配置和管理几乎所有类型的服务
Kubernetes服务
gRPC和Dubbo RPC服务
Spring Cloud RESTful服务
Nacos 的关键特性包括:
服务发现和服务健康监测
Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TODO 或HTTP&API查找和发现服务。
Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等)服务的健康检查
Nacos 提供了 agent 上报模式和服务端主动检测2种健康检查模式。Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。
动态配置服务
1、动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。
2、动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。
3、配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。
4、Nacos 提供了一个简洁易用的UI (控制台样例 Demo) 帮助您管理所有的服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,
帮助您更安全地在生产环境中管理配置变更和降低配置变更带来的风险。
动态DNS服务
动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以 DNS 协议为基础的服务发现,以帮助您消除耦合到厂商私有服务发现 API 上的风险。
服务及其元数据管理
Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。
4、Nacos 地图
这里展示官方给的一张图
特性大图:要从功能特性,非功能特性,全面介绍我们要解的问题域的特性诉求
架构大图:通过清晰架构,让您快速进入 Nacos 世界
业务大图:利用当前特性可以支持的业务场景,及其最佳实践
生态大图:系统梳理 Nacos 和主流技术生态的关系
优势大图:展示 Nacos 核心竞争力
战略大图:要从战略到战术层面讲 Nacos 的宏观优势
二、nacos和Eureka比较
Nacos与Eureka均提供注册中心和服务治理功能,以下为两者差异和选型方案。
功能差异
部署安装
稳定及扩展性
选型建议
采用Eureka方案的考虑
1、想用Spring Cloud原生全家桶
2、想用本地文件和Git作为配置管理的,将配置与服务分开管理
采用Nacos方案的考虑
1、想在线对服务进行上下线和流量管理
2、不想采用MQ实现配置中心动态刷新
3、不想新增配置中心生产集群
4、考虑引入Spring Cloud Alibaba生态
三、nacos和apollo比较
如果仅仅作为配置中心的比较,它们的区别并不大,而且性能各方面都挺好的。如果说优点,那么相比于apollo:
1、Nacos部署简化,Nacos整合了注册中心、配置中心功能,且部署相比apollo简单,方便管理和监控。
2、 apollo容器化较困难,Nacos有官网的镜像可以直接部署,总体来说,Nacos比apollo更符合KISS原则
3、性能方面,Nacos读写tps比apollo稍强一些
结论
:使用Nacos代替Eureka和apollo
四、nacos快速开始
说明
按照官方文档现在nacos已经到2.0.0,但我去拉取最新zip包时,发现我2.0.0和1.4.0版本都启动不起来,找了好久也没有找到有其他人出现过,然后换成1.3.2版本就可以
了,这可能是个系统bug,哈哈。
这里简单说下步骤,其实很简单,按照官方的来就行。官方地址:Nacos 快速开始
1、环境准备
Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
64 bit JDK 1.8+;下载 & 配置。
Maven 3.2.x+;下载 & 配置。
2、下载源码或者安装包
您可以从 最新稳定版本 下载 nacos-server-$version.zip 包。
下载后解压,进入nacos/bin目录
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin
3、启动服务器
Linux/Unix/Mac启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
bash startup.sh -m standalone
Windows启动命令(standalone代表着单机模式运行,非集群模式):
cmd startup.cmd -m standalone
4、访问
访问地址: localhost:8848/nacos
默认账号密码: nacos/nacos
这篇只是简单介绍,下一步会讲解和实际案例来讲解nacos做为配置中心和注册中心的案例。
参考
1、nacos简介以及作为注册/配置中心与Eureka、apollo的选型比较
2、Nacos 文档
3、nacos初识, 和eureka的比较, 在docker上安装nacos
少说多做,句句都会得到别人的重视;多说少做,句句都会受到别人的忽视。(2)
Spring Cloud Alibaba(3)---Nacos概述的更多相关文章
- Spring Cloud Alibaba(2)---Nacos概述
Spring Cloud Alibaba(2)---nacos概述 上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Naco ...
- Spring Cloud Alibaba(4)---Nacos(注册中心)
Nacos(注册中心) 有关Spring Cloud Alibaba之前写过三篇文章. Spring Cloud Alibaba(1)---入门篇 Spring Cloud Alibaba(2)--- ...
- Spring Cloud Alibaba(5)---Nacos(配置中心)
Nacos(配置中心) 有关Spring Cloud Alibaba之前写过四篇文章,这篇也是在上面项目的基础上进行开发. Spring Cloud Alibaba(1)---入门篇 Spring C ...
- Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本
Nacos持久化Mysql8.0版本 有关Nacos之前写过三篇文章. Spring Cloud Alibaba(3)---Nacos概述 Spring Cloud Alibaba(4)---Naco ...
- Spring Cloud Alibaba 使用nacos 注册中心
### 背景 上一文我们讲到了如何去搭建注册中心,这一次我们讲述如何使用nacos作为注册中心 ### spring-cloud-alibaba-basis 创建基础依赖 首先我们创建一个spring ...
- Spring Cloud Alibaba 教程 | Nacos(一)
什么是Nacos Nacos是一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台. Nacos 致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态 ...
- Spring Cloud Alibaba 之Nacos
Nacos 技术讲解 一提到分布式系统就不的不提一下 CAP 原则 什么是CAP CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency).可用性(Availability ...
- Spring Cloud Alibaba 整合 Nacos 实现服务配置中心
在之前的文章 <Nacos 本地单机版部署步骤和使用> 中,大家应该了解了 Nacos 是什么?其中 Nacos 提供了动态配置服务功能 一.Nacos 动态配置服务是什么? 官方是这么说 ...
- Spring Cloud Alibaba 之 Nacos
Nacos 技术讲解 一提到分布式系统就不的不提一下 CAP 原则 什么是CAP CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency).可用性(Availability ...
随机推荐
- Sapper:迈向理想的 Web 应用框架
扎稳阵脚,再进一步. 注意:原文发表于2017-12-31,随着框架不断演进,部分内容可能已不适用. 给迫不及待的小伙伴们的快速入门:Sapper 文档 和快速模板 starter template ...
- 使用Docker快速搭建Nginx+PHP-FPM+MySQL+phpMyAdmin环境
一.概述 环境介绍 操作系统:centos 7.6 docker版本:19.03.8 ip地址:192.168.31.34 本文将介绍如何使用单机部署Nginx+PHP-FPM环境 二.Nginx+P ...
- 2021-2-28:调用 System.gc() 后究竟发生了什么?
首先,根据 DisableExplicitGC 这个 JVM 启动参数的状态,确定是否会 GC,如果需要 GC,不同 GC 会有不同的处理. 1. G1 GC 的处理 如果是 System.gc() ...
- Docker安装Openvas
目录 安装 在本机内运行 在局域网内运行 关闭 参考 安装 ➜ ~ docker search openvas NAME DESCRIPTION STARS OFFICIAL AUTOMATED mi ...
- 解读KMP算法
前后断断续续搞了5个月,每次都以为自己懂了, 但是要写的时候都不知从何下手,然后又是各种找博客,看帖子,所以这次试着用自己的语言写一个博客. 首先,KMP算法就是从一个模板字符串(S) 中匹配目标字符 ...
- SQL Database for Modern Developers
好书分享,面向开发者的Azure SQL Database最佳实践,也适用SQL Server 2016以上的版本.应对不同场景使用的数据库功能,包括内存表,列存储表,非聚集列存储索引,JSON等等. ...
- WPF 应用 - 通过 js 缩放 System.Windows.Controls.WebBrowser 的内容
1. 前提 原本是在大屏上展示系统,系统有个功能是加载第三方的网站,第三方网站按照大屏的分辨率写死了宽高: 现需要改到小屏展示系统,而这个第三方的网站不能随着 WebBrowser 窗口的尺寸调整网站 ...
- 一起来学习LiteOS中断模块的源代码
摘要:本文带领大家一起剖析了LiteOS中断模块的源代码. 本文我们来一起学习下LiteOS中断模块的源代码,文中所涉及的源代码,均可以在LiteOS开源站点https://gitee.com/Lit ...
- 时间&空间(complexity)
时间&空间复杂度 时间复杂度: 通俗来说就是随着数据量的增加,程序运行的时间花费量是怎么变化的,时间复杂度常用大o表示.举个例子,猜数字,猜10个,100个.1000个,猜数的数据量是在增加的 ...
- python 实现输出一个等腰三角形
这个问题实际上是一个数学问题,我们主要找出每行的规律就可以根据规律来书写代码 """ 2 代码实现输出一个等腰三角形,实际上就是一个等差数列求各项的一个数学> 问题 ...