Giter Site home page Giter Site logo

rocketmq-spring's Introduction

RocketMQ-Spring

Build Status Coverage Status Maven Central GitHub release License Average time to resolve an issue Percentage of issues still open

This project aims to help developers quickly integrate RocketMQ with Spring Boot.

Features

  • Send messages synchronously
  • Send messages asynchronously
  • Send messages in one-way mode
  • Send ordered messages
  • Send batched messages
  • Send transactional messages
  • Send scheduled messages with delay level
  • Consume messages with concurrent mode (broadcasting/clustering)
  • Consume ordered messages
  • Filter messages using the tag or sql92 expression
  • Support message tracing
  • Support authentication and authorization
  • Support request-reply message exchange pattern
  • Consume messages with push/pull mode

Prerequisites

  • JDK 1.8 and above
  • Maven 3.0 and above
  • Spring Boot 2.0 and above

Usage

Add a dependency using maven:

<!--add dependency in pom.xml-->
<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-spring-boot-starter</artifactId>
    <version>${RELEASE.VERSION}</version>
</dependency>

Samples

Please see the rocketmq-spring-boot-samples.

User Guide

Please see the wiki page.

Contributing

We are always very happy to have contributions, whether for trivial cleanups or big new features. Please see the RocketMQ main website to read the details.

License

Apache License, Version 2.0 Copyright (C) Apache Software Foundation

rocketmq-spring's People

Contributors

aaron-ai avatar caimofei avatar dependabot[bot] avatar drpmma avatar duhenglucky avatar fangjian0423 avatar gongzhengme avatar heihaozi avatar lilinjiang avatar liuliuzo avatar lizhanhui avatar llq1020 avatar lookcoder avatar maixiaohai avatar martindai avatar mxsm avatar odbozhou avatar panzhi33 avatar percyzhang avatar rongtongjin avatar shannonding avatar shaolsh avatar snicoll avatar vongosling avatar walking98 avatar wbzj1110 avatar wz2cool avatar zhangjidi2016 avatar zhouchunhai avatar zkzlx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rocketmq-spring's Issues

Consumers register with container occurs NPE because get target class of consumer is inaccurate

The issue tracker is ONLY used for bug report and feature request.

Any question or RocketMQ proposal please use our mailing lists.

BUG REPORT

  1. Please describe the issue you observed:
    Consumers register with container occurs NPE because get target class of consumer is inaccurate
  • What did you do (The steps to reproduce)?

  • What did you expect to see?

  • What did you see instead?
    java.lang.NullPointerException: null
    at org.apache.rocketmq.spring.autoconfigure.ListenerContainerConfiguration.validate(ListenerContainerConfiguration.java:124)
    at org.apache.rocketmq.spring.autoconfigure.ListenerContainerConfiguration.registerContainer(ListenerContainerConfiguration.java:88)
    at org.apache.rocketmq.spring.autoconfigure.ListenerContainerConfiguration$$Lambda$25/151847034.accept(Unknown Source)
    at java.util.LinkedHashMap.forEach(LinkedHashMap.java:676)
    at org.apache.rocketmq.spring.autoconfigure.ListenerContainerConfiguration.afterSingletonsInstantiated(ListenerContainerConfiguration.java:76)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:781)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)

image
image

  1. Please tell us about your environment:
    macOS jdk8
  2. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

Jackson ObjectMapper Shadow serialization problem

  1. Please describe the issue you observed:

Because Jackson's ObjectMapper configuration may be different in different services, such as Date, LocalDateTime will cause serialization to fail, as a dead letter.

由于在不同服务中,Jackson 的 ObjectMapper 配置可能不一样,比如 Date,LocalDateTime 会导致序列化失败,照成死信。

  1. Provide any additional detail on your proposed use case for this feature.

For Jackson message serialization and deserialization, it is recommended to extend the ObjectMapper to add a RocketmqObjectMapper.
This avoids using the ObjectMapper in the service.

对于 Jackson 消息序列化和反序列化,建议 继承 ObjectMapper 添加 RocketmqObjectMapper,
从而避免使用服务里的 ObjectMapper。

please add spring-boot-configuration-processor dependcy to generate spring-configuration-metadata.json

The issue tracker is ONLY used for bug report and feature request.

Any question or RocketMQ proposal please use our mailing lists.

FEATURE REQUEST

  1. Please describe the feature you are requesting.

