Feat: add core arch doc

This commit is contained in:
ethfoo 2021-12-31 10:21:44 +08:00
parent ed1aede0b9
commit 0993f2bbd6
3 changed files with 37 additions and 0 deletions

View File

@ -1,3 +1,40 @@
# 核心架构
## 内部设计
详细的设计如下图所示:
![](imgs/loggie-full-arch.png)
**数据链路**:
- 支持多pipeline每个pipeline相对独立
- 每个pipeline有多个source、一个queue和一个sink
- interceptor实际上分为source interceptor和sink interceptor两种不同类型source类的interceptor可配置被某个source独占
**控制链路**:
- 目前有Kubernetes为配置中心可以通过CRD的方式下发日志配置当然你也可以手动配置文件
- 打开Reloader可以动态检测配置变动并重载
- 组件可发送对应topic的metrics由listener来消费处理并进一步暴露或者发送指标
## 使用形态
本质上Loggie是一个数据传输流式设计所以我们可以灵活的使用Loggie的Pipeline。从使用形态上可分为
- **Agent** 形态每个节点一个或者每个Pod一个用于采集配置的日志或者其他数据
- **Aggregator** 形态:用于中转和转发,可独立部署成集群
除了日志采集很多涉及到数据传输、转换的场景都可以考虑使用Loggie即使Loggie没有你想要的组件你也可以快速开发一个source、sink或interceptor同时复用Loggie的很多能力避免重复的开发工作比如
- 配置中心灵活的配置手段避免手动下发配置在Kubernetes集群中可以使用CRD并且支持自动reload、支持指定Loggie集群
- 稳定性和可靠性多输入输出源的隔离性保证at-least-once重试机制避免传输过程中的数据丢失避免数据量过多或过大造成的隐患
- 完整的监控指标比如队列占有、传输延迟、发送qps等可快速接入Prometheus同时提供一些快速排障的手段和接口
- 可插拔的interceptor可用于数据处理、格式转换等
...
## 应用场景
- 日志采集:采集容器日志、采集节点日志
- 数据中转:日志中转机聚合、转发、分流
- 数据处理:进行数据的切分、转换、处理
- 日志报警:进行异常日志的检测与报警
...

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB