这篇文章给大家介绍SkyWalking分布式链路追踪的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
SkyWalking是一个开源 APM系统,包括针对 Cloud Native体系结构中的分布式系统的监视、跟踪、诊断功能。核心功能如下:
- 服务、服务实例、端点指标分析
- 根本原因分析,在运行时分析代码
- 服务拓扑图分析
- 服务、服务实例和端点依赖性分析
- 检测到慢速服务和端点
- 性能优化
- 分布式跟踪和上下文传播
- 数据库访问指标。检测慢速数据库访问语句(包括 **SQL** 语句)
- 报警
SkyWalking 目前是 Apache 顶级项目,作为这么优秀的开源项目,它的架构设计理念肯定会有很多值得我们借鉴。
消息中间件选型生态方法论
中间件是为应用提供通用服务和功能的软件。数据管理、应用服务、消息传递、身份验证和 **API** 管理通常都要通过中间件。中间件可以帮助开发人员更有效地构建应用。它就如同是应用、数据与用户之间的纽带。
对于具有多云和容器化环境的企业而言,中间件可以助您大规模、经济高效地开发和运行应用。
中间件是介于操作系统和在其上运行的应用程序之间的软件。中间件实质上充当隐藏转换层,实现了分布式应用程序的通信和数据管理。它有时被称为管道,因为它将两个应用程序连接在一起,使数据和数据库可在“管道”间轻松传递。通过中间件,用户可执行很多请求,例如在 **Web** 浏览器上提交表单,或者允许 **Web** 服务器基于用户的配置文件返回动态网页。
常见的中间件示例包括数据库中间件、应用程序服务器中间件、面向消息的中间件、**Web** 中间件和事务处理监视器。每个程序通常都会提供消息传递服务,让不同的应用程序可使用简单对象访问协议(**SOAP**)、**Web** 服务、表述性状态转移(**REST**)和 **JavaScript** 对象表示法(**JSON**)等消息传递框架进行通信。虽然所有中间件都执行通信功能,但公司选用的类型将取决于要使用的服务以及需要传达的信息类型。这可包括安全身份认证、事务管理、消息队列、应用程序服务器、**Web** 服务器和目录。中间件还可用于实时发生的操作的分布式处理,而不是来回发送数据。
这里我要重点分析的是消息中间件,基于消息的中间件可以说是我们日常开发中经常接触和使用的,这个属于常规技术栈。
消息中间件,那么我在这里也不会一一对比,因为网上对比的文章太多了,现阶段主流的使用频率非常高的就两款,**Kafka**和**RocketMQ**。
简单说明下场景,比较精辟。**Kafka**适用于高吞吐量,然后能够容忍一部分消息丢失,比如日志收集场景,**RocketMQ**使用于高可靠性和一定的吞吐量的业务场景,比如金融支付场景。
中间件选型的方法论其实很简单,就是要从业务场景和中间件功能的匹配度程度以及维护这么一套系统的成本来考虑。从长远的角度就是扩展和成本,从短期角度也是收益和成本。
我们通常从技术的角度,比如高可用、高性能、高并发以及高吞吐量连判断一个消息中间件,但是其实任何一个能够开源出来的中间件,其实都不差,重点是在我们怎么使用,并能够吃透原理,这样才能真正发挥它的价值,我见过好多团队在使用开源的消息中间件的时候经常吐槽,说很烂,很不好用,但是你要想想,如果是你自己写,花半年的时间写出来的消息中间件可能还不如人家的,也有可能到处都是 **bug**,因为你的没有更多的业务场景来验证,开源的消息中间件至少已经被社区的人植入了更多更广泛的业务场景。
关于SkyWalking分布式链路追踪的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。