聊聊通用的架构设计 (insights.thoughtworks.cn)

【简介】

本文通过从业务架构到IT架构,以及IT架构下的应用架构、数据架构、技术架构和基础设施架构的介绍,配合一些示例的展示,描绘了架构设计中一般包含哪些内容。

点击查看原文 >>

@Thoughtworks 2022-03-11 15:56 / 0个评论
赞过的人: @IT技术博客大学习
要不要再学学下面的文章?
IM服务器设计-如何解决消息的乱序 (www.codedump.info)
IM消息需要面对的另一个难题:如何保证收到的消息不乱序。下面先展开看看要解决这个难题有哪些障碍。
by @技术头条 2024-03-21 23:00 查看详情
IM服务器设计-网关接入层 (www.codedump.info)
IM服务系列文章: IM服务器设计-基础 IM服务器设计-消息存储 网关接入层负责维护与客户端之间的长连接,由于它是唯一一个与客户端进行直接通信的服务入口,
by @技术头条 2024-03-21 23:00 查看详情
聊聊 Go 的边界检查消除技术 (colobu.com)
在翻译的从慢速到SIMD一文中, SourceGraph工程师其中的一个优化就是边界检查消除(BCE,bounds check elimination)技术,同时他也抛给了读者一个问题:

为啥在使用 a[i:i+4:i+4] 而不是 a[i:i+4]?

本文第一部分先回答这个问题。 第二部分介绍更好的边界检查消除方法。 第三部分再全面梳理Go的边界检查消除技术。
by @技术头条 2024-03-21 23:00 查看详情
美团大规模KV存储挑战与架构实践 (tech.meituan.com)
KV 存储作为美团一项重要的在线存储服务,承载了在线服务每天万亿级的请求量,并且保持着 99.995% 的服务可用性。在 DataFunSummit 2023 数据基础架构峰会上,我们分享了《美团大规模 KV 存储挑战与架构实践》,本文为演讲内容的整理。文章主要分为四个部分:第一部分介绍了美团 KV 存储发展历程;第二部分分享了内存 KV Squirrel 挑战和架构实践;第三部分阐述了持久化 KV Cellar 挑战和架构实践;最后一部分介绍了未来的发展规划。希望这些内容对大家有所帮助或启发。
by @技术头条 2024-03-21 22:53 查看详情
IM服务器设计-消息存储 (www.codedump.info)
这部分专门讲述IM消息存储的设计。消息存储的难度在于,要考虑以下的场景:

1、离线消息存储。即发送消息时对方不在线该怎么处理。
2、单聊、群聊消息。
3、随着用户量越来越大,应该以后如何扩展。
by @技术头条 2024-03-13 13:33 查看详情
IM服务器设计-基础 (www.codedump.info)
IM做为非常经典的服务器系统,其设计时候的考量具备代表性,所以这一次花几个篇幅讨论其相关设计。

主要内容相当部分参考了 一套海量在线用户的移动端IM架构设计实践分享一文,在此之上补充了更好的消息存储设计以及集群设计。

by @技术头条 2024-03-13 13:32 查看详情
聊聊可观测性 (jokerbai.com)
随着分布式架构逐渐成为主流,“可观测性”一词也日益频繁地被人提起,它涉及的范围比较广泛,主要概括为如下三类:聚合度量(metrics)、事件日志(logging)、链路追踪(tracing)。

这三个方向虽然各有千秋,各有侧重,但是又不完全独立。在Peter Bourgon 的文章《Metrics, Tracing, and Logging》系统地阐述了这三者的定义、特征,以及它们之间的关系与差异,受到了业界的广泛认可。在实际的工作中,大家或多或少对上面三种都有一定的了解,只是没有机会或者没有需求去深入研究。
by @技术头条 2023-11-29 23:47 查看详情
从Nginx过滤打印user-agent为clb-healthcheck的日志聊聊Nginx的日志自定义打印 (wiki.eryajf.net)
通常我们的南北流量的链路是从云的 LB 到服务器的 Nginx 集群,为了利用好 lb 自动检测 Nginx 的功能,通常你会打开健康检查,此时,Nginx 的日志当中就会打印大量的健康检查日志,令人不胜其烦。
by @技术头条 2023-10-30 23:39 查看详情
聊聊Web网页中资源加载的优先级 (www.zhangxinxu.com)
通过调整或设置资源加载的优先级或者先后顺序,可以让页面重要的资源优先加载,让不重要的内容之后加载,以提高页面的访问体验。

通过文中的视频比较显示了 Google 机票页面,其中加载了使用和不使用“提取优先级”加载的 LCP 背景图片。将优先级设置为“高”后,LCP 时间从 2.6 秒缩短到 1.9 秒。
by @技术头条 2023-10-30 23:06 查看详情
真实世界的Go设计模式 - 对象池模式 (colobu.com)
对象池(object pool pattern)是一种设计模式。一个对象池包含一组已经初始化过且可以使用的对象,而可以在有需求时创建和销毁对象。池的用户可以从池子中取得对象,对其进行操作处理,并在不需要时归还给池子而非直接销毁它。这是一种特殊的工厂对象。

若初始化、实例化的代价高,且有需求需要经常实例化,但每次实例化的数量较少的情况下,使用对象池可以获得显著的效能提升。从池子中取得对象的时间是可预测的,但新建一个实例所需的时间是不确定。

另外,利用对象池,我们可以重用对象,减少对象的分配,对于垃圾回收的编程语言,也是一种提高性能的手段。
by @技术头条 2023-09-10 23:38 查看详情