please add spring-boot-configuration-processor dependcy to generate spring-configuration-metadata.json so that IDE can autocomplete the properties
2. Provide any additional detail on your proposed use case for this feature.
in rocketmq-spring-boot's pom.xml ,just add
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>${spring.boot.version}</version>
            <optional>true</optional>
 </dependency>

that's all.


3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?


for better user experience

事务消息返回值问题

@Override
public DemoCommon login(@RequestBody Login login) {
    
    Message<String> msg = MessageBuilder.withPayload("Hello RocketMQ ").setHeader(RocketMQHeaders.KEYS, "KEY_").build();
    TransactionSendResult result = rmt.sendMessageInTransaction("q2", "q2", msg, login);
    System.err.println(result);
    return new DemoCommon();
    
}

@RocketMQTransactionListener(txProducerGroup = "q2")
class Xx implements RocketMQLocalTransactionListener {

    @Override
    public RocketMQLocalTransactionState executeLocalTransaction(Message msg, Object arg) {
        Login login = (Login) arg;
        DemoCommon dc = demoService.selectDemo(login);
        return RocketMQLocalTransactionState.COMMIT;
    }

    @Override
    public RocketMQLocalTransactionState checkLocalTransaction(Message msg) {
        return RocketMQLocalTransactionState.COMMIT;
    }

}

请问,这种情况,我想在login方法中获得RocketMQLocalTransactionListener 中返回值DemoCommon,该咋办呢?谢谢。

spring-boot-starter consumers cannot be inherited

This issure is migrated from here apache/rocketmq-externals#173

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

I want to define an abstract class that inherits RocketMQListener, which is used to handle message acceptance and message forwarding. When inheriting this abstract class as a consumer, the message will be reported incorrectly.

  • What did you expect to see?

Classes that implement RocketMQListener can be inherited and can accept messages as consumers.

  • What did you see instead?
  1. Please tell us about your environment:

The consuers can‘t receive message and throw a exception

2018-12-05 01:26:23.401 INFO 2653 --- [MessageThread_1] r.s.s.s.DefaultRocketMQListenerContainer : convert failed. str:broadcast msg, msgType:class java.lang.Object
2018-12-05 01:26:23.409 WARN 2653 --- [MessageThread_1] r.s.s.s.DefaultRocketMQListenerContainer : consume message failed. messageExt:MessageExt [queueId=2, storeSize=282, queueOffset=4, sysFlag=0, bornTimestamp=1543944383229, bornHost=/192.168.0.13:38042, storeTimestamp=1543944383230, storeHost=/172.17.0.1:10911, msgId=AC11000100002A9F000000000002C7C0, commitLogOffset=182208, bodyCRC=278141710, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='broadcastTopic-topic', flag=0, properties={USERS_id=3e3fdc75-55a7-9dee-e6c3-a21e8de05d1f, MIN_OFFSET=0, USERS_timestamp=1543944383227, MAX_OFFSET=5, USERS_contentType=text/plain, CONSUME_START_TIME=1543944383399, UNIQ_KEY=AC1100010B0518B4AAC214E886FD000F, WAIT=false}, body=[98, 114, 111, 97, 100, 99, 97, 115, 116, 32, 109, 115, 103], transactionId='null'}]

java.lang.RuntimeException: cannot convert message to class java.lang.Object
at org.apache.rocketmq.spring.starter.supports.DefaultRocketMQListenerContainer.doConvertMessage(DefaultRocketMQListenerContainer.java:222) ~[classes/:na]
at org.apache.rocketmq.spring.starter.supports.DefaultRocketMQListenerContainer.access$100(DefaultRocketMQListenerContainer.java:50) ~[classes/:na]
at org.apache.rocketmq.spring.starter.supports.DefaultRocketMQListenerContainer$DefaultMessageListenerConcurrently.consumeMessage(DefaultRocketMQListenerContainer.java:154) ~[classes/:na]
at org.apache.rocketmq.client.impl.consumer.ConsumeMessageConcurrentlyService$ConsumeRequest.run(ConsumeMessageConcurrentlyService.java:417) [rocketmq-client-4.3.0.jar:4.3.0]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_181]
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) [na:1.8.0_181]
at java.util.concurrent.FutureTask.run(FutureTask.java) [na:1.8.0_181]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_181]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_181]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]
Caused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'broadcast': was expecting ('true', 'false' or 'null')
at [Source: broadcast msg; line: 1, column: 10]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1702) ~[jackson-core-2.8.10.jar:2.8.10]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:558) ~[jackson-core-2.8.10.jar:2.8.10]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2839) ~[jackson-core-2.8.10.jar:2.8.10]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1903) ~[jackson-core-2.8.10.jar:2.8.10]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:749) ~[jackson-core-2.8.10.jar:2.8.10]
at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3850) ~[jackson-databind-2.8.10.jar:2.8.10]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3799) ~[jackson-databind-2.8.10.jar:2.8.10]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2858) ~[jackson-databind-2.8.10.jar:2.8.10]
at org.apache.rocketmq.spring.starter.supports.DefaultRocketMQListenerContainer.doConvertMessage(DefaultRocketMQListenerContainer.java:219) ~[classes/:na]
... 9 common frames omitted

  1. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):

