修改:kafka 订阅实现修改
This commit is contained in:
@@ -1,9 +1,17 @@
|
||||
package com.zdemo.test;
|
||||
|
||||
import com.zdemo.Event;
|
||||
import com.zdemo.redis.RedisProducer;
|
||||
import com.zdemo.EventType;
|
||||
import com.zdemo.kafak.KafakProducer;
|
||||
import org.junit.Test;
|
||||
import org.redkale.boot.Application;
|
||||
import org.redkale.convert.json.JsonConvert;
|
||||
import org.redkale.util.TypeToken;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
|
||||
/**
|
||||
* 消息发布订阅测试
|
||||
@@ -13,14 +21,33 @@ public class AppTest {
|
||||
@Test
|
||||
public void runConsumer() {
|
||||
try {
|
||||
// 启动并开启消费监听
|
||||
Application.singleton(MyConsumer.class);
|
||||
//启动并开启消费监听
|
||||
MyConsumer consumer = Application.singleton(MyConsumer.class);
|
||||
|
||||
try {
|
||||
Thread.sleep(15_000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
//新增订阅主题 a1
|
||||
consumer.addEventType(EventType.of("a1", new TypeToken<Float>() {
|
||||
}, r -> {
|
||||
System.out.println("我收到了消息 主题A 事件:" + JsonConvert.root().convertTo(r));
|
||||
}));
|
||||
|
||||
Thread.sleep(5_000);
|
||||
|
||||
//新增订阅主题 b1、c1
|
||||
consumer.addEventType(
|
||||
// 订阅主题 b1
|
||||
EventType.of("b1", new TypeToken<Map<String, String>>() {
|
||||
}, r -> {
|
||||
System.out.println("我收到了消息 主题B 事件:" + JsonConvert.root().convertTo(r));
|
||||
}),
|
||||
|
||||
// 订阅主题 c1
|
||||
EventType.of("c1", new TypeToken<List<Integer>>() {
|
||||
}, r -> {
|
||||
System.out.println("我收到了消息 主题C 事件:" + JsonConvert.root().convertTo(r));
|
||||
})
|
||||
);
|
||||
|
||||
Thread.sleep(60_000);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -29,14 +56,17 @@ public class AppTest {
|
||||
@Test
|
||||
public void runProducer() {
|
||||
try {
|
||||
RedisProducer producer = Application.singleton(RedisProducer.class);
|
||||
KafakProducer producer = Application.singleton(KafakProducer.class);
|
||||
|
||||
Event event = new Event<>();
|
||||
event.setTopic("c");
|
||||
event.setKey("abx");
|
||||
event.setValue(1f);
|
||||
// 发送不同的 事件
|
||||
float v0 = 1f;
|
||||
Map v1 = Map.of("k", "v");
|
||||
List v2 = asList(1, 2, 3);
|
||||
|
||||
producer.send(Event.of("a1", v0));
|
||||
producer.send(Event.of("b1", v1));
|
||||
producer.send(Event.of("c1", v2));
|
||||
|
||||
producer.send(event);
|
||||
|
||||
try {
|
||||
Thread.sleep(1_000);
|
||||
|
@@ -1,37 +1,22 @@
|
||||
package com.zdemo.test;
|
||||
|
||||
import com.zdemo.Event;
|
||||
import com.zdemo.EventType;
|
||||
import com.zdemo.kafak.KafakConsumer;
|
||||
import org.redkale.convert.json.JsonConvert;
|
||||
import org.redkale.util.TypeToken;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class MyConsumer extends KafakConsumer<Event<String>> {
|
||||
public class MyConsumer extends KafakConsumer {
|
||||
|
||||
public String getGroupid() {
|
||||
return "group-test"; //quest、user、im、live
|
||||
return "group-test"; //消费组名称
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<String> getSubscribes() {
|
||||
return List.of("a", "b", "c", "vis-log");
|
||||
}
|
||||
|
||||
@Override
|
||||
public TypeToken<Event<String>> getTypeToken() {
|
||||
return new TypeToken<Event<String>>() {
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(Event<String> event) {
|
||||
switch (event.getTopic()) {
|
||||
case "a" -> System.out.println("我收到了消息 主题A 事件:" + JsonConvert.root().convertTo(event));
|
||||
case "b" -> System.out.println("我收到了消息 主题B 事件:" + JsonConvert.root().convertTo(event));
|
||||
case "c" -> System.out.println("我收到了消息 主题C 事件:" + JsonConvert.root().convertTo(event));
|
||||
}
|
||||
|
||||
{
|
||||
addEventType(
|
||||
EventType.of("a1", new TypeToken<Float>() {
|
||||
}, r -> {
|
||||
System.out.println("我收到了消息 主题A 事件:" + JsonConvert.root().convertTo(r));
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user