springcloud stream

2 篇文章 0 订阅
1 篇文章 0 订阅

1.nacos配置

spring:
  kafka:
    bootstrap-servers: 
    consumer:kakfa集群
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
    producer:
      bootstrap-servers: kakfa集群
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer

  cloud:
    stream:
      kafka:
        binder:
          brokers: kakfa集群
          zk-nodes: zk集群
          auto-create-topics: true
          replication-factor: 3
          auto-add-partitions: true
		  group: group1
      bindings:
        id1:
          destination: topic1
          binder: kafka
          producer:
            use-native-encoding: true
          consumer:
            batch-mode: true

2.代码
2.1输入通道

public interface TaskMessageSink {
    String id1 = "id1";
    //powerJob状态变更输入通道
    @Input(value = id1)
    SubscribableChannel id1();
}
//实现类
@EnableBinding(TaskMessageSink.class)
@Slf4j
public class TaskReceiveMessage {
    @Autowired
    private xxx xxx;
    //接收任务状态相关信息
    @StreamListener(TaskMessageSink.id1)
    public void receiveTaskStatusInfo(List<String> taskMessage) {
        try {
            for (String msg : taskMessage) {
                InstanceStatusMsg message = JSON.parseObject(msg, InstanceStatusMsg.class);
                log.info("[接收xx状态信息]: {}", message);
                xxx.updatexxx(message);
            }
        } catch (Exception e) {
            log.error("[接收xx状态信息] 处理失败!", e);
        }}}

2.2发送通道

public interface OutputChannel {
    @Output("topic1")
    MessageChannel handler1();
}
@Service
@EnableBinding(OutputChannel.class)
public class MessageSendService {

    private final OutputChannel outputChannel;

    public MessageSendService(OutputChannel outputChannel) {
        this.outputChannel = outputChannel;
    }
    // 发送数据源变更消息
    public void sendDsUpdateMsg(Msg msg) {
        log.info("发送数据源变更消息:{}", msg);
        outputChannel.handler1().send(MessageBuilder.withPayload(msg).build());
    }	

3.参考网站
https://blog.csdn.net/m0_67393619/article/details/124442130

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值