Kafaka实战应用

1功能需求

有这么多消息中间件,为什么要使用kafka呢,Kafka,在大数据领域,Kafka目前是使用最多的框架,为了适应项目中大数据量的吞吐,实时流量计算等功能。

2定义

2.1约束定义

1.Topic命名约束:
Topic分为单类和混合消息,不同类消息命名约束如下:
  • 单类:heima.topic.[自定义名称].single
  • 混合类: heima.topic.[自定义名称].bus
    将工具类拷贝到common模块下的kafka包中,为了连接上kafka,创建配置文件:
	kafka.hosts=localhost:9092
	kafka.group=heima.${profiles.name}.${spring.applicaiton.name}
   #单消息通道,需要以single结尾
   kafka.topic.admin-test=${kafka.topic.admin-test}

2.2重点封装类:

kafkaMessage:封装了消息内容,还封装了消息类型,当前的时间,自己封装消息的时候一定要去继承KafKaMessage
kafkaSender,注入了kafkaTemplate:用来发送消息
kafkaTmplate.send(topic,key,message);
topic:消息名称
message:具体消息的内容

KafkaProducerConfig用来初始化KafkaTemplate的配置类
KafkaListener用来接受消息,所有接收消息的类,都需要实现这个类
发送和接收都依赖于KafkaTopicConfig.需要去maven_test配置中读取属性。
我们在发送消息的时候,需要在maven_test.properties中定义消息中定义消息队列的名称,同时在KafkaTopicConfig中添加对应的消息队列名称的属性。

实现设计

消息的生产者

	@SpringBootTest
	@Runwith
	public class KafkaTest{
	@Autowired
	private KafkaTemplate<String,String> kafkaTemplate;
	@Test
	public void test(){
		kafkaTemplate.send("topic.test","123KEY","itcast...");
		
	}	
}

消息的消费者

@compoent
public class TestKafkaListener implement KafkaListener{
	@Override
	public String topic(){
	return "topic.test";
}
@Override
	public void onMessage(ConsummerRecord data,Consumer consumer){
		System.out.println("===接收到的消息为===>"+data);
}
@Override
	public void onMessage(Object  o){

	}
}

# 开发实现




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值