- 1. 什么是 Mage
- 1.1. 什么是 gradle
- 1.2. 什么是 Gitea
- 1.3. 什么是 JRuby
- 1.4. 什么是 packetbeat
Mage 是基于 golang 开发的, 类似 make/rake
的工具, 我们可以使用 golang 代码编写类似 make 的功能。
Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建开源工具。它使用一种基于 Groovy 的特定领域语言 (DSL) 来声明项目设置, 也增加了基于 Kotlin 语言的 kotlin-based DSL, 抛弃了基于 XML 的各种繁琐配置。
面向 Java 应用为主。当前其支持的语言 C++、Java、Groovy、Kotlin、Scala 和 Swift, 计划未来将支持更多的语言。
Gitea - Git with a cup of tea
A painless self-hosted Git service.
Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license.
JRuby, 一个采用纯 Java 实现的 Ruby 解释器, 由 JRuby 团队开发。它是一个自由软件, 在 CPL/GPL/LGPL 三种许可协议下发布。
1.4. 什么是 packetbeatpacketbeat 是 elastic 公司开发的网络抓包、嗅探以及分析工具。
和 tcpdump 一样, 它的底层依赖 libpcap。但它比 tcpdump、tcpcopy 功能强大的多。
它能够直接解析以下的网络协议
ICMP (v4 and v6)
DHCP (v4)
DNS
HTTP
AMQP 0.9.1
Cassandra
Mysql
PostgreSQL
Redis
Thrift-RPC
MongoDB
Memcache
TLS
将网络包转换成 JSON 字符串, 然后导出到以下 output
File
Console
Elasticsearch
Logstash
Kafka
Redis
简单描述过程
event -> filter1 -> filter2 … -> output
让我非常吃惊的是它能够捕获 MySQL、Redis 等的二进制通讯协议, 能够从捕获的记录中, 清晰的看到每一条 SQL 查询语句, 以及每一条 Redis 命令
- 我们能拿它做什么?
据笔者的了解。
以前做线上的流量复制和重放, 大致有这么几种方法
(1) 使用 tcpcopy
(2) 在服务中引起流量复制模块
(3) 服务打印特殊格式的日志
供后期解析, 并做重放
(1)是二进制数据流, 人无法阅读, (2)、(3)对服务有入侵, 不够友好。
JSON 格式的数据, 对程序优化, 对人来说阅读的障碍也不大。个人认为是个不错的选择
有了这些捕获的数据, 我们可以用来做
线上排障
服务功能测试 / 压力测试
对请求 (HTTP 请求, MySQL、Redis 请求等) 进行统计分析, 为服务优化提供必要的数据支持。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)