Problems about the keys of message header conversion

Spring messaging/integration provide some annotations or interfaces like @Header, SimpleSequenceSizeReleaseStrategy to get value from Spring Message Header or handle aggregator messages.

But now the keys in Spring Message Header has been changed by RocketMQ message header conversion.

For example:

I set index key in Spring Message Header, it will be converted to USERS_index when convert to RocketMQ Message from Spring Message.

It will converted to PROPERTIES key(This is a Map, then get by USERS_index key ) when convert back to Spring Message from RocketMQ Message.

So is it better to use raw key in rocketmq user property header and add rocketmq prefix in non user property header in message header conversion?

Typo error

The issue tracker is ONLY used for bug report and feature request.

Any question or RocketMQ proposal please use our mailing lists.

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What did you expect to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.
    README_zh_CN.md中的列子应该是例子
  2. Provide any additional detail on your proposed use case for this feature.
    README_zh_CN.md中的列子应该是例子
  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

Maven dependency cannot be pulled

The issue tracker is ONLY used for bug report and feature request.

Any question or RocketMQ proposal please use our mailing lists.

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What did you expect to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

How to disable RocketMQ to load the log file itself

The issue tracker is ONLY used for bug report and feature request.

Any question or RocketMQ proposal please use our mailing lists.

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What did you expect to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

can no run

The issue tracker is ONLY used for bug report and feature request.

Any question or RocketMQ proposal please use our mailing lists.

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What did you expect to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

RocketMQTemplate method sigure conflict

the bellow two method's sigure from RocketMQTemplate are conflict
syncSend(String destination, Object payload, long timeout)
syncSend(String destination, Collection<Message<?>> messages, long timeout)

when i send batch message,i mean to call the syncSend(String destination, Collection<Message<?>> messages, long timeout) method,but in fact,it always call the syncSend(String destination, Object payload, long timeout)

如何同时消费同一个topic下的不同tag消息

请问在使用过程中,我在同一个topic下写了多个不同tag的消息,但是在使用时,发现消费端如果同时消费多个tag,接收到消息,如果只消费一个tag,能接收到,是为什么呢?

Message asynchronously sent failed to retry

How to set the message asynchronous send failure retries?
I mean, is this feature supported or there is no support plan in the future? If not, I can only implement it myself in the business code.

Dynamic reconfiguration of consumer support

FEATURE REQUEST

  1. Please describe the feature you are requesting. issue?

The current listenerContainer is a container corresponding to a consumer, but currently it is impossible to implement a consumer dynamic reconfiguration of consumer threads and other configurations that need to rebuild the consumer. After rocketmq consumer.shutdown, new objects must be built. Currently, dynamic configuration dependency implementation is not provided. It is recommended to provide support.

using getter and setter to get or set properties

FEATURE REQUEST

  1. Please use getter and setter instead of annotation.

The current DefaultRocketMQListenerContainer#rocketMQMessageListener uses annotation to set properties, which prevents using of custom annotation to override these properties. I would like to know if it is possible to use getter and setter instead of the annotation?

Make the README Travis CI works

The issue tracker is ONLY used for bug report and feature request.

Any question or RocketMQ proposal please use our mailing lists.

BUG REPORT

  1. Please describe the issue you observed:

The build-ci result is disable in the frontpage. need to config/enable it

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

RocketMQUtil#addUserProperties can override headers from rocketmq(eg topic,tags,queue id...)

