1.CAP理论
-
CAP三要素:
- 一致性(Consistency): 所有节点在同一时间具有相同的数据
- 可用性(Availability) :保证每个请求不管成功或者失败都有响应
- 分区容错性(Partition tolerance) :系统中任意信息的丢失或失败不会影响系统的继续运作
-
CAP原则:
- 满足CA舍弃P,也就是满足一致性和可用性,舍弃容错性。但是这也就意味着你的系统不是分布式的了,因为涉及分布式的想法就是把功能分开,部署到不同的机器上。
- 满足CP舍弃A,也就是满足一致性和容错性,舍弃可用性。如果你的系统允许有段时间的访问失效等问题,这个是可以满足的。就好比多个人并发买票,后台网络出现故障,你买的时候系统就崩溃了。
- 满足AP舍弃C,也就是满足可用性和容错性,舍弃一致性。这也就是意味着你的系统在并发访问的时候可能会出现数据不一致的情况。
结论:事实证明,大多数都是牺牲了一致性。像12306还有淘宝网,就好比是你买火车票,本来你看到的是还有一张票,其实在这个时刻已经被买走了,你填好了信息准备买的时候发现系统提示你没票了。
2.常见的注册中心比较
Nacos | Eureka | Consul | CoreDNS | Zookeeper | |
---|---|---|---|---|---|
一致性协议 | CP+AP | AP | CP | — | CP |
健康检查 | TCP/HTTP/MYSQL/Client Beat | Client Beat | TCP/HTTP/gRPC/Cmd | — | Keep Alive |
负载均衡策略 | 权重/ | ||||
metadata/Selector | Ribbon | Fabio | RoundRobin | — | |
雪崩保护 | 有 | 有 | 无 | 无 | 无 |
自动注销实例 | 支持 | 支持 | 支持 | 不支持 | 支持 |
访问协议 | HTTP/DNS | HTTP | HTTP/DNS | DNS | TCP |
监听支持 | 支持 | 支持 | 支持 | 不支持 | 支持 |
多数据中心 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
跨注册中心同步 | 支持 | 不支持 | 支持 | 不支持 | 不支持 |
SpringCloud集成 | 支持 | 支持 | 支持 | 不支持 | 支持 |
Dubbo集成 | 支持 | 不支持 | 支持 | 不支持 | 支持 |
K8S集成 | 支持 | 不支持 | 支持 | 支持 | 不支持 |
3.什么是Nacos
-
Nacos用于服务的注册发现与服务的配置管理。
-
Nacos提供了简单易用的Web Console。可以帮助开发者快速的实现服务发现、服务配置管理、服务元数据等需求.
4.基本架构及概念
概念 | 描述 |
---|---|
服务 (Service) | 服务是指一个或一组软件功能 |
服务注册中心 (Service Registry) | 服务注册中心,它是服务,其实例及元数据的数据库。 服务实例在启动时注册到服务注册表,并在关闭时注销。 |
服务元数据 (Service Metadata) | 服务元数据是指包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规则、安全策略等描述服务的数据 |
服务提供方 (Service Provider) | 提供可复用和可调用服务的应用方 |
服务消费方 (Service Consumer) | 发起对某个服务调用的应用方 |
配置 (Configuration) | 在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。 |
配置管理 (Configuration Management) | 在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动统称为配置管理。 |
名字服务 (Naming Service) | 提供分布式系统中所有对象(Object)、实体(Entity)的“名字”到关联的元数据之间的映射管理服务 |
5.下载
6.安装
- 解压压缩包
7. 启动
- 在文件bin目录下打开命令窗口
- 输入startup.cmd -m standalone 回车即可
这里会有一个小问题,如果jdk的版本位数和自己电脑操作系统位数不一样的话,他会启动不起来,记得检查自己的jdk版本
8.WEB控制台
- 如果成功启动的话即可在命令窗口得到访问路径,复制进浏览器打开即可
9. 登录WEB控制台
- 账号:nacos
- 密码nacos
- WEB控制台管理页面
今天的总结就到这里了,我是一名在校大学生,如果有些地方总结的不好,望各位大佬多指正