Nacos 的一致性协议介绍与在liunx 上安装

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 在介绍一致性协议前先了解一下CAP理论Consistency 一致性,在分布式系统中的所有数据备份,在同一时刻是否同样的值;Availability 可用性,只要收到用户的请求,服务器就必须给出回应;Partition tolerance 分区容错性,以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择

Alibaba Nacos 基本架构和概念

Alibaba Nacos 基本架构解读
​ 1. 服务 配置服务 名字服务
e8844a3505ed4f278605ced7e5bb0251.png

Alibaba Nacos 概念解读
1 服务注册中心 :它是服务 实例及元数据的数据库;服务注册中心可能会调用服务实例的健康检查 api 来验证它是否能够处理请求

2.服务元数据 :包括服务端点(endpoints) 服务标签 服务版本号 服务实例权重 路由规则 安全策略等描述服务的数据

服务提供 消费方 提供可复用和可调用服务的应用方 会发起对某个服务调用的应用方
配置 在系统开发过程中通常会将一些需要变更的参数 变量等从代码中分离出来独立管理,以独立的配置文件的形式存在
去官网下载 https://github.com/alibaba/nacos/releases

去解压 tar -xzvf nacos-server-2.0.0.tar.gz

单机模式启动 ./startup.sh -m standalone

把Nacos 修改为mysql 数据 配置如下

进入nacos 里面进入conf
输入 vim application.properties 把里面的 #去掉

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=Zhouwei_520

访问地址为 http://127.0.0.1:8848/nacos 然后会出现 登录页面 账号和密码都是nacos

特性 zookeeper nacos
一致性协议 CP CP+AP
健康检查 Keep Alive TCP / HTTP / MySql / Client beat
负载均衡 权重 / selector / metadata
多数据中心 不支持 支持
跨注册中心同步 不支持 支持
雪崩保护
访问协议 TCP HTTP / DNS
K8s集成 不支持 支持
dubbo集成 -- 支持

一致性协议

在介绍一致性协议前先了解一下CAP理论

  • Consistency 一致性,在分布式系统中的所有数据备份,在同一时刻是否同样的值;
  • Availability 可用性,只要收到用户的请求,服务器就必须给出回应;
  • Partition tolerance 分区容错性,以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择

分布式系统必须具有分区容错性,一致性与可用性只能选择其一,如果选择一致性,必须在某节点写入时,数据同步到其他节点完成后才可以响应下一个请求,这段时间内服务是不可用的;反之选择可用性,则一致性无法保证,这就是CAP理论

作为注册中心,P要保证,C和A需要权衡;常见的一致性协议有paxos、raft,他们都是强一致性协议(CP),然而今天要介绍的nacos的distro协议时弱一致协议(AP),即最终一致性协议。注册中心到底该是AP还是CP,推荐阅读阿里中间件的博客[《阿里巴巴为什么不用 ZooKeeper 做服务发现?
》](https://links.jianshu.com/go?to=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMjM5MDE0Mjc4MA%3D%3D%26mid%3D2651007830%26idx%3D1%26sn%3D7382412cd4a2243b34f69c3cf4aa5a20%26scene%3D21)

为啥要保持一致性?

因为Nacos 是一个需要存储数据的中间件,因此就需要在 Nacos 内部实现数据存储。单机下其实问题不大,简单的内嵌关系型数据库即可;但是集群模式下,就需要考虑如何保障各个节点之间的数据一致性以及数据同步,而要解决这个问题,就不得不引入共识算法,通过算法来保障各个节点之间的数据的一致性。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
安全 Linux Nacos
使用Docker运行Nacos并安装cpolar内网穿透工具实现远程访问
使用Docker运行Nacos并安装cpolar内网穿透工具实现远程访问
869 0
|
Java Nacos
对于Nacos 2.x版本,默认是通过gRPC协议进行通信的
对于Nacos 2.x版本,默认是通过gRPC协议进行通信的
1741 7
|
4月前
|
人工智能 Java API
Nacos 3.1.0 正式发布,支持 A2A 注册中心与 MCP 注册协议增强
3.1.0 发布核心全新功能-Agent 注册中心,助力构建基于 A2A 协议的多 Agent 协作的AI应用,同时 MCP 注册中心适配最新 MCP 官方注册中心协议及升级优化多项核心功能。
1161 46
|
存储 算法 Nacos
Nacos支持哪些协议
Nacos支持哪些协议
|
10月前
|
人工智能 JSON API
Nacos 发布 MCP Registry,实现存量应用接口“0改动”升级到 MCP 协议
MCP(Model Calling Protocol)生态快速发展,Nacos作为MCP Registry,通过与Higress网关结合,实现“0代码”将存量API转化为MCP协议接口。本文详细解析了Nacos如何快速构建MCP Server,包括工具列表暴露、协议转换原理及优势。同时,通过高德API实例演示“0改动”适配流程。Nacos 3.0正式发布,定位AI应用服务管理平台,支持动态服务发现与配置管理,助力MCP生态发展。欢迎参与社区共建!
1759 1
|
存储 Nacos 数据安全/隐私保护
【SpringCloud】Nacos的安装、Nacos注册、Nacos服务多级存储模型
【SpringCloud】Nacos的安装、Nacos注册、Nacos服务多级存储模型
347 1
|
Java 关系型数据库 MySQL
安装单机版nacos
安装单机版nacos
|
Nacos 微服务
Zookeeper 的 ZAB 协议 以及 zookeeper 与 nacos 注册中心比对
Zookeeper 的 ZAB 协议 以及 zookeeper 与 nacos 注册中心比对
481 4
|
存储 Kubernetes 关系型数据库
Kubernetes(K8S) 安装Nacos,报 No DataSource set
Kubernetes(K8S) 安装Nacos,报 No DataSource set
300 0
|
负载均衡 Java Linux
黑马头条01,环境搭建,今日头条的介绍,今日头条的功能架构图,技术栈的说明,服务层,nacos(奶靠丝)安装,安装在Linux服务器上环境准备,
黑马头条01,环境搭建,今日头条的介绍,今日头条的功能架构图,技术栈的说明,服务层,nacos(奶靠丝)安装,安装在Linux服务器上环境准备,