BUG REPORT

  1. Please describe the issue you observed:
    private static void addUserProperties(Map<String, String> properties, MessageBuilder messageBuilder) {
        if (!CollectionUtils.isEmpty(properties)) {
            properties.forEach((key, val) -> {
                if (!MessageConst.STRING_HASH_SET.contains(key) && !MessageHeaders.ID.equals(key)
                    && !MessageHeaders.TIMESTAMP.equals(key)) {
                    messageBuilder.setHeader(key, val);
                }
            });
        }
    }

Here is the judgment that can not override the properties from the rocketmq, but the actual key is not included in the MessageConst.STRING_HASH_SET, the real need to add the prefix RocketMQHeaders.PREFIX.(Maybe the previous judgment needs to be retained, but it is necessary to add another layer of judgment.)

    public static String toRocketHeaderKey(String rawKey) {
        return RocketMQHeaders.PREFIX + rawKey;
    }

refer spring-cloud-incubator/spring-cloud-alibaba#684.

[Enhancement] Polish the code as Spring’s best practice

FEATURE REQUEST

  1. Please describe the feature you are requesting.

Polish some code according to Spring community's best practice.

  1. Provide any additional detail on your proposed use case for this feature.

  2. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

should-have

广播消费和普通的一次性消费怎么配置

The issue tracker is ONLY used for bug report and feature request.

Any question or RocketMQ proposal please use our mailing lists.

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What did you expect to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

`RocketMQProperties#nameServer` should offer a more user-friendly format

The nameServer property ultimately maps to ClientConfig#setNamesrvAddr that requires a host:port pair separated by ;

I think it would be nicer to not expose that complexity back to the configuration. Rather, the configuration should expose a List<String> where each item represent a host:port pair.

There are several advantages to this:

  • Each pair can be checked individually and an exception can be thrown if its format is invalid
  • YAML configuration is much more readable as you can use the native list format
  • Perhaps the property can be renamed to servers to express it is a list

Taking this into consideration (+ #9) the property can be configured as follows:

rocketmq:
  servers:
    - 10.0.0.1:9876
    - 10.0.0.2:9876

Consumers register with container occurs NPE because get target class of consumer is inaccurate

The issue tracker is ONLY used for bug report and feature request.

Any question or RocketMQ proposal please use our mailing lists.

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What did you expect to see?

  • What did you see instead?
    java.lang.NullPointerException: null
    at org.apache.rocketmq.spring.autoconfigure.ListenerContainerConfiguration.validate(ListenerContainerConfiguration.java:124)
    at org.apache.rocketmq.spring.autoconfigure.ListenerContainerConfiguration.registerContainer(ListenerContainerConfiguration.java:88)
    at org.apache.rocketmq.spring.autoconfigure.ListenerContainerConfiguration$$Lambda$25/151847034.accept(Unknown Source)
    at java.util.LinkedHashMap.forEach(LinkedHashMap.java:676)
    at org.apache.rocketmq.spring.autoconfigure.ListenerContainerConfiguration.afterSingletonsInstantiated(ListenerContainerConfiguration.java:76)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:781)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)

image
image

  1. Please tell us about your environment:
    macOS jdk8
  2. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

TransactionListener not found

本地测试在idea下测试正常,而打包后调用
Caused by: java.lang.NoClassDefFoundError: org/apache/rocketmq/client/producer/TransactionListener
at org.apache.rocketmq.spring.core.RocketMQTemplate.syncSend(RocketMQTemplate.java:142)
at org.apache.rocketmq.spring.core.RocketMQTemplate.syncSend(RocketMQTemplate.java:122)
at org.apache.rocketmq.spring.core.RocketMQTemplate.syncSend(RocketMQTemplate.java:178)
at org.apache.rocketmq.spring.core.RocketMQTemplate.syncSend(RocketMQTemplate.java:165)

Can not create topic automatically

when after integrateing with rocketmq-spring-boot-start 2.0.1, the app can not create topic automatically
rocketmq server version is 4.0.0
config file is as follows:
rocketmq.name-server=***:9876;***:9876
rocketmq.producer.group=message-producer-group
rocketmq.producer.retry-times-when-send-failed=2
rocketmq.producer.retry-times-when-send-async-failed=2
rocketmq.producer.send-message-timeout=300000
rocketmq.producer.compress-message-body-threshold=4096
rocketmq.producer.max-message-size=4194304
rocketmq.producer.retry-next-server=true
rocketmq.custom.topic=custom-sync-topic

