What Even Are Microservices?a day agohttps://var0.xyz/posts/what-even-are-microservices.html微服务在技术上难以定义;它们的边界是组织性的,而不是基于代码规模或职责。微服务解决的主要问题是组织扩展,允许团队独立工作,而不是像构建缓慢或测试这样的技术问题。微服务以集中换取自治,引入了网络通信成本、运行时故障以及失去简单的静态分析。团队沟通开销增加,因为API变更变成了需要版本控制和协调数据库更改的谈判。微服务应基于组织扩展需求来选择,而不是作为一种纯粹的技术解决方案。
Do you really need separate systems when you already have Postgres?23 days agohttps://postgresisenough.dev/Postgres 通常可以替代独立的系统,如 Redis、Elasticsearch、MongoDB 等,用于缓存、搜索、队列等功能,从而降低运维负担。运行多个数据库和微服务会导致维护工作增加、监控复杂性上升、成本提高以及调试挑战加剧,而且这种情况往往过早发生。大多数项目并不需要达到‘网络规模’,可以依赖像 Postgres 这样的‘无趣’技术,正如 Notion 和 Netflix 等大公司所做的那样。Postgres 提供内置或基于扩展的解决方案,涵盖缓存(UNLOGGED 表)、任务队列(SKIP LOCKED)、全文搜索(tsvector)、文档存储(JSONB)、向量搜索(pgvector)等多种需求。只有在证明 Postgres 能力不足并愿意承担相应的运维成本后,才应引入专用基础设施,以避免不必要的复杂性。
Client-side load balancing at a million requests per seconda month agohttps://engineering.zalando.com/posts/2026/06/client-side-load-balancing.html?v=...客户端负载均衡(CSLB)的构建旨在替代共享边缘入口负载均衡器,用于内部扇出流量,每秒处理超过一百万个请求。新增的关键功能包括用于逐步扩缩的N环淡入、基于占用率的有限负载以实现均匀分布,以及具有延迟健康因素的可用区感知路由。从Skipper迁移到CSLB降低了延迟峰值,提高了稳定性,并通过缩减Skipper舰队和通过更好的负载管理减少Pod数量来降低成本。实施过程包括使用xxHash64实现与Skipper的哈希一致性、通过基于watch的informer进行Kubernetes发现,以及为更快速、更安全的部署构建强化的流水线。强化措施包括重试策略、FIFO缓冲区和增强的日志记录,这些措施发现并缓解了节点级网络冻结问题,且未引发事故。经验教训:拥有路由决策权可提供有价值的遥测数据但增加了复杂性;缓存局部性与流量隔离存在冲突;快速部署流水线能降低风险。未来的工作包括恢复可用区感知路由试验,以评估成本节约与缓存碎片化之间的权衡,特别是在流量高峰事件期间。