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_writeInfluxDB 或直接用 ClickHouse

  • 日志体系(省钱)LokiOpenObserve;全文需求强则 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(含默认告警/看板),直接跑起来。