Can the starter support multi rocketmq server

The issue tracker is ONLY used for bug report and feature request.

Any question or RocketMQ proposal please use our mailing lists.

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What did you expect to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

I can sub message from an rocketmq server and pub to another rocketmq server

  1. Provide any additional detail on your proposed use case for this feature.

I want to gather message from client rocketmq(in customer env) to the center env rocketmq(in aliyun)

  1. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

nice-to-have

Can not compile acl examples in the project

The issue tracker is ONLY used for bug report and feature request.

Any question or RocketMQ proposal please use our mailing lists.

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?
    mvn comple

  • What did you expect to see?
    comple acl example

  • What did you see instead?
    Can not compile acl examples in the project

  1. Please tell us about your environment:
    rocketmq spring 2.0.3, jdk8
  2. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

Can the starter provide support for deserializing generic parameters?

When I created the following code, there was an exception:
`@Slf4j
@service
@RocketMQMessageListener(consumerGroup = "abc" ,topic = TopicConstant.test_topic)
public class TestConsumer implements RocketMQListener<TestEvent> {

@Override
public void onMessage(TestEvent<String> s) {
    log.info("consumer message:{}", s);
}

}`

Exception-------
Caused by: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class at org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer.getMessageType(DefaultRocketMQListenerContainer.java:381) at org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer.afterPropertiesSet(DefaultRocketMQListenerContainer.java:277) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1804) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1741) ... 19 common frames omitted

Support payload with byte[] type in message conversion

Spring Cloud RocketMQ Binder now is integrating with RocketMQ Spring.

The payload in spring message will be converted to byte[] type from String type by OutboundContentTypeConvertingInterceptor. The conversion of RocketMQUtil should support the byte[] type of payload.

Unable to calculate a request signature,Algorithm HmacSHA1 not available

The issue tracker is ONLY used for bug report and feature request.

Any question or RocketMQ proposal please use our mailing lists.

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?
    When use ACLEnable=true,it didn't work.

  • What did you expect to see?

  • What did you see instead?

  1. Please tell us about your environment:
    JDK 1.8,Window 10,Rocket 4.5.0,
  2. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):

FEATURE REQUEST
The RocketMQ config broker.conf:
aclEnable=true
The plain_acl.yml:
accounts:

  • accessKey: pub
    secretKey: 12345678
    whiteRemoteAddress:
    admin: false
    defaultTopicPerm: PUB
    defaultGroupPerm: PUB
    topicPerms:

    • topicA=PUB
    • topicB=PUB
      groupPerms:
    • group-producer1=PUB
  • accessKey: sub
    secretKey: 12345678
    whiteRemoteAddress:
    admin: false
    defaultTopicPerm: DENY
    defaultGroupPerm: DENY
    topicPerms:

    • topicA=SUB
    • topicB=SUB
      groupPerms:
    • group-consumer1=SUB

Document typo ?

这个@RocketMQTransactionListener(transName="test")注解里的参数名称应该是txProducerGroup吧?
rocketMQTemplate.sendMessageInTransaction("test", "test-topic" msg, null);这个msg前面是不是少个逗号?

I hope that the txProducerGroup of @RocketMQTransactionListener can support multiple.

FEATURE REQUEST

  1. Please describe the feature you are requesting.
    I want multiple groups to use the same RocketMQTransactionListener bean

  2. Provide any additional detail on your proposed use case for this feature.
    For example:

@RocketMQTransactionListener(
        txProducerGroup = {
                "${spring.application.name}-${spring.profiles.active}-transactional-account-producer",
                "${spring.application.name}-${spring.profiles.active}-transactional-account-producer2"
        },
        corePoolSize = 5,
        maximumPoolSize = 10
)
public class TransactionListenerImpl extends AbstractTransactionListener {
}

Or

@RocketMQTransactionListener(
        txProducerGroup = "${spring.application.name}-${spring.profiles.active}-transactional-account-producer",
        corePoolSize = 5,
        maximumPoolSize = 10
)
@RocketMQTransactionListener(
        txProducerGroup = "${spring.application.name}-${spring.profiles.active}-transactional-account-producer2",
        corePoolSize = 5,
        maximumPoolSize = 10
)
public class TransactionListenerImpl extends AbstractTransactionListener {
}
  1. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?
    nice-to-have

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.