storm中一个Bolt发emit多次相同类型消息

在Storm的Bolt组件中,emit操作用于将处理后的消息传递到下游Bolt。若要发送多个不同内容的消息,必须确保每次emit时创建新的消息实例。错误的做法是将实例创建置于循环外部,会导致下游接收到重复的最后一条消息,因为Storm的emit是延迟执行的。正确的做法是将实例初始化放入for循环内部,确保每个emit都有独立的对象。此外,提到了作者撰写的《聊聊微服务架构》电子书,涵盖了微服务的入门、搭建、部署等技术话题。
摘要由CSDN通过智能技术生成

在storm中的Bolt中可以处理完成逻辑后,向后面的Blot继续发送消息。

可以发送多个不同的消息,如:

collector.emit("update-delivered-status",new Values(emailDeliverStatus));

collector.emit("save-request",new Values(udsn));


也可以同一个类型的消息发送多个不同内容如;

for (int i = 0; i < emailParamVo.getReceiverNum(); i++) 
			{
				EmailDeliverStatus emailDeliverStatus = new EmailDeliverStatus();
				emailDeliverStatus.setCategoryId(emailParamVo.getCategoryId());
				emailDeliverStatus.setUpdateTime(emailParamVo.getUpdateTime());
				emailDeliverStatus.setStatus(emailParamVo.getEventType());
				emailDeliverStatus.setUserId(emailParamVo.getUserId());
				emailDeliverStatus.setMessageDetail(emailParamVo.getMessageDetail());
				
				StringBuilder receiverBuilder = new StringBuilder(emailParamVo.getReceivers());
				receiverBuilder = receiverBuilder.deleteCh
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值