Spud's log

2. SPI 自适应拓展

SPI 自适应拓展 参考链接:dubbo2.6源码分析 1.原理 在 Dubbo 中,很多拓展都是通过 SPI 机制进行加载的,比如 Protocol、Cluster、LoadBalance 等。有时,有些拓展并不想在框架启动阶段被加载,而是希望在拓展方法被调用时,根据运行时参数进行加载。这听起来有些矛盾。拓展未被加载,那么拓展方法就无法被调用(静态方法除外)。拓展方法未被调用...

1. Dubbo SPI 源码解析

Dubbo SPI 源码解析 参考链接:dubbo2.6源码分析 1. SPI 机制概述 SPI (Service Provider Interface) 是一种服务发现机制,允许应用在运行时动态地发现和加载实现类。SPI 的核心思想是将接口实现类的全限定名配置在特定文件中,通过服务加载器读取这些配置文件,从而加载并实例化相应的实现类。这种机制使得框架可以实现更好的扩展性和灵活...

RabbitMQ教程 - 发布/订阅

RabbitMQ教程 - 发布/订阅 发布/订阅(使用Java客户端) 在上一个教程中,我们创建了一个工作队列。工作队列背后的假设是每个任务都只会被发送给一个工作进程。在本教程中,我们将做一些完全不同的事情——我们会将一条消息发送给多个消费者。这种模式被称为 “发布/订阅”。 为了说明这种模式,我们将构建一个简单的日志系统。它将由两个程序组成——第一个程序用于发送日志消息,第二个程序用于...

RabbitMQ教程 - 远程过程调用(RPC)

RabbitMQ教程 - 远程过程调用(RPC) 远程过程调用(使用Java客户端) 在第二个教程中,我们学习了如何使用工作队列在多个工作进程之间分配耗时任务。 但是,如果我们需要在远程计算机上运行一个函数并等待结果呢?这就完全是另一回事了。这种模式通常被称为远程过程调用(Remote Procedure Call,简称RPC)。 在本教程中,我们将使用RabbitMQ构建一个RPC系统...

RabbitMQ教程 - 使用发布者确认实现可靠发布

RabbitMQ教程 - 使用发布者确认实现可靠发布 发布者确认 发布者确认是RabbitMQ为实现可靠发布而推出的扩展功能。当在某个通道上启用发布者确认后,客户端发布的消息会由代理服务器进行异步确认,这意味着消息在服务器端已得到处理。 概述(使用Java客户端) 在本教程中,我们将使用发布者确认功能,确保发布的消息已安全到达代理服务器。我们会介绍几种使用发布者确认的策略,并说明它们的优缺点...

RabbitMQ教程 - “Hello World!”

RabbitMQ教程 - “Hello World!” 简介 RabbitMQ是一个消息代理:它接收并转发消息。你可以把它想象成一个邮局:当你把想要邮寄的信件放入邮箱时,你可以确定邮递员最终会把信件送到收件人手中。在这个类比中,RabbitMQ就相当于邮箱、邮局和邮递员。 RabbitMQ与邮局的主要区别在于,它处理的不是纸张,而是接收、存储和转发数据二进制块——即消息。 Rabbit...

RabbitMQ教程 - 路由(使用Java客户端)

RabbitMQ教程 - 路由(使用Java客户端) 在上一个教程中,我们构建了一个简单的日志系统,能够将日志消息广播给多个接收者。 在本教程中,我们将为其添加一个新特性——让接收者可以只订阅部分消息。例如,我们可以将关键错误消息定向到日志文件(以节省磁盘空间),同时仍然能够在控制台上打印所有日志消息。 绑定 在之前的示例中,我们已经创建过绑定。你可能还记得类似这样的代码: channel...