Skip to main content

微服务体系

好了,你已经会写 Hello World 程序了,现在去写一个优雅的微服务项目吧!

基石

构建起微服务的唯二信条就是:分散治理,去中心化。

硬币的正反面

自治可以解决容量问题,你可以几乎不受限的复制出程序的实例以对抗台风级一样的用户请求。

但是随之带来的问题也不可小觑。

例如:

方法调用 -> 通信管道

  1. 用什么样的 API
  2. API 调用谁,怎么找到他
  3. 延迟/错误 怎么处理

本地存储 -> 存储接口

  1. 文件不在本机,怎么读取
  2. 低延迟随机存取要怎么实现
  3. 数据无价,怎么确保万无一失

控制台日志 -> 可观测性链路

  1. 用户请求的日志不在本机上,怎么采集和存储和查询
  2. 请求跨越了多个服务,怎么知道是谁出错了

直至于此,微服务架构下仍然有很多可供改进的空间,无论你是更偏向于轻量化,还是更高的容量/可靠性/灵活性。而一切问题的关键在于执剑人如何去裁断。

以下是八句至理名言:

网络是可靠的

延迟是没有的

带宽是无限的

网络是安全的

拓扑是不变的

管理员只有一个的

传输是没有代价的

网络是同构系统的

Log Stack

Vector: Collect & Transform & send
Clickhouse: High performance OLAP DBMS
Grafana: Observability platform