mirror of
https://gitee.com/mirrors/Spring-Cloud-Alibaba.git
synced 2021-06-26 13:25:11 +08:00
Polish #541, update rocketmq-examples with poll consumer
This commit is contained in:
parent
13ec109e9d
commit
5671851d08
@ -1,10 +1,15 @@
|
|||||||
package org.springframework.cloud.alibaba.cloud.examples;
|
package org.springframework.cloud.alibaba.cloud.examples;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.CommandLineRunner;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.cloud.alibaba.cloud.examples.RocketMQConsumerApplication.MySink;
|
import org.springframework.cloud.alibaba.cloud.examples.RocketMQConsumerApplication.MySink;
|
||||||
import org.springframework.cloud.stream.annotation.EnableBinding;
|
import org.springframework.cloud.stream.annotation.EnableBinding;
|
||||||
import org.springframework.cloud.stream.annotation.Input;
|
import org.springframework.cloud.stream.annotation.Input;
|
||||||
|
import org.springframework.cloud.stream.binder.PollableMessageSource;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.core.ParameterizedTypeReference;
|
||||||
import org.springframework.messaging.SubscribableChannel;
|
import org.springframework.messaging.SubscribableChannel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -27,10 +32,36 @@ public class RocketMQConsumerApplication {
|
|||||||
|
|
||||||
@Input("input4")
|
@Input("input4")
|
||||||
SubscribableChannel input4();
|
SubscribableChannel input4();
|
||||||
|
|
||||||
|
@Input("input5")
|
||||||
|
PollableMessageSource input5();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
SpringApplication.run(RocketMQConsumerApplication.class, args);
|
SpringApplication.run(RocketMQConsumerApplication.class, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ConsumerCustomRunner customRunner() {
|
||||||
|
return new ConsumerCustomRunner();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ConsumerCustomRunner implements CommandLineRunner {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MySink mySink;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run(String... args) throws InterruptedException {
|
||||||
|
while (true) {
|
||||||
|
mySink.input5().poll(m -> {
|
||||||
|
String payload = (String) m.getPayload();
|
||||||
|
System.out.println("pull msg: " + payload);
|
||||||
|
}, new ParameterizedTypeReference<String>() {
|
||||||
|
});
|
||||||
|
Thread.sleep(2_000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,10 @@ spring.cloud.stream.bindings.input4.content-type=text/plain
|
|||||||
spring.cloud.stream.bindings.input4.group=transaction-group
|
spring.cloud.stream.bindings.input4.group=transaction-group
|
||||||
spring.cloud.stream.bindings.input4.consumer.concurrency=5
|
spring.cloud.stream.bindings.input4.consumer.concurrency=5
|
||||||
|
|
||||||
|
spring.cloud.stream.bindings.input5.destination=pull-topic
|
||||||
|
spring.cloud.stream.bindings.input5.content-type=text/plain
|
||||||
|
spring.cloud.stream.bindings.input5.group=pull-topic-group
|
||||||
|
|
||||||
spring.application.name=rocketmq-consume-example
|
spring.application.name=rocketmq-consume-example
|
||||||
|
|
||||||
server.port=28082
|
server.port=28082
|
||||||
|
@ -9,6 +9,7 @@ import org.springframework.cloud.stream.annotation.EnableBinding;
|
|||||||
import org.springframework.cloud.stream.annotation.Output;
|
import org.springframework.cloud.stream.annotation.Output;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.messaging.MessageChannel;
|
import org.springframework.messaging.MessageChannel;
|
||||||
|
import org.springframework.messaging.support.MessageBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:fangjian0423@gmail.com">Jim</a>
|
* @author <a href="mailto:fangjian0423@gmail.com">Jim</a>
|
||||||
@ -23,6 +24,9 @@ public class RocketMQProduceApplication {
|
|||||||
|
|
||||||
@Output("output2")
|
@Output("output2")
|
||||||
MessageChannel output2();
|
MessageChannel output2();
|
||||||
|
|
||||||
|
@Output("output3")
|
||||||
|
MessageChannel output3();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
@ -31,7 +35,12 @@ public class RocketMQProduceApplication {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public CustomRunner customRunner() {
|
public CustomRunner customRunner() {
|
||||||
return new CustomRunner();
|
return new CustomRunner("output1");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public CustomRunner customRunner2() {
|
||||||
|
return new CustomRunner("output3");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ -40,11 +49,22 @@ public class RocketMQProduceApplication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static class CustomRunner implements CommandLineRunner {
|
public static class CustomRunner implements CommandLineRunner {
|
||||||
|
|
||||||
|
private final String bindingName;
|
||||||
|
|
||||||
|
public CustomRunner(String bindingName) {
|
||||||
|
this.bindingName = bindingName;
|
||||||
|
}
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SenderService senderService;
|
private SenderService senderService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MySource mySource;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(String... args) throws Exception {
|
public void run(String... args) throws Exception {
|
||||||
|
if (this.bindingName.equals("output1")) {
|
||||||
int count = 5;
|
int count = 5;
|
||||||
for (int index = 1; index <= count; index++) {
|
for (int index = 1; index <= count; index++) {
|
||||||
String msgContent = "msg-" + index;
|
String msgContent = "msg-" + index;
|
||||||
@ -59,6 +79,16 @@ public class RocketMQProduceApplication {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (this.bindingName.equals("output3")) {
|
||||||
|
int count = 50;
|
||||||
|
for (int index = 1; index <= count; index++) {
|
||||||
|
String msgContent = "pullMsg-" + index;
|
||||||
|
mySource.output3()
|
||||||
|
.send(MessageBuilder.withPayload(msgContent).build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class CustomRunnerWithTransactional implements CommandLineRunner {
|
public static class CustomRunnerWithTransactional implements CommandLineRunner {
|
||||||
|
@ -12,6 +12,10 @@ spring.cloud.stream.bindings.output2.content-type=application/json
|
|||||||
spring.cloud.stream.rocketmq.bindings.output2.producer.transactional=true
|
spring.cloud.stream.rocketmq.bindings.output2.producer.transactional=true
|
||||||
spring.cloud.stream.rocketmq.bindings.output2.producer.group=myTxProducerGroup
|
spring.cloud.stream.rocketmq.bindings.output2.producer.group=myTxProducerGroup
|
||||||
|
|
||||||
|
spring.cloud.stream.bindings.output3.destination=pull-topic
|
||||||
|
spring.cloud.stream.bindings.output3.content-type=text/plain
|
||||||
|
spring.cloud.stream.rocketmq.bindings.output3.producer.group=pull-binder-group
|
||||||
|
|
||||||
spring.application.name=rocketmq-produce-example
|
spring.application.name=rocketmq-produce-example
|
||||||
|
|
||||||
server.port=28081
|
server.port=28081
|
||||||
|
Loading…
x
Reference in New Issue
Block a user