Kakushin(革新) - 创新
Shinshu(進取)-进取的
开发框架
next-enterprise / next-forge /Refine + goframe
next-enterprise+Refine+goframe实现前后端分离更简单,next-enterprise做应用,Refine做管理端
初期
托管
vercel + cloudflare + sentry Grafana Cloud Logs(托管日志/监测平台) Cloudflare R2(minio兼容协议) Sentry(托管)
自建
pg+go+nginx+redis
后期
全部自建
GO+pg+minio+nginx+Netdata(系统监测)+OpenObserve(日志服务器Fluent Bit采集器)+sentry(云)
没问题!我把前面我们聊到的所有工具按类别做了个一览表,每个工具给出定位、优点、缺点、适用场景(并标注大致“资源量级”:轻/中/重,便于取舍)。
缓存与一致性
进程内缓存(Go)
-
Ristretto(轻)
优点:TinyLFU 高命中、并发友好、吞吐高;易控内存。
缺点:行为依赖采样/估算,调参不当命中下降。
适用:高并发读、热键明显的 L1 缓存。 -
bigcache(轻)
优点:低 GC 压力、长寿命对象友好。
缺点:不支持逐键过期(用分段/轮转折中)。
适用:大对象/长 TTL 的 L1。 -
freecache(轻)
优点:锁少、速度快;内存可控。
缺点:功能简单。
适用:极简 L1。 -
golang-lru / ccache(轻)
优点:实现简单、可预估。
缺点:命中率与吞吐不及 Ristretto。
适用:小规模/配置项缓存。
分布式缓存
-
Redis(go-redis)(中)
优点:丰富数据结构、Pub/Sub、流、脚本;生态完整。
缺点:单线程瓶颈要靠分片/集群;内存成本高。
适用:L2 缓存、计数/队列、分布式锁与失效广播。 -
Memcached(轻)
优点:极简 KV、超快、内存效率高。
缺点:功能少、无持久化。
适用:短 TTL 的只读加速。
失效与变更通知
-
PostgreSQL LISTEN/NOTIFY(轻)
优点:内置、事务内通知、低延迟。
缺点:消息尺寸/速率有限。
适用:PG 场景的精准失效。 -
MySQL Binlog CDC:go-mysql/canal、Debezium(中)
优点:可靠捕捉变更,异构分发。
缺点:部署/维护成本高于内置通知。
适用:MySQL 场景的缓存失效/事件总线。 -
Outbox(模式)(中)
优点:与业务写入同事务,保证至少一次投递。
缺点:需后台搬运/幂等处理。
适用:强一致失效与跨系统集成。
消息与事件流
-
Kafka(中→重)
优点:吞吐高、生态成熟(Flink/ks/Connect)。
缺点:运维相对重。
适用:大流量埋点/日志/事件。 -
Redpanda(中)
优点:Kafka 协议、单进程易运维、低时延。
缺点:商业特性与开源取舍需评估。
适用:自建 Kafka 但想更省事。 -
NATS JetStream(轻)
优点:超轻、上手快、够用的持久化/消费组。
缺点:生态不如 Kafka 完整。
适用:中小规模的实时事件/心跳/作业队列。
日志采集与查询
采集器
- Fluent Bit / Vector / Promtail(轻)
优点:资源占用低、批量+压缩、插件多。
缺点:复杂解析要小心 CPU。
适用:统一采集到后端(Loki/OpenSearch/对象存储)。
日志后端 / 搜索
-
Loki(轻→中)
优点:标签索引+对象存储,成本低;Grafana 无缝。
缺点:非全文倒排;复杂检索弱于 ES。
适用:按标签筛选 + 聚合的日志。 -
OpenSearch(Elasticsearch 分支)(中→重)
优点:全文检索与聚合强;生态丰富。
缺点:堆/存储开销高、集群运维复杂。
适用:复杂字段检索、分析查询。 -
ClickHouse(也可做日志)(中)
优点:列式 OLAP,聚合/报表极快、性价比高。
缺点:全文能力一般;需建表设计。
适用:时序/报表/长留存日志分析。 -
VictoriaLogs(轻→中)
优点:单可执行、日志专用存储、便宜。
缺点:生态相对新。
适用:轻量“日志数据库”。 -
ZincSearch(轻)
优点:单二进制、自带 UI、类 ES 搜索。
缺点:规模大时性能/功能不及 ES。
适用:小团队全文日志检索。 -
OpenObserve(O2)(中)
优点:日志/指标/追踪一体,Parquet+对象存储、成本友好。
缺点:新生态;复杂查询内存峰值需控。
适用:自建一体化可观测且资源敏感。 -
Seq(轻→中)
优点:结构化应用日志、强 UI/查询,.NET 生态佳。
缺点:场景偏应用日志。
适用:结构化 JSON 事件搜索。 -
Dozzle(极轻)
优点:看 Docker 实时日志最省。
缺点:无索引/长期存储。
适用:排障现场看流。
文件/按需分析
-
DuckDB(轻)
优点:嵌入式、直接扫 Parquet/CSV,超省。
缺点:非常驻服务;并发/集群有限。
适用:按需查询/离线分析。 -
GoAccess(轻)
优点:读 Nginx/Apache 日志快速出报表。
缺点:非通用检索;更多偏静态报表。
适用:Web 访问日志的即席分析。
指标监控与告警
-
Prometheus(中)
优点:CNCF 毕业,抓取/告警/规则成熟,生态完备。
缺点:对高基数敏感;长留存需外接(Thanos/VM/Influx)。
适用:系统与应用指标的事实标准。 -
InfluxDB(2.x)(中)
优点:时序库,适合长留存与下采样。
缺点:高基数吃内存;3.x 仍在演进中。
适用:Prom 长期归档/历史趋势。 -
Grafana(轻)
优点:数据源众多、模板化与 SLO 看板强。
缺点:本身不存时序、不抓取。
适用:统一可视化与告警(8+)。 -
Blackbox Exporter(轻)
优点:HTTP/ICMP/TCP 外部探测;告警易。
缺点:不做系统内指标。
适用:外部可用性/证书到期。 -
node_exporter / cAdvisor(轻)
优点:主机与容器基础指标标准件。
缺点:只做底层资源,不含业务语义。
适用:基础设施健康。 -
Netdata(轻→中)
优点:1s 粒度、内置 UI 与告警、安装即用;可导出到 Prom。
缺点:集中化/历史分析仍建议配合 Prom/Grafana。
适用:最小成本拿到“能看能报警”。
存活/合成监测与状态页
-
Uptime Kuma(轻)
优点:UI 友好、上手快、通知多。
缺点:以可用性为主,指标弱。
适用:存活+延迟+状态页。 -
Gatus(轻)
优点:YAML 声明式、断言灵活、可导出 Prom 指标。
缺点:功能聚焦在探测。
适用:黑盒探测 + 和 Prom/Grafana 联动。 -
Statping-NG / Vigil(轻)
优点:极简状态页与探测。
缺点:功能相对单一。
适用:对外状态展示。 -
Healthchecks(轻)
优点:Cron/Job 心跳监测最好用。
缺点:非通用探测。
适用:定时任务是否按时运行。 -
Monika(轻)
优点:CLI 合成监测、极省。
缺点:可视化有限。
适用:边缘/轻探针。
数据分析 / OLAP(与日志/埋点配套)
-
ClickHouse(中)
优点:高性能列存,聚合/报表快、成本友好。
缺点:建模与表引擎要学习。
适用:埋点/日志/审计的近实时分析与长留存。 -
BigQuery / Snowflake(托管,略)
优点:免运维、弹性。
缺点:不是自建;成本需控。
适用:人少想省事。
典型组合建议(按目标)
-
最轻起步:Netdata + Gatus(即装即用、资源百 MB 级)。
-
全功能指标:Prometheus + Grafana(再接 Blackbox / exporters)。
-
长留存:Prom
remote_write→ InfluxDB 或直接用 ClickHouse。 -
日志体系(省钱):Loki 或 OpenObserve;全文需求强则 OpenSearch;“超省”走 ZincSearch / VictoriaLogs 或 文件+DuckDB。
-
缓存与一致性:L1 Ristretto + L2 Redis,失效走 Pub/Sub / LISTEN/NOTIFY / CDC + Outbox。
-
事件流:中小用 NATS,大流量用 Kafka/Redpanda。
一句话挑选指南
-
机器很小/想马上有图有警 → Netdata / Uptime Kuma / Gatus。
-
要标准化指标与SLO → Prometheus + Grafana(再按需加 Influx)。
-
日志成本敏感 → Loki / OpenObserve;只要轻搜 → ZincSearch/VictoriaLogs。
-
读多写少、强一致失效 → PG LISTEN/NOTIFY 或 MySQL CDC + Outbox;缓存 L1+L2。
-
埋点/报表 → ClickHouse(或文件+DuckDB 从小做起)。
如果你告诉我当前机器规格、要监控的端点/服务清单和是否有长留存需求,我可以把上面合适的那套拼成一份最小可用的 docker-compose(含默认告警/看板),直接跑起来。