前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式链路追踪 Skywalking-集群管理设计

分布式链路追踪 Skywalking-集群管理设计

作者头像
35岁程序员那些事
发布2020-09-18 19:19:08
7480
发布2020-09-18 19:19:08
举报

SkyWalking 是一个开源 APM 系统,包括针对 Cloud Native 体系结构中的分布式系统的监视,跟踪,诊断功能。核心功能如下:

- 服务、服务实例、端点指标分析

- 根本原因分析,在运行时分析代码

- 服务拓扑图分析

- 服务,服务实例和端点依赖性分析

- 检测到慢速服务和端点

- 性能优化

- 分布式跟踪和上下文传播

- 数据库访问指标。检测慢速数据库访问语句(包括 SQL 语句)

- 报警

SkyWalking 目前是 Apache 顶级项目,作为这么优秀的开源项目,它的架构设计理念肯定会有很多值得我们借鉴。

集群管理生态方法论

集群管理的方法论有很多,当今社会又是一个信息膨胀的时代,所以会有很多书籍或者文章会去剖析一些方法论,我相信很多都具备很强的收藏价值。

比如我现在需要做一个缓存系统,最开始我们肯定会考虑使用本地单机缓存,因为这样性能高,实现简单,我们只需要使用一个容器来承载这些数据,然后相办法如何保证数据的读写线程安全就行了,于是我们就会考虑单虚拟机下的性能优化,比如如何用多线程操作替代单线程,如何用事件驱动去替换同步,如何转换成异步,其实这些都会是在单机本地缓存上效果最明显,因为没有网络开销。

但是随着服务能力的提升以及运营给力,我们的应用程序单机的流量越来越大,线上单机根本不够用,我们需要主从部署,这样问题就来了,我们需要数据同步,slave 需要从 master 上同步数据,涉及到跨进程的数据同步,也就是这个时候就需要保证数据同步的高可用、高性能、高并发等特性,那么这个时候就需要集群管理了,需要我们去管理这些数据同步的操作。

那么我们首先会想到,我们原先是基于内存的,我们可以改成基于 openAPI 模式,如果一台机器上的内存数据变化了,我就通过 openAPI 实时的同步到其他集群节点上,然后更新对应机器节点的内存数据,这样数据就保证一致性了,只是说这个数据不会持久化,一旦有节点挂掉了,数据就全丢失了。

怎么办?程序员是很聪明的,我们可以持久化啊,把内存中的数据同步到磁盘文件,做备份,如果节点挂掉,再重新启动会去加载已经备份的文件。那么问题又来了,如果每次更新内存都会去持久化文件,如果有大量的请求,这样整个集群抗并发的能力会非常的差,所以又发明了异步刷盘机制以及机器硬盘的缓存机制。

其实上面所说的集群间数据的管理功能,在分布式领域里面属于 AP 模式,只会保证最终一致性。

那么如何保证 CP 的强一致性了,那么程序员的进阶之路,我们肯定需要刨根问底,这个时间基于 Raft 算法的分布式能力,就是 CP 算法,所以现在有很多框架的集群管理都会采用分布式算法 Raft,因为这个算法高效并且稳定。

使用 Raft 算法来保证集群管理能力的有很多优秀的框架,比如:

- Nacos

- Rocket MQ

- 蚂蚁金服的 JRaft

所以上升到集群管理,业界一般都会采用 CP 或者 AP 模式,很少有框架能够同时实现 CAP 模式的。

原创不易,欢迎下载 Gitchat应用,并搜索原创文章:

分布式链路追踪:集群管理设计

https://gitbook.cn/new/gitchat/activity/5f0b3d7c425b19297a0b8d0a

往期文章精选:

分布式链路追踪 SkyWalking:配置管理设计

SkyWalking 分布式链路追踪:最新 Kafka 通信模型设计

分布式链路追踪:Skywalking 的链路模型设计

分布式链路追踪:Skywalking 探针模型设计

分布式链路追踪 Skywalking:告警和度量架构设计

分布式链路追踪 Skywalking:插件化和模块化架构设计

分布式链路追踪Skywalking Skywalking 存储客户端设计

源码分析-分布式链路追踪:Skywalking存储插件能力-elasticsearch

本人花名游侠(因为曾经是阿里系的员工)-一名对技术、业务、管理和架构孜孜不倦的高级码农

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构随笔录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 集群管理生态方法论
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档