业务场景
最近在工作中,碰到对外协作的接口项目,需要走华为云的消息队列,一周左右的配置和开发下来,初步了解了一些,大致如下:
一、华为云环境配置
对接中这次主要是生产者模式,topic产商也定制好了,配置这一步是可以省略了。
1、 登录华为云平台
2、 双击项目资源进入配置页面
3、新增topic
二、项目配置
接下来是相应的项目环境配置、jar包引入。
1、pom引入
<!-- 引入Kafka客户端-->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
2、yml文件配置kafka
三、对应的测试类demo
相应测试生产、消费的demo
1、生产方
/**
*
* ======================================================================
* ======================华为云消息队列接口==============================
* ======================================================================
* 测试kafka-生产
*
* */
void testKafka();
@Override
public void testKafka() {
KafkaTemplate<String,String> kafkaTemplate = SpringUtil.getBean(KafkaTemplate.class);;
JSONObject params = new JSONObject();
Map body = new HashMap();
body.put("test","参数1");
params.put("jsonStr",body);
kafkaTemplate.send(new ProducerRecord<String, String>("topic-name",null,params.toString()));
}
2、消费方
/**
* 消费监听
*
* */
@KafkaListener(topics = {"topic_name"},groupId = "groupId_name")
@ApiOperation(value = "kafka测试-消费监听", notes = "kafka测试-消费监听")
public void testKafkaConsumer(String value){
HWMqsThread receiveThread = new HWMqsThread(value);
receiveThread.start();
//相应业务逻辑处理代码......
}
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
/**
* @desc:华为云消息队列线程类
*/
@Data
@Slf4j
public class HWMqsThread extends Thread {
/**
* 消费信息字符串
* */
private String value;
public HWMqsThread(String value){
this.value = value;
}
@Override
public void run(){
//消费主题
log.info("========================kafka消费消息成功=================================");
if (ObjectUtil.isEmpty(value)){
return;
}
log.info("========================kafka消费监听:value================================="+value);
JSONObject jsonObject = JSON.parseObject(value);
log.info("========================kafka消费监听:jsonObject================================="+jsonObject);
System.out.println(jsonObject);
}
}
尾言
以上是大致的学习积累,后续业务拓展使用接触到的新内容也会陆续更新上来,感谢阅读。