随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Sentinel 具有以下特征:
丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。
以上内容引自 Sentinel 官方介绍。在本文中,笔者将从实际应用的角度,来学习Sentinel的使用。
ZooKeeper 很流行,有个基本的疑问:
OK,解答一下上面的疑问:(下面是凭直觉说的)
上面说这么多,总结一下,ZK 能解决分布式应用开发的问题,ZK 能很好的解决问题。到这一步,疑问就更多了:
Note:本篇 wiki 就是为了解决上述第一个疑问的。(其他疑问会在其他 blog 中逐步解答)
一个应用程序,涉及多个进程协作时,业务逻辑代码中混杂有大量复杂的进程协作逻辑。
上述多进程协作逻辑,有 2 个特点:
因此,考虑将多进程协作的共性问题拎出,作为基础设施,让 RD 更加专注业务逻辑开发,即:
ZooKeeper 就是上述多进程协作基础服务的一种。
ZooKeeper 有几个简单特点:
ZooKeeper 是存储设施,但特别注意
协作数据
(元数据
),而不是应用数据,应用数据有自己的存储方案,例如 HDFS 等特殊的 FS
特别说明:
应用数据和元数据,由于使用场景不同,对一致性和持久性的要求有差异, 因此,架构设计、数据治理过程中,应将 2 类数据独立看待、独立存储。
ZK 要解决的核心问题:
ZK 目标:简化分布式应用开发中,多进程协作问题。为分布式应用,提供高效
、可靠
的分布式协调服务(基础服务),例如:
一个简单的问题:多进程的协作是什么?尼玛呀,有完没完,啥问题你都有,面对这个掉咋天的脑壳,还是回答一下。
多进程协作,整体分为 2 类:
特别说明:
跨网络多进程协作
,进程通信,基本思路有 2 个:
共享存储
提供有序访问,ZK 采用这种方式真实系统中,跨网络通信,有几个共性问题:
ZK 精心设计用于屏蔽上述 3 个共性问题,使得这些问题在应用服务层面完全透明化。
分布式系统的一致性问题:
在这种情况下,如何保证数据的一致性?
优先级最高的节点
(包含最新数据的节点)Paxos 目标:解决分布式一致性
问题,提高分布式系统容错性
的一致性算法。
Paxos 本质:基于消息传递
的高度容错
的一致性算法
ZooKeeper 是:
业务逻辑开发
,而不需要过多关注分布式进程间协作细节
ZooKeeper 不直接暴露原语
,而是,暴露一部分调用方法
组成的 API,类似文件系统的 API,支持应用程序实现自己的原语
。
ZooKeeper 可以保证如下分布式一致性特性:
ZooKeeper 致力于提供高性能
、高可用
、顺序一致性
的分布式协调服务,保证数据最终一致性
。
树形结构
组织数据节点;ZK 出现之前,分布式系统常用两种方式,实现多进程协作:
ZK 更专注于进程协作,而不提供任何锁接口和通用的存储数据接口。(疑问:ZK 也可以提供啊,我们不使用就行了)
应用服务器,常见的 2 种需求:
ZK 为上述 2 种策略提供了基础 API。
ZooKeeper 不适用的场景:
特殊的 FS
,但 ZK 用于存储元数据
,需要单独存储应用数据
学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的MyBtis知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的MyBtis知识脑图原件(包括上方的面试解析xmind文档)
除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!
资料领取方式:戳这里免费下载
)
[外链图片转存中…(img-Mq7y6og9-1624066303539)]
除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!
资料领取方式:戳这里免费下载