## Apache Iggy WebSocket 支持与 compio-ws:摘要
Apache Iggy 团队使用 `io_uring` 重写了其核心架构以提高性能,从而采用了 `compio` 异步运行时。这在添加 WebSocket 支持时带来了挑战,因为现有的 Rust 库 (`tungstenite`, `tokio-tungstenite`) 专为基于轮询的 I/O 设计,并依赖共享缓冲区——这与 `compio` 的基于完成、拥有缓冲区的模型不兼容。
为了解决这个问题,团队开发了 `compio-ws`,这是为 `compio` 提供的 WebSocket 实现。 最初使用 `SyncStream`(同步 I/O 的桥接)的尝试因其固定大小的缓冲区而导致性能问题,需要频繁且代价高昂的缓冲区处理。 通过 `GrowableSyncStream` 解决了这个问题,它是一种动态调整大小的缓冲区,可最大限度地减少往返次数。
基准测试表明,WebSocket 延迟明显高于直接 TCP(生产者高 30-40%,消费者高 100% 以上),但在严格的持久性约束下,仍然可以在高百分位实现个位数毫秒的延迟。
未来的工作包括优化缓冲区增长、探索利用 `compio` 功能的本机 WebSocket 实现,以及将改进贡献回 `compio` 项目。 目前,Iggy 利用 WebSocket 为生产者提供支持,为浏览器客户端和边缘设备带来好处,并计划为消费者提供服务器推送通知。
## 实现五九可靠性:从AWS us-east-1中断事件中吸取的教训
最近AWS us-east-1地区发生的大规模中断(10月20日)凸显了构建强大可靠性策略的必要性。虽然许多服务受到影响,但Authress通过主动构建具有弹性的架构保持了正常运行时间。本文详细介绍了他们实现五九(99.999%)SLA的方法——大约每年五分钟的停机时间——尽管依赖于可能不可靠的基础设施。
Authress的策略围绕着预测故障展开。他们避免仅仅依赖AWS SLA,认识到这些SLA无法达到他们的目标。关键组件包括:严格的三方依赖项审查(拒绝低于99.7%可靠性的依赖项)、使用DNS动态路由和健康检查实现自动多区域故障转移,以及使用CloudFront和Lambda@Edge实现边缘计算的本地化弹性。
除了基础设施之外,Authress还采用了复杂的应用程序级防御:自动重试、比较系统间数据的验证测试、增量发布以及具有自定义规则的强大的Web应用程序防火墙,以减轻恶意活动。至关重要的是,他们优先与客户支持建立直接联系,以便快速识别事件。
最终,Authress承认实现五九并非关于*预防*所有故障,而是关于最小化它们的*影响*。他们拥抱墨菲定律,认识到故障是不可避免的,并专注于分层防御、持续监控以及从每次事件中学习的承诺。虽然这些措施不能自动保证五九承诺,但它们代表了他们对该承诺的坚定捍卫。
**如需协助实施类似架构,作者鼓励您通过他们的社区服务器联系。**
## 浣熊与人类共同进化
一项新研究表明,城市浣熊正在表现出早期驯化的迹象。研究人员分析了近2万张照片,发现城市浣熊的吻部平均比农村浣熊短3.5%——这是一种通常与驯化动物相关的身体特征。
这并非必然*由*人类干预(如选择性育种)引起,而是对靠近人类和获取易于获得的食物来源(如垃圾)的一种自然反应。那些大胆但不过于具有攻击性的动物,在靠近人类觅食方面更成功,并将这些特征遗传下去。
科学家认为,这种转变与“驯化综合征”有关,该综合征包括面部缩短和恐惧反应降低,可能与胚胎发育期间的神经嵴细胞发育有关。虽然确切机制仍在研究中,但这些发现与城市狐狸和老鼠的类似观察结果相符,表明野生动物正在与人类共同适应和进化。进一步的研究旨在探索城市和农村浣熊种群之间的遗传和行为差异。