**SkyWalking** 是一个开源 **APM** 系统,包括针对 **Cloud Native** 体系结构中的分布式系统的监视、跟踪、诊断功能。核心功能以下:git
- 服务、服务实例、端点指标分析数据库
- 根本缘由分析,在运行时分析代码浏览器
- 服务拓扑图分析安全
- 服务、服务实例和端点依赖性分析性能优化
- 检测到慢速服务和端点服务器
- 性能优化微信
- 分布式跟踪和上下文传播架构
- 数据库访问指标。检测慢速数据库访问语句(包括 **SQL** 语句)并发
- 报警框架
**SkyWalking** 目前是 **Apache** 顶级项目,做为这么优秀的开源项目,它的架构设计理念确定会有不少值得咱们借鉴。
消息中间件选型生态方法论
中间件是为应用提供通用服务和功能的软件。数据管理、应用服务、消息传递、身份验证和 **API** 管理一般都要经过中间件。中间件能够帮助开发人员更有效地构建应用。它就如同是应用、数据与用户之间的纽带。
对于具备多云和容器化环境的企业而言,中间件能够助您大规模、经济高效地开发和运行应用。
中间件是介于操做系统和在其上运行的应用程序之间的软件。中间件实质上充当隐藏转换层,实现了分布式应用程序的通讯和数据管理。它有时被称为管道,由于它将两个应用程序链接在一块儿,使数据和数据库可在“管道”间轻松传递。经过中间件,用户可执行不少请求,例如在 **Web** 浏览器上提交表单,或者容许 **Web** 服务器基于用户的配置文件返回动态网页。
常见的中间件示例包括数据库中间件、应用程序服务器中间件、面向消息的中间件、**Web** 中间件和事务处理监视器。每一个程序一般都会提供消息传递服务,让不一样的应用程序可以使用简单对象访问协议(**SOAP**)、**Web** 服务、表述性状态转移(**REST**)和 **JavaScript** 对象表示法(**JSON**)等消息传递框架进行通讯。虽然全部中间件都执行通讯功能,但公司选用的类型将取决于要使用的服务以及须要传达的信息类型。这可包括安全身份认证、事务管理、消息队列、应用程序服务器、**Web** 服务器和目录。中间件还可用于实时发生的操做的分布式处理,而不是来回发送数据。
这里我要重点分析的是消息中间件,基于消息的中间件能够说是咱们平常开发中常常接触和使用的,这个属于常规技术栈。
消息中间件,那么我在这里也不会一一对比,由于网上对比的文章太多了,现阶段主流的使用频率很是高的就两款,**Kafka**和**RocketMQ**。
简单说明下场景,比较精辟。**Kafka**适用于高吞吐量,而后可以容忍一部分消息丢失,好比日志收集场景,**RocketMQ**使用于高可靠性和必定的吞吐量的业务场景,好比金融支付场景。
中间件选型的方法论其实很简单,就是要从业务场景和中间件功能的匹配度程度以及维护这么一套系统的成原本考虑。从长远的角度就是扩展和成本,从短时间角度也是收益和成本。
咱们一般从技术的角度,好比高可用、高性能、高并发以及高吞吐量连判断一个消息中间件,可是其实任何一个可以开源出来的中间件,其实都不差,重点是在咱们怎么使用,并可以吃透原理,这样才能真正发挥它的价值,我见过好多团队在使用开源的消息中间件的时候常常吐槽,说很烂,很很差用,可是你要想一想,若是是你本身写,花半年的时间写出来的消息中间件可能还不如人家的,也有可能处处都是 **bug**,由于你的没有更多的业务场景来验证,开源的消息中间件至少已经被社区的人植入了更多更普遍的业务场景。
选型消息中间件的独门秘籍我这边推荐是:借力打力,解决当下,着眼将来,考虑生态。
若是想了解更多文章详情,请关注做者的原创文章:
SkyWalking 分布式链路追踪:最新 Kafka 通讯模型设计
https://gitbook.cn/new/gitchat/activity/5f2d5e65ba074467ee7ac393
往期文章精选:
分布式链路追踪 Skywalking:插件化和模块化架构设计
分布式链路追踪Skywalking Skywalking 存储客户端设计
源码分析-分布式链路追踪:Skywalking存储插件能力-elasticsearch
游侠--架构师玄学之路的独立运营者,也许文章更新频率没有那些团队运营者高,但每篇文章都是做者的心血,欢迎支持原创。
本文分享自微信公众号 - 架构师玄学之路(andy_aty)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。