3.7k 3 分钟

本文使用技术介绍 Dubbo 3.0.3 Springboot 2.5.5 文中代码已删减,具体代码位置见文末。 # 本文目标 快速构建 Springboot 应用,并继承 Dubbo 。 提供一个服务者,一个消费者。 在浏览器中请求消费者服务, 消费者服务调用 服务提供者,返回 响应。 # 创建项目 # 创建服务提供者 在 chapter02-provider 这个 module 下,编写了两个 sub module . chapter02-provider-api 表示对外提供的 RPC 接口。 chapter02-provider-impl 表示 RPC...
3.7k 3 分钟

本文使用技术介绍 Dubbo 3.0.3 Springboot 2.5.5 文中代码已删减,具体代码位置见文末。 # 本文目标 快速构建 Springboot 应用,并集成 Dubbo 。 提供一个服务者,一个消费者。 在浏览器中请求消费者服务, 消费者服务调用 服务提供者,返回 响应。 # 创建项目 # 创建服务提供者 在 chapter02-provider 这个 module 下,编写了两个 sub module . chapter02-provider-api 表示对外提供的 RPC 接口。 chapter02-provider-impl 表示 RPC...
1k 1 分钟

# 题目信息 Time Limit: 1000/500 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 745568 Accepted Submission(s): 188863 # Problem Description Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge). In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + … +...
3.4k 3 分钟

本文旨在快速搭建一个 纯 dubbo 微服务 应用。 # 创建一个项目 consumer 表示一个消费者。 provider 标识一个服务提供者。 provider-api 表示对外提供服务的 api. 我们现实的开发中,往往是一个服务既充当服务提供者角色,又充当服务消费者的角色。所以,每个服务都会有一个两个模块, 1.provider ,服务的实现逻辑模块, 2.provider-api : 服务对外暴露的 api 模块。 # 引入依赖 在 父级 pom 中加入如下依赖: 123456789101112131415161718<properties>...
671 1 分钟

# 题目信息 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1060311 Accepted Submission(s): 313490 # Problem Description Calculate A + B. # Input Each line will contain two integers A and B. Process to end of file. # Output For each case, output A +...
26k 23 分钟

上一篇文章 RocketMQ 架构设计之启动过程解析 分析了 NameServer , Broker , Producer , Consumer 四个部分的启动过程,这边文章我们分析 消息的收发过程. # 生产者发送消息过程解析 我们还是看上篇文章中的例子: 123456789101112131415161718192021// 使用GroupName初始化ProducerDefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");//...
12k 11 分钟

之前我们已经学习了 RocketMQ 是由四个部分组成的。这篇文章更加深入的来看看这个四个部分。 # NameServer 接下来,我们来看 NameServer 的相关内容,我们都知道 NameServer 是 RocketMQ 的注册中心。那它肯定会有 服务发现,检查检查,路由等等功能, 我们就按照这个思路去看看 NameServer 是如何启动的。 # NameSrv 的启动过程 我们在部署 RocketMQ 的时候,使用下面的命令启动了 RocketMQ 的 NameServer . 1nohup sh mqnamesrv & 这条命令其实执行的是: 1sh...
3.7k 3 分钟

事务消息共有三种状态,提交状态、回滚状态、中间状态: TransactionStatus.CommitTransaction : 提交事务,它允许消费者消费此消息。 TransactionStatus.RollbackTransaction : 回滚事务,它代表该消息将被删除,不允许被消费。 TransactionStatus.Unknown : 中间状态,它代表需要检查消息队列来确定状态。 # 发送事务消息样例 # 创建事务性生产者 使用 TransactionMQProducer 类创建生产者,并指定唯一的 ProducerGroup...
1.9k 2 分钟

在大多数情况下, TAG 是一个简单而有用的设计,其可以来选择您想要的消息。例如: 12DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("CID_EXAMPLE");consumer.subscribe("TOPIC", "TAGA || TAGB || TAGC"); 消费者将接收包含 TAGA 或 TAGB 或 TAGC 的消息。但是限制是一个消息只能有一个标签,这对于复杂的场景可能不起作用。在这种情况下,可以使用...
2.5k 2 分钟

# 批量消息样例 批量发送消息能显著提高传递小消息的性能。限制是这些批量消息应该有相同的 topic ,相同的 waitStoreMsgOK ,而且不能是延时消息。此外,这一批消息的总大小不应超过 4MB 。 # 发送批量消息 如果您每次只发送不超过 4MB 的消息,则很容易使用批处理,样例如下: 1234567891011String topic = "BatchTest";List<Message> messages = new ArrayList<>();messages.add(new...