1.spring cloud alibaba 概述
1.1 什么是Spring Cloud alibaba
•SpringCloud Alibaba是Alibaba结合自身的微服务实践,在SpringCloud项目基础上,开源的一套微服务全家桶。
•SpringCloud Alibaba的相关组件是经历过双十一大促考验的产品,稳定性较高。
1.2 SpringCloud Alibaba与SpringCloud关系
•SpringCloud Alibaba是SpringCloud的子项目
•SpringCloud Alibaba是依赖SpringCloud相关的标准实现的一套微服务的全家桶。
1.3 SpringCloud Alibaba主要功能
•分布式配置:分布式系统的外部配置管理,配置中心可视化、分环境配置控制。配置动态更新能力。
•服务注册与发现:适配SpringCloud标准的服务注册与服务发现管理。
•服务限流与降级:可通过控制台进行实时的修改限流降级的规则,实时的Metrics监控。支持多种协议
•消息驱动:基于RocketMQ实现消息驱动的业务场景开发。
•分布式事务:开源Seata使用@GlobalTransactional注解,零侵入的实现分布式事务的支持。
1.4 SpringCloud Alibaba核心组件
•Nacos (配置中心与服务注册与发现)
Nacos实现了服务的配置中心与服务注册发现的功能,
Nacos可以通过可视化的配置降低相关的学习与维护成本,
实现动态的配置管理与分环境的配置中心控制。
同时Nacos提供了基于http/RCP的服务注册与发现功能。
•Sentinel (分布式流控)
Sentinel是面向分布式微服务架构的轻量级高可用的流控组件,以流量作为切入点,从流量控制,熔断降级,系统负载保护等维度帮助用户保证服务的稳定性。
常用于实现限流、熔断降级等策略。
•RocketMQ (消息队列)
RocketMQ基于Java的高性能、高吞吐量的消息队列,在SpringCloud Alibaba生态用于实现消息驱动的业务开发,
常见的消息队列有Kafka、RocketMQ、RabbitMQ等
•Seata (分布式事务)
既然是微服务的产品,那么肯定会用到分布式事务。
Seata就是阿里巴巴开源的一个高性能分布式事务的解决方案。
•Dubbo (RPC)
1.5 版本
2. Nacos 基础
2.1 CAP理论
•CAP三要素:
–一致性(Consistency): 所有节点在同一时间具有相同的数据
–可用性(Availability) :保证每个请求不管成功或者失败都有响应
–分区容错性(Partition tolerance) :系统中任意信息的丢失或失败不会影响系统的继续运作
•CAP 原则:三个要素最多只能同时实现两点
–1)满足CA舍弃P,也就是满足一致性和可用性,舍弃容错性。但是这也就意味着你的系统不是分布式的了,因为涉及分布式的想法就是把功能分开,部署到不同的机器上。
–2)满足CP舍弃A,也就是满足一致性和容错性,舍弃可用性。如果你的系统允许有段时间的访问失效等问题,这个是可以满足的。就好比多个人并发买票,后台网络出现故障,你买的时候系统就崩溃了。
–3)满足AP舍弃C,也就是满足可用性和容错性,舍弃一致性。这也就是意味着你的系统在并发访问的时候可能会出现数据不一致的情况。
–结论:实时证明,大多数都是牺牲了一致性。像12306还有淘宝网,就好比是你买火车票,本来你看到的是还有一张票,其实在这个时刻已经被买走了,你填好了信息准备买的时候发现系统提示你没票了。
2.2 常见的注册中心
2.3 下载
https://github.com/alibaba/nacos/releases/tag/1.4.1
2.4 安装
•解压
2.5 启动
点开当前bin文件 输入cmd打开命令提示符窗口
输入命令:startup.cmd -m standalone
•运行异常
–cmd运行 startup.cmd 错误提示“nacos is starting with cluster” (nacos以集群的方式的运行)
2.7 WEB控制台
2.7.1 获得控制台的访问路径
http://192.168.98.253:8848/nacos/index.html
2.7.2 登录
账号:nacos
密码:nacos