Event Bus(事件总线)是一种用于在应用程序内部或跨应用程序组件之间进行事件通信的机制。它允许不同的组件通过发布和订阅事件来进行解耦和通信。 在给定的代码片段中,我们可以看到一个使用C#实现的Event Bus。它定义了一些接口和类来实现事件的发布和订阅。 首先,我们有两个基本的约束接口:IE...
分类:攻城湿
52 篇文章Cache 在 REST 设计中使用缓存可以缩短响应时间、节约网络带宽。 A “cache” is a local store of previous response messages and the subsystem that controls its message storage, ret...
What is REST REST, stands for REpresentational State Transfer, proposed by Roy Fielding in his 2000 PhD dissertation[1], is an architectural approach ...
在Thoughtworks的第25期 技术雷达中有一个主题:便利背后的陷阱,再次强调了软件开发的一种反模式: 开发团队一般为了图方便,而在其技术生态系统的复杂环节中,引入一些不合理的行为,从而欠下长期存在的技术债务,并会引发更糟的问题。这种例子不胜枚举,包括将数据库作为集成点,使用 Kafka 作为...
BFF(Backend for Frontend)架构是一种设计模式,它在后端服务器和前端用户界面之间引入了一个中间层。BFF充当中介,负责处理前端应用程序的请求并与后端服务通信。这种架构可以提高前后端协同效率,优化接口调用,以及满足不同前端设备的需求。 BFF架构开发注意点 在使用BFF架构进行项...
RabbitMQ消息堆积的主要原因包括生产者发送速度远超消费者处理速度、消费者处理能力不足或故障、消费者未正确发送确认信号(ack)、不合理的QoS/Prefetch设置以及网络或系统资源瓶颈。 当生产者发送的消息堆积在队列中,如果堆积超过队列容量或设置了过期时间(TTL),可能会导致消息被丢弃。 ...
Kafka和RabbitMQ在架构设计、数据处理方式和适用场景上存在显著差异。 Kafka 是一个分布式流处理平台,使用基于主题和分区的日志存储,采用拉取(pull)模式,适合高吞吐量、大数据流和实时数据处理的场景,并允许消息重放。 而RabbitMQ 是一种传统的、更灵活的消息代理,基于**推送(...
先说结论 判断一个数n是否为质数(素数)时,只需要判断小于或等于sqrt(n)的数能否整除n即可。这是因为如果n是一个合数,那么n可以分解为a和b两个数,即n = a ✖️ b,那么这两个因数中必然有一个小于或等于sqrt(n),另一个大于或等于sqrt(n)。因此只需要找出小于或等于sqrt(n)...
在分布式系统设计领域,六边形架构(Hexagonal Architecture,又称端口与适配器模式)作为一种以领域为中心的架构模式,通过明确分离核心业务逻辑与外部交互,有效提升系统的可测试性、可扩展性与可维护性。本文从核心概念、实现原理、应用场景及面试高频问题四个维度,结合Spring生态实践,系...
工欲善其事,必先利其器;士欲宣其义,必先读其书。后台开发作为互联网技术领域的掌上明珠,一直都是开发者们的追逐的高峰。本文将从后台开发所涉及到的技术术语出发,基于系统开发、架构设计、网络通信等几个方面让大家对后台开发有一个清晰的了解,讲解全面易懂。 系统开发 1. 高内聚/低耦合 高内聚指一个软件模块...