当前位置: 首页 > 知识库问答 >
问题:

嵌入式Kafka与真实课堂交流

拓拔飞飙
2023-03-14

我有一个Spring Boot应用程序,可以使用Spring kafkaSpring kafka test。我有一位制片人。

@Component
public class MessageProducer {
   private KafkaTemplate<String, String> kafkaTemplate;

   @Autowired
   public MessageProducer(KafkaTemplate<String, String> kafkaTemplate) {
       this.kafkaTemplate = kafkaTemplate;
   }

   public void sendMessage(String message, String topicName) {
       kafkaTemplate.send(topicName, message);
   }
}

我想写JUnit上面没有任何嘲弄类。我尝试了EmBeddedKafka规则,但我不确定如何将其连接到我的应用程序定义的kafka代理,所以当我发送主题消息时,消费者(其中@kafkaLister存在)应该选择消息并处理它。

有了embedded kafkarule我也得到了下面的错误。

 [Producer clientId=producer-1] Connection to node 0 (localhost/192.168.0.24:57516) could not be established. Broker may not be available.

有人能告诉我如何在不模仿任何类的情况下为我的Kafka制作人编写Junit,它应该用真实的类进行测试。

共有1个答案

融渊
2023-03-14

是的,我尝试了以下实现,它对我有用。你可以试试这个。请告诉我,以防我这边需要任何进一步的帮助。

import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import com.the.basic.tech.info.kafka.consumer.Receiver;
import com.the.basic.tech.info.kafka.producer.Sender;
import com.the.basic.tech.info.model.Employee;

@SpringBootApplication
public class SpringKafkaApplication implements CommandLineRunner {

    @Autowired
    Sender sndr;
    
    @Autowired
    Receiver rcvr;
    
  public static void main(String[] args) {
    SpringApplication.run(SpringKafkaApplication.class, args);
  }
  
    @Override
    public void run(String... arg0) throws Exception {
        Employee employee = new Employee("2121", "John", "Dept-A", "3000", "30", "California");
        sndr.send(employee);

        rcvr.getLatch().await(10000, TimeUnit.MILLISECONDS);
    }
}

示例项目[Spring Boot Spring Kafka with ZooManager JSON序列化|反序列化示例]https://thebasictechinfo.com/java-8/spring-boot-spring-kafka-with-zookeeper-json-serialization-deserialization-example/

 类似资料:
  • 我在我的SpringBoot应用程序中使用下面提到的属性,在文件中让LDAP代码在我的本地机器上运行。 我想同时拥有我的嵌入式配置

  • Scala课堂是Twitter启动的一系列讲座,用来帮助有经验的工程师成为高效的Scala 程序员。Scala是一种相对较新的语言,但借鉴了许多熟悉的概念。 因此,课程中的讲座假设听众知道这些概念,并展示了如何在Scala中使用它们。我们发现这是一个让新工程师能够快速上手的有效方法。网站里的是伴随这些讲座的书面材料,这些文字材料本身也是很有用的。 方法 我们认为最有意义的教学方式是,不要把Scal

  • 轻松搭建企业课库,支持多种智能配课形式。 轻松搭建企业课库 1.创建并管理课程 ● 上传并管理多种形式的课程,指派员工、部门、用户组学习。 管理后台-学习管理-课程管理-新增课程 填写课程基本信息 上传课程封面 上传课件,可素材库中批量添加视频然后再调取 学习管理-课程管理-课程水印设置 根据需要去设置随堂考试,也可跳过此步骤 直接发布到选课中心供学员选修学习 到期未完成学习的学员可申请延期学习

  • 1.课堂练习列表查询 通过该接口可以获取课堂练习数据, 地址为: https://spark.bokecc.com/api/exercise/list 需要传递以下参数: 参数 说明 userid ⽤户 id,不可为空 videoid 视频 id,不可为空 返回字段含义如下: 参数 说明 id 练习id title 练习名称 appeartime 练习出现的时间 isjump 是否允许跳过 (0否

  • 10、课堂设置 点击“设置”菜单,讲师可设置课堂信息、连麦方式、视频清晰度等。视频清晰度设置越高,对网络要求也越高,请根据自身情况进行调节。 课堂名称 需100个字符以内(1个汉字、数字、标点都算1个字符)。 课堂连麦模式 设置学生参与连麦的方式。 (1)自由连麦:学生可自由连麦,无需老师确认; (2)举手连麦:学生可举手连麦,需要老师确认后才可连麦; (3)自动连麦:学生进入房间后自动连麦。 连

  • 8. 课堂工具 使用菜单栏的课堂工具,讲师可发起共享桌面、点名、答题、头脑风暴、投票、计时器、循环连麦、辅助摄像头等多种教学功能。 8.1. 共享桌面 讲师可共享自己的桌面或应用窗口。开启分享共享桌面的音频功能后,web端旁听者听不到讲师的声音。初次使用桌面共享功能,会提示安装桌面共享插件,如下图所示: 安装好插件后,点击“共享桌面”即可分享自己的桌面屏幕。支持完整桌面共享、应用窗口共享、Chro