配置相关
与消息队列配置相关的常见问题如下:
消息队列消息在服务器保存多长时间?
存储的消息最多保存 3 天,超过 3 天未消费的消息会被删除。
消息队列消息 Body 的长度限制是多少?
消息大小根据消息类型来限制。具体限制如下所述:
普通消息和顺序消息:4 MB
事务消息和定时/延时消息:4 MB
消息队列客户端如何设置消费线程数?
在启动 Consumer 时,设置一个 ConsumeThreadNums 属性即可。具体示例如下所示:
public static void main(String[] args) {
Properties properties = new Properties();
properties.put(PropertyKeyConst.GROUP_ID, "GID_001");
// 阿里云账号 AccessKey 拥有所有 API 的访问权限,风险很高。强烈建议您创建并使用 RAM 用户进行 API 访问或日常运维,请登录 RAM控 制台创建 RAM 用户。
// 此处以把 AccessKey 和 AccessKeySecret 保存在环境变量为例说明。
// 强烈建议不要把 AccessKey 和 AccessKeySecret 保存到代码里,会存在密钥泄漏风险
properties.put(PropertyKeyConst.AccessKey, "SOFA_AK_ENV");
properties.put(PropertyKeyConst.SecretKey, "SOFA_SK_ENV");
/**
* 设置消费端线程数固定为 20
*/
properties.put(PropertyKeyConst.ConsumeThreadNums, 20);
Consumer consumer = ONSFactory.createConsumer(properties);
consumer.subscribe("TestTopic", "*", new MessageListener() {
publicAction consume(Message message, ConsumeContext context) {
System.out.println("Receive: " + message);
return Action.CommitMessage;
}
});
consumer.start();
System.out.println("Consumer Started");
}