Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Apache RocketMQ
Rocketmq
提交
47556d6a
R
Rocketmq
项目概览
Apache RocketMQ
/
Rocketmq
上一次同步 大约 3 年
通知
267
Star
16139
Fork
68
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rocketmq
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
47556d6a
编写于
11月 28, 2018
作者:
H
huzongtang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
I have already fix my code as suggestion.Please help to review them.[ISSUE #525].
上级
e04db85e
变更
36
隐藏空白更改
内联
并排
Showing
36 changed file
with
501 addition
and
166 deletion
+501
-166
broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java
.../org/apache/rocketmq/broker/topic/TopicConfigManager.java
+4
-1
client/src/main/java/org/apache/rocketmq/client/consumer/DefaultMQPushConsumer.java
...pache/rocketmq/client/consumer/DefaultMQPushConsumer.java
+28
-4
client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java
...apache/rocketmq/client/impl/factory/MQClientInstance.java
+1
-1
client/src/main/java/org/apache/rocketmq/client/producer/DefaultMQProducer.java
...rg/apache/rocketmq/client/producer/DefaultMQProducer.java
+24
-3
client/src/main/java/org/apache/rocketmq/client/producer/TransactionMQProducer.java
...pache/rocketmq/client/producer/TransactionMQProducer.java
+2
-2
client/src/main/java/org/apache/rocketmq/client/trace/core/Utils/TrackTraceUtils.java
...che/rocketmq/client/trace/core/Utils/TrackTraceUtils.java
+0
-105
client/src/main/java/org/apache/rocketmq/client/trace/core/common/TrackTraceBean.java
...che/rocketmq/client/trace/core/common/TrackTraceBean.java
+2
-2
client/src/main/java/org/apache/rocketmq/client/trace/core/common/TrackTraceType.java
...che/rocketmq/client/trace/core/common/TrackTraceType.java
+0
-3
client/src/test/java/org/apache/rocketmq/client/consumer/DefaultMQPushConsumerTest.java
...e/rocketmq/client/consumer/DefaultMQPushConsumerTest.java
+2
-2
client/src/test/java/org/apache/rocketmq/client/impl/consumer/DefaultMQPushConsumerImplTest.java
...q/client/impl/consumer/DefaultMQPushConsumerImplTest.java
+1
-1
client/src/test/java/org/apache/rocketmq/client/impl/consumer/RebalancePushImplTest.java
.../rocketmq/client/impl/consumer/RebalancePushImplTest.java
+1
-1
client/src/test/java/org/apache/rocketmq/client/producer/DefaultMQProducerTest.java
...pache/rocketmq/client/producer/DefaultMQProducerTest.java
+2
-2
client/src/test/java/org/apache/rocketmq/client/trace/DefaultMQConsumerWithTraceTest.java
...rocketmq/client/trace/DefaultMQConsumerWithTraceTest.java
+313
-0
client/src/test/java/org/apache/rocketmq/client/trace/DefaultMQProducerWithTraceTest.java
...rocketmq/client/trace/DefaultMQProducerWithTraceTest.java
+5
-19
example/src/main/java/org/apache/rocketmq/example/batch/SimpleBatchProducer.java
...rg/apache/rocketmq/example/batch/SimpleBatchProducer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/batch/SplitBatchProducer.java
...org/apache/rocketmq/example/batch/SplitBatchProducer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/benchmark/Consumer.java
.../java/org/apache/rocketmq/example/benchmark/Consumer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/benchmark/Producer.java
.../java/org/apache/rocketmq/example/benchmark/Producer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/broadcast/PushConsumer.java
...a/org/apache/rocketmq/example/broadcast/PushConsumer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/filter/Consumer.java
...ain/java/org/apache/rocketmq/example/filter/Consumer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/filter/Producer.java
...ain/java/org/apache/rocketmq/example/filter/Producer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/filter/SqlConsumer.java
.../java/org/apache/rocketmq/example/filter/SqlConsumer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/filter/SqlProducer.java
.../java/org/apache/rocketmq/example/filter/SqlProducer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/operation/Consumer.java
.../java/org/apache/rocketmq/example/operation/Consumer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/operation/Producer.java
.../java/org/apache/rocketmq/example/operation/Producer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/ordermessage/Consumer.java
...va/org/apache/rocketmq/example/ordermessage/Consumer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/ordermessage/Producer.java
...va/org/apache/rocketmq/example/ordermessage/Producer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/quickstart/Consumer.java
...java/org/apache/rocketmq/example/quickstart/Consumer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/quickstart/Producer.java
...java/org/apache/rocketmq/example/quickstart/Producer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/simple/AsyncProducer.java
...ava/org/apache/rocketmq/example/simple/AsyncProducer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/simple/Producer.java
...ain/java/org/apache/rocketmq/example/simple/Producer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/simple/PushConsumer.java
...java/org/apache/rocketmq/example/simple/PushConsumer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/simple/TestProducer.java
...java/org/apache/rocketmq/example/simple/TestProducer.java
+1
-1
example/src/main/java/org/apache/rocketmq/example/tracemessage/TraceProducer.java
...g/apache/rocketmq/example/tracemessage/TraceProducer.java
+49
-0
example/src/main/java/org/apache/rocketmq/example/tracemessage/TracePushConsumer.java
...ache/rocketmq/example/tracemessage/TracePushConsumer.java
+47
-0
tools/src/main/java/org/apache/rocketmq/tools/command/broker/SendMsgStatusCommand.java
...e/rocketmq/tools/command/broker/SendMsgStatusCommand.java
+1
-1
未找到文件。
broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java
浏览文件 @
47556d6a
...
...
@@ -125,7 +125,6 @@ public class TopicConfigManager extends ConfigManager {
this
.
topicConfigTable
.
put
(
topicConfig
.
getTopicName
(),
topicConfig
);
}
{
// MixAll.RMQ_SYS_TRACK_TRACE_TOPIC
if
(
this
.
brokerController
.
getBrokerConfig
().
isAutoTraceBrokerEnable
())
{
String
topic
=
MixAll
.
RMQ_SYS_TRACK_TRACE_TOPIC
;
TopicConfig
topicConfig
=
new
TopicConfig
(
topic
);
...
...
@@ -165,6 +164,10 @@ public class TopicConfigManager extends ConfigManager {
if
(
topicConfig
!=
null
)
return
topicConfig
;
if
(
this
.
brokerController
.
getBrokerConfig
().
isAutoTraceBrokerEnable
())
{
return
topicConfig
;
}
TopicConfig
defaultTopicConfig
=
this
.
topicConfigTable
.
get
(
defaultTopic
);
if
(
defaultTopicConfig
!=
null
)
{
if
(
defaultTopic
.
equals
(
MixAll
.
AUTO_CREATE_TOPIC_KEY_TOPIC
))
{
...
...
client/src/main/java/org/apache/rocketmq/client/consumer/DefaultMQPushConsumer.java
浏览文件 @
47556d6a
...
...
@@ -265,7 +265,7 @@ public class DefaultMQPushConsumer extends ClientConfig implements MQPushConsume
* Default constructor.
*/
public
DefaultMQPushConsumer
()
{
this
(
MixAll
.
DEFAULT_CONSUMER_GROUP
,
null
,
new
AllocateMessageQueueAveragely
()
,
false
);
this
(
MixAll
.
DEFAULT_CONSUMER_GROUP
,
null
,
new
AllocateMessageQueueAveragely
());
}
/**
...
...
@@ -275,12 +275,26 @@ public class DefaultMQPushConsumer extends ClientConfig implements MQPushConsume
* @param rpcHook RPC hook to execute before each remoting command.
* @param allocateMessageQueueStrategy message queue allocating algorithm.
*/
public
DefaultMQPushConsumer
(
final
String
consumerGroup
,
RPCHook
rpcHook
,
AllocateMessageQueueStrategy
allocateMessageQueueStrategy
)
{
this
.
consumerGroup
=
consumerGroup
;
this
.
allocateMessageQueueStrategy
=
allocateMessageQueueStrategy
;
defaultMQPushConsumerImpl
=
new
DefaultMQPushConsumerImpl
(
this
,
rpcHook
);
}
/**
* Constructor specifying consumer group, RPC hook and message queue allocating algorithm.
*
* @param consumerGroup Consume queue.
* @param rpcHook RPC hook to execute before each remoting command.
* @param allocateMessageQueueStrategy message queue allocating algorithm.
* @param msgTraceSwitch switch flag instance for message track trace.
*/
public
DefaultMQPushConsumer
(
final
String
consumerGroup
,
RPCHook
rpcHook
,
AllocateMessageQueueStrategy
allocateMessageQueueStrategy
,
boolean
msgTraceSwitch
)
{
this
.
consumerGroup
=
consumerGroup
;
this
.
allocateMessageQueueStrategy
=
allocateMessageQueueStrategy
;
defaultMQPushConsumerImpl
=
new
DefaultMQPushConsumerImpl
(
this
,
rpcHook
);
//if client open the message track trace feature
if
(
msgTraceSwitch
)
{
try
{
Properties
tempProperties
=
new
Properties
();
...
...
@@ -307,16 +321,26 @@ public class DefaultMQPushConsumer extends ClientConfig implements MQPushConsume
* @param rpcHook RPC hook to execute before each remoting command.
*/
public
DefaultMQPushConsumer
(
RPCHook
rpcHook
)
{
this
(
MixAll
.
DEFAULT_CONSUMER_GROUP
,
rpcHook
,
new
AllocateMessageQueueAveragely
()
,
false
);
this
(
MixAll
.
DEFAULT_CONSUMER_GROUP
,
rpcHook
,
new
AllocateMessageQueueAveragely
());
}
/**
* Constructor specifying consumer group.
*
* @param consumerGroup Consumer group.
* @param msgTraceSwitch switch flag instance for message track trace.
*/
public
DefaultMQPushConsumer
(
final
String
consumerGroup
,
boolean
msgTraceSwitch
)
{
this
(
consumerGroup
,
null
,
new
AllocateMessageQueueAveragely
(),
msgTraceSwitch
);
this
(
consumerGroup
,
null
,
new
AllocateMessageQueueAveragely
(),
msgTraceSwitch
);
}
/**
* Constructor specifying consumer group.
*
* @param consumerGroup Consumer group.
*/
public
DefaultMQPushConsumer
(
final
String
consumerGroup
)
{
this
(
consumerGroup
,
null
,
new
AllocateMessageQueueAveragely
());
}
@Override
...
...
client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java
浏览文件 @
47556d6a
...
...
@@ -144,7 +144,7 @@ public class MQClientInstance {
this
.
rebalanceService
=
new
RebalanceService
(
this
);
this
.
defaultMQProducer
=
new
DefaultMQProducer
(
MixAll
.
CLIENT_INNER_PRODUCER_GROUP
,
false
);
this
.
defaultMQProducer
=
new
DefaultMQProducer
(
MixAll
.
CLIENT_INNER_PRODUCER_GROUP
);
this
.
defaultMQProducer
.
resetClientConfig
(
clientConfig
);
this
.
consumerStatsManager
=
new
ConsumerStatsManager
(
this
.
scheduledExecutorService
);
...
...
client/src/main/java/org/apache/rocketmq/client/producer/DefaultMQProducer.java
浏览文件 @
47556d6a
...
...
@@ -146,7 +146,18 @@ public class DefaultMQProducer extends ClientConfig implements MQProducer {
*
* @param producerGroup Producer group, see the name-sake field.
* @param rpcHook RPC hook to execute per each remoting command execution.
* @param msgTraceSwitch switch flag instance for message track trace
*/
public
DefaultMQProducer
(
final
String
producerGroup
,
RPCHook
rpcHook
)
{
this
.
producerGroup
=
producerGroup
;
defaultMQProducerImpl
=
new
DefaultMQProducerImpl
(
this
,
rpcHook
);
}
/**
* Constructor specifying both producer group and RPC hook.
*
* @param producerGroup Producer group, see the name-sake field.
* @param rpcHook RPC hook to execute per each remoting command execution.
* @param msgTraceSwitch switch flag instance for message track trace.
*/
public
DefaultMQProducer
(
final
String
producerGroup
,
RPCHook
rpcHook
,
boolean
msgTraceSwitch
)
{
this
.
producerGroup
=
producerGroup
;
...
...
@@ -177,8 +188,18 @@ public class DefaultMQProducer extends ClientConfig implements MQProducer {
*
* @param producerGroup Producer group, see the name-sake field.
*/
public
DefaultMQProducer
(
final
String
producerGroup
)
{
this
(
producerGroup
,
null
);
}
/**
* Constructor specifying producer group.
*
* @param producerGroup Producer group, see the name-sake field.
* @param msgTraceSwitch switch flag instance for message track trace.
*/
public
DefaultMQProducer
(
final
String
producerGroup
,
boolean
msgTraceSwitch
)
{
this
(
producerGroup
,
null
,
msgTraceSwitch
);
this
(
producerGroup
,
null
,
msgTraceSwitch
);
}
/**
...
...
@@ -187,7 +208,7 @@ public class DefaultMQProducer extends ClientConfig implements MQProducer {
* @param rpcHook RPC hook to execute per each remoting command execution.
*/
public
DefaultMQProducer
(
RPCHook
rpcHook
)
{
this
(
MixAll
.
DEFAULT_PRODUCER_GROUP
,
rpcHook
,
false
);
this
(
MixAll
.
DEFAULT_PRODUCER_GROUP
,
rpcHook
);
}
/**
...
...
client/src/main/java/org/apache/rocketmq/client/producer/TransactionMQProducer.java
浏览文件 @
47556d6a
...
...
@@ -35,11 +35,11 @@ public class TransactionMQProducer extends DefaultMQProducer {
}
public
TransactionMQProducer
(
final
String
producerGroup
)
{
super
(
producerGroup
,
false
);
super
(
producerGroup
);
}
public
TransactionMQProducer
(
final
String
producerGroup
,
RPCHook
rpcHook
)
{
super
(
producerGroup
,
rpcHook
,
false
);
super
(
producerGroup
,
rpcHook
);
}
@Override
...
...
client/src/main/java/org/apache/rocketmq/client/trace/core/Utils/TrackTraceUtils.java
已删除
100644 → 0
浏览文件 @
e04db85e
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.apache.rocketmq.client.trace.core.Utils
;
import
org.apache.rocketmq.remoting.protocol.RemotingSerializable
;
import
java.net.Inet6Address
;
import
java.net.InetAddress
;
import
java.net.NetworkInterface
;
import
java.net.SocketException
;
import
java.net.UnknownHostException
;
import
java.util.ArrayList
;
import
java.util.Enumeration
;
/**
* Track Trace Util
*/
public
class
TrackTraceUtils
{
public
static
String
getLocalAddress
()
{
try
{
//Traverse the network bind card to find a valid IP address and return it.
Enumeration
<
NetworkInterface
>
enumeration
=
NetworkInterface
.
getNetworkInterfaces
();
ArrayList
<
String
>
ipv4Result
=
new
ArrayList
<
String
>();
ArrayList
<
String
>
ipv6Result
=
new
ArrayList
<
String
>();
while
(
enumeration
.
hasMoreElements
())
{
final
NetworkInterface
networkInterface
=
enumeration
.
nextElement
();
final
Enumeration
<
InetAddress
>
en
=
networkInterface
.
getInetAddresses
();
while
(
en
.
hasMoreElements
())
{
final
InetAddress
address
=
en
.
nextElement
();
if
(!
address
.
isLoopbackAddress
())
{
if
(
address
instanceof
Inet6Address
)
{
ipv6Result
.
add
(
normalizeHostAddress
(
address
));
}
else
{
ipv4Result
.
add
(
normalizeHostAddress
(
address
));
}
}
}
}
// get priority to IPv4
if
(!
ipv4Result
.
isEmpty
())
{
for
(
String
ip
:
ipv4Result
)
{
if
(
ip
.
startsWith
(
"127.0"
)
||
ip
.
startsWith
(
"192.168"
))
{
continue
;
}
return
ip
;
}
//get the last one
return
ipv4Result
.
get
(
ipv4Result
.
size
()
-
1
);
}
//then use the ipv6 address
else
if
(!
ipv6Result
.
isEmpty
())
{
return
ipv6Result
.
get
(
0
);
}
//the use local ip address
final
InetAddress
localHost
=
InetAddress
.
getLocalHost
();
return
normalizeHostAddress
(
localHost
);
}
catch
(
SocketException
e
)
{
e
.
printStackTrace
();
}
catch
(
UnknownHostException
e
)
{
e
.
printStackTrace
();
}
finally
{
}
return
null
;
}
public
static
String
normalizeHostAddress
(
final
InetAddress
localHost
)
{
if
(
localHost
instanceof
Inet6Address
)
{
return
"["
+
localHost
.
getHostAddress
()
+
"]"
;
}
else
{
return
localHost
.
getHostAddress
();
}
}
public
static
String
toJson
(
final
Object
obj
,
boolean
prettyFormat
)
{
return
RemotingSerializable
.
toJson
(
obj
,
prettyFormat
);
}
public
static
<
T
>
T
fromJson
(
String
json
,
Class
<
T
>
classOfT
)
{
return
RemotingSerializable
.
fromJson
(
json
,
classOfT
);
}
public
static
String
replaceNull
(
String
ori
)
{
return
ori
==
null
?
""
:
ori
;
}
}
client/src/main/java/org/apache/rocketmq/client/trace/core/common/TrackTraceBean.java
浏览文件 @
47556d6a
...
...
@@ -16,11 +16,11 @@
*/
package
org.apache.rocketmq.client.trace.core.common
;
import
org.apache.rocketmq.c
lient.trace.core.Utils.TrackTraceUtils
;
import
org.apache.rocketmq.c
ommon.UtilAll
;
import
org.apache.rocketmq.common.message.MessageType
;
public
class
TrackTraceBean
{
private
static
final
String
LOCAL_ADDRESS
=
TrackTraceUtils
.
getLocalAddress
(
);
private
static
final
String
LOCAL_ADDRESS
=
UtilAll
.
ipToIPv4Str
(
UtilAll
.
getIP
()
);
private
String
topic
=
""
;
private
String
msgId
=
""
;
private
String
offsetMsgId
=
""
;
...
...
client/src/main/java/org/apache/rocketmq/client/trace/core/common/TrackTraceType.java
浏览文件 @
47556d6a
...
...
@@ -16,9 +16,6 @@
*/
package
org.apache.rocketmq.client.trace.core.common
;
/**
* Created by zongtanghu on 2018/11/6.
*/
public
enum
TrackTraceType
{
Pub
,
SubBefore
,
...
...
client/src/test/java/org/apache/rocketmq/client/consumer/DefaultMQPushConsumerTest.java
浏览文件 @
47556d6a
...
...
@@ -89,7 +89,7 @@ public class DefaultMQPushConsumerTest {
@Before
public
void
init
()
throws
Exception
{
consumerGroup
=
"FooBarGroup"
+
System
.
currentTimeMillis
();
pushConsumer
=
new
DefaultMQPushConsumer
(
consumerGroup
,
false
);
pushConsumer
=
new
DefaultMQPushConsumer
(
consumerGroup
);
pushConsumer
.
setNamesrvAddr
(
"127.0.0.1:9876"
);
pushConsumer
.
setPullInterval
(
60
*
1000
);
...
...
@@ -252,7 +252,7 @@ public class DefaultMQPushConsumerTest {
}
private
DefaultMQPushConsumer
createPushConsumer
()
{
DefaultMQPushConsumer
pushConsumer
=
new
DefaultMQPushConsumer
(
consumerGroup
,
false
);
DefaultMQPushConsumer
pushConsumer
=
new
DefaultMQPushConsumer
(
consumerGroup
);
pushConsumer
.
registerMessageListener
(
new
MessageListenerConcurrently
()
{
@Override
public
ConsumeConcurrentlyStatus
consumeMessage
(
List
<
MessageExt
>
msgs
,
...
...
client/src/test/java/org/apache/rocketmq/client/impl/consumer/DefaultMQPushConsumerImplTest.java
浏览文件 @
47556d6a
...
...
@@ -42,7 +42,7 @@ public class DefaultMQPushConsumerImplTest {
//test message
thrown
.
expectMessage
(
"consumeThreadMin (10) is larger than consumeThreadMax (9)"
);
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"test_consumer_group"
,
false
);
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"test_consumer_group"
);
consumer
.
setConsumeThreadMin
(
10
);
consumer
.
setConsumeThreadMax
(
9
);
...
...
client/src/test/java/org/apache/rocketmq/client/impl/consumer/RebalancePushImplTest.java
浏览文件 @
47556d6a
...
...
@@ -44,7 +44,7 @@ import static org.mockito.Mockito.when;
@RunWith
(
MockitoJUnitRunner
.
class
)
public
class
RebalancePushImplTest
{
@Spy
private
DefaultMQPushConsumerImpl
defaultMQPushConsumer
=
new
DefaultMQPushConsumerImpl
(
new
DefaultMQPushConsumer
(
"RebalancePushImplTest"
,
false
),
null
);
private
DefaultMQPushConsumerImpl
defaultMQPushConsumer
=
new
DefaultMQPushConsumerImpl
(
new
DefaultMQPushConsumer
(
"RebalancePushImplTest"
),
null
);
@Mock
private
MQClientInstance
mqClientInstance
;
@Mock
...
...
client/src/test/java/org/apache/rocketmq/client/producer/DefaultMQProducerTest.java
浏览文件 @
47556d6a
...
...
@@ -82,7 +82,7 @@ public class DefaultMQProducerTest {
@Before
public
void
init
()
throws
Exception
{
String
producerGroupTemp
=
producerGroupPrefix
+
System
.
currentTimeMillis
();
producer
=
new
DefaultMQProducer
(
producerGroupTemp
,
false
);
producer
=
new
DefaultMQProducer
(
producerGroupTemp
);
producer
.
setNamesrvAddr
(
"127.0.0.1:9876"
);
producer
.
setCompressMsgBodyOverHowmuch
(
16
);
message
=
new
Message
(
topic
,
new
byte
[]
{
'a'
});
...
...
@@ -309,7 +309,7 @@ public class DefaultMQProducerTest {
@Test
public
void
testSetCallbackExecutor
()
throws
MQClientException
{
String
producerGroupTemp
=
"testSetCallbackExecutor_"
+
System
.
currentTimeMillis
();
producer
=
new
DefaultMQProducer
(
producerGroupTemp
,
false
);
producer
=
new
DefaultMQProducer
(
producerGroupTemp
);
producer
.
setNamesrvAddr
(
"127.0.0.1:9876"
);
producer
.
start
();
...
...
client/src/test/java/org/apache/rocketmq/client/trace/DefaultMQConsumerWithTraceTest.java
0 → 100644
浏览文件 @
47556d6a
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.apache.rocketmq.client.trace
;
import
java.io.ByteArrayOutputStream
;
import
java.lang.reflect.Field
;
import
java.net.InetSocketAddress
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.concurrent.CountDownLatch
;
import
java.util.concurrent.TimeUnit
;
import
org.apache.rocketmq.client.consumer.DefaultMQPushConsumer
;
import
org.apache.rocketmq.client.consumer.PullCallback
;
import
org.apache.rocketmq.client.consumer.PullResult
;
import
org.apache.rocketmq.client.consumer.PullStatus
;
import
org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext
;
import
org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus
;
import
org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently
;
import
org.apache.rocketmq.client.exception.MQBrokerException
;
import
org.apache.rocketmq.client.exception.MQClientException
;
import
org.apache.rocketmq.client.impl.CommunicationMode
;
import
org.apache.rocketmq.client.impl.FindBrokerResult
;
import
org.apache.rocketmq.client.impl.MQClientAPIImpl
;
import
org.apache.rocketmq.client.impl.consumer.ConsumeMessageConcurrentlyService
;
import
org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl
;
import
org.apache.rocketmq.client.impl.consumer.ProcessQueue
;
import
org.apache.rocketmq.client.impl.consumer.PullAPIWrapper
;
import
org.apache.rocketmq.client.impl.consumer.PullMessageService
;
import
org.apache.rocketmq.client.impl.consumer.PullRequest
;
import
org.apache.rocketmq.client.impl.consumer.PullResultExt
;
import
org.apache.rocketmq.client.impl.consumer.RebalancePushImpl
;
import
org.apache.rocketmq.client.impl.factory.MQClientInstance
;
import
org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl
;
import
org.apache.rocketmq.client.producer.DefaultMQProducer
;
import
org.apache.rocketmq.client.producer.SendResult
;
import
org.apache.rocketmq.client.producer.SendStatus
;
import
org.apache.rocketmq.client.trace.core.dispatch.impl.AsyncArrayDispatcher
;
import
org.apache.rocketmq.common.MixAll
;
import
org.apache.rocketmq.common.message.MessageClientExt
;
import
org.apache.rocketmq.common.message.MessageDecoder
;
import
org.apache.rocketmq.common.message.MessageExt
;
import
org.apache.rocketmq.common.message.MessageQueue
;
import
org.apache.rocketmq.common.protocol.header.PullMessageRequestHeader
;
import
org.apache.rocketmq.common.protocol.route.BrokerData
;
import
org.apache.rocketmq.common.protocol.route.QueueData
;
import
org.apache.rocketmq.common.protocol.route.TopicRouteData
;
import
org.apache.rocketmq.remoting.exception.RemotingException
;
import
org.junit.After
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.mockito.Mock
;
import
org.mockito.invocation.InvocationOnMock
;
import
org.mockito.junit.MockitoJUnitRunner
;
import
org.mockito.stubbing.Answer
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
ArgumentMatchers
.
anyBoolean
;
import
static
org
.
mockito
.
ArgumentMatchers
.
anyLong
;
import
static
org
.
mockito
.
ArgumentMatchers
.
anyString
;
import
static
org
.
mockito
.
ArgumentMatchers
.
nullable
;
import
static
org
.
mockito
.
Mockito
.
doReturn
;
import
static
org
.
mockito
.
Mockito
.
spy
;
import
static
org
.
mockito
.
Mockito
.
when
;
@RunWith
(
MockitoJUnitRunner
.
class
)
public
class
DefaultMQConsumerWithTraceTest
{
private
String
consumerGroup
;
private
String
consumerGroupNormal
;
private
String
producerGroupTraceTemp
=
MixAll
.
RMQ_SYS_TRACK_TRACE_TOPIC
+
System
.
currentTimeMillis
();
private
String
topic
=
"FooBar"
;
private
String
brokerName
=
"BrokerA"
;
private
MQClientInstance
mQClientFactory
;
@Mock
private
MQClientAPIImpl
mQClientAPIImpl
;
private
PullAPIWrapper
pullAPIWrapper
;
private
RebalancePushImpl
rebalancePushImpl
;
private
DefaultMQPushConsumer
pushConsumer
;
private
DefaultMQPushConsumer
normalPushConsumer
;
private
AsyncArrayDispatcher
asyncArrayDispatcher
;
private
MQClientInstance
mQClientTraceFactory
;
@Mock
private
MQClientAPIImpl
mQClientTraceAPIImpl
;
private
DefaultMQProducer
traceProducer
;
@Before
public
void
init
()
throws
Exception
{
consumerGroup
=
"FooBarGroup"
+
System
.
currentTimeMillis
();
pushConsumer
=
new
DefaultMQPushConsumer
(
consumerGroup
,
true
);
consumerGroupNormal
=
"FooBarGroup"
+
System
.
currentTimeMillis
();
normalPushConsumer
=
new
DefaultMQPushConsumer
(
consumerGroupNormal
,
false
);
pushConsumer
.
setNamesrvAddr
(
"127.0.0.1:9876"
);
pushConsumer
.
setPullInterval
(
60
*
1000
);
asyncArrayDispatcher
=
(
AsyncArrayDispatcher
)
pushConsumer
.
getTraceDispatcher
();
traceProducer
=
asyncArrayDispatcher
.
getTraceProducer
();
pushConsumer
.
registerMessageListener
(
new
MessageListenerConcurrently
()
{
@Override
public
ConsumeConcurrentlyStatus
consumeMessage
(
List
<
MessageExt
>
msgs
,
ConsumeConcurrentlyContext
context
)
{
return
null
;
}
});
DefaultMQPushConsumerImpl
pushConsumerImpl
=
pushConsumer
.
getDefaultMQPushConsumerImpl
();
rebalancePushImpl
=
spy
(
new
RebalancePushImpl
(
pushConsumer
.
getDefaultMQPushConsumerImpl
()));
Field
field
=
DefaultMQPushConsumerImpl
.
class
.
getDeclaredField
(
"rebalanceImpl"
);
field
.
setAccessible
(
true
);
field
.
set
(
pushConsumerImpl
,
rebalancePushImpl
);
pushConsumer
.
subscribe
(
topic
,
"*"
);
pushConsumer
.
start
();
mQClientFactory
=
spy
(
pushConsumerImpl
.
getmQClientFactory
());
mQClientTraceFactory
=
spy
(
pushConsumerImpl
.
getmQClientFactory
());
field
=
DefaultMQPushConsumerImpl
.
class
.
getDeclaredField
(
"mQClientFactory"
);
field
.
setAccessible
(
true
);
field
.
set
(
pushConsumerImpl
,
mQClientFactory
);
field
=
MQClientInstance
.
class
.
getDeclaredField
(
"mQClientAPIImpl"
);
field
.
setAccessible
(
true
);
field
.
set
(
mQClientFactory
,
mQClientAPIImpl
);
Field
fieldTrace
=
DefaultMQProducerImpl
.
class
.
getDeclaredField
(
"mQClientFactory"
);
fieldTrace
.
setAccessible
(
true
);
fieldTrace
.
set
(
traceProducer
.
getDefaultMQProducerImpl
(),
mQClientTraceFactory
);
fieldTrace
=
MQClientInstance
.
class
.
getDeclaredField
(
"mQClientAPIImpl"
);
fieldTrace
.
setAccessible
(
true
);
fieldTrace
.
set
(
mQClientTraceFactory
,
mQClientTraceAPIImpl
);
pullAPIWrapper
=
spy
(
new
PullAPIWrapper
(
mQClientFactory
,
consumerGroup
,
false
));
field
=
DefaultMQPushConsumerImpl
.
class
.
getDeclaredField
(
"pullAPIWrapper"
);
field
.
setAccessible
(
true
);
field
.
set
(
pushConsumerImpl
,
pullAPIWrapper
);
pushConsumer
.
getDefaultMQPushConsumerImpl
().
getRebalanceImpl
().
setmQClientFactory
(
mQClientFactory
);
mQClientFactory
.
registerConsumer
(
consumerGroup
,
pushConsumerImpl
);
when
(
mQClientFactory
.
getMQClientAPIImpl
().
pullMessage
(
anyString
(),
any
(
PullMessageRequestHeader
.
class
),
anyLong
(),
any
(
CommunicationMode
.
class
),
nullable
(
PullCallback
.
class
)))
.
thenAnswer
(
new
Answer
<
Object
>()
{
@Override
public
Object
answer
(
InvocationOnMock
mock
)
throws
Throwable
{
PullMessageRequestHeader
requestHeader
=
mock
.
getArgument
(
1
);
MessageClientExt
messageClientExt
=
new
MessageClientExt
();
messageClientExt
.
setTopic
(
topic
);
messageClientExt
.
setQueueId
(
0
);
messageClientExt
.
setMsgId
(
"123"
);
messageClientExt
.
setBody
(
new
byte
[]
{
'a'
});
messageClientExt
.
setOffsetMsgId
(
"234"
);
messageClientExt
.
setBornHost
(
new
InetSocketAddress
(
8080
));
messageClientExt
.
setStoreHost
(
new
InetSocketAddress
(
8080
));
PullResult
pullResult
=
createPullResult
(
requestHeader
,
PullStatus
.
FOUND
,
Collections
.<
MessageExt
>
singletonList
(
messageClientExt
));
((
PullCallback
)
mock
.
getArgument
(
4
)).
onSuccess
(
pullResult
);
return
pullResult
;
}
});
doReturn
(
new
FindBrokerResult
(
"127.0.0.1:10911"
,
false
)).
when
(
mQClientFactory
).
findBrokerAddressInSubscribe
(
anyString
(),
anyLong
(),
anyBoolean
());
Set
<
MessageQueue
>
messageQueueSet
=
new
HashSet
<
MessageQueue
>();
messageQueueSet
.
add
(
createPullRequest
().
getMessageQueue
());
pushConsumer
.
getDefaultMQPushConsumerImpl
().
updateTopicSubscribeInfo
(
topic
,
messageQueueSet
);
}
@After
public
void
terminate
()
{
pushConsumer
.
shutdown
();
}
@Test
public
void
testPullMessage_WithTrace_Success
()
throws
InterruptedException
,
RemotingException
,
MQBrokerException
,
MQClientException
{
traceProducer
.
getDefaultMQProducerImpl
().
getmQClientFactory
().
registerProducer
(
producerGroupTraceTemp
,
traceProducer
.
getDefaultMQProducerImpl
());
//when(mQClientAPIImpl.getTopicRouteInfoFromNameServer(anyString(), anyLong())).thenReturn(createTopicRoute());
//when(mQClientTraceAPIImpl.getTopicRouteInfoFromNameServer(anyString(), anyLong())).thenReturn(createTraceTopicRoute());
final
CountDownLatch
countDownLatch
=
new
CountDownLatch
(
1
);
final
MessageExt
[]
messageExts
=
new
MessageExt
[
1
];
pushConsumer
.
getDefaultMQPushConsumerImpl
().
setConsumeMessageService
(
new
ConsumeMessageConcurrentlyService
(
pushConsumer
.
getDefaultMQPushConsumerImpl
(),
new
MessageListenerConcurrently
()
{
@Override
public
ConsumeConcurrentlyStatus
consumeMessage
(
List
<
MessageExt
>
msgs
,
ConsumeConcurrentlyContext
context
)
{
messageExts
[
0
]
=
msgs
.
get
(
0
);
countDownLatch
.
countDown
();
return
null
;
}
}));
PullMessageService
pullMessageService
=
mQClientFactory
.
getPullMessageService
();
pullMessageService
.
executePullRequestImmediately
(
createPullRequest
());
countDownLatch
.
await
(
3000L
,
TimeUnit
.
MILLISECONDS
);
assertThat
(
messageExts
[
0
].
getTopic
()).
isEqualTo
(
topic
);
assertThat
(
messageExts
[
0
].
getBody
()).
isEqualTo
(
new
byte
[]
{
'a'
});
}
private
PullRequest
createPullRequest
()
{
PullRequest
pullRequest
=
new
PullRequest
();
pullRequest
.
setConsumerGroup
(
consumerGroup
);
pullRequest
.
setNextOffset
(
1024
);
MessageQueue
messageQueue
=
new
MessageQueue
();
messageQueue
.
setBrokerName
(
brokerName
);
messageQueue
.
setQueueId
(
0
);
messageQueue
.
setTopic
(
topic
);
pullRequest
.
setMessageQueue
(
messageQueue
);
ProcessQueue
processQueue
=
new
ProcessQueue
();
processQueue
.
setLocked
(
true
);
processQueue
.
setLastLockTimestamp
(
System
.
currentTimeMillis
());
pullRequest
.
setProcessQueue
(
processQueue
);
return
pullRequest
;
}
private
PullResultExt
createPullResult
(
PullMessageRequestHeader
requestHeader
,
PullStatus
pullStatus
,
List
<
MessageExt
>
messageExtList
)
throws
Exception
{
ByteArrayOutputStream
outputStream
=
new
ByteArrayOutputStream
();
for
(
MessageExt
messageExt
:
messageExtList
)
{
outputStream
.
write
(
MessageDecoder
.
encode
(
messageExt
,
false
));
}
return
new
PullResultExt
(
pullStatus
,
requestHeader
.
getQueueOffset
()
+
messageExtList
.
size
(),
123
,
2048
,
messageExtList
,
0
,
outputStream
.
toByteArray
());
}
public
static
TopicRouteData
createTopicRoute
()
{
TopicRouteData
topicRouteData
=
new
TopicRouteData
();
topicRouteData
.
setFilterServerTable
(
new
HashMap
<
String
,
List
<
String
>>());
List
<
BrokerData
>
brokerDataList
=
new
ArrayList
<
BrokerData
>();
BrokerData
brokerData
=
new
BrokerData
();
brokerData
.
setBrokerName
(
"BrokerA"
);
brokerData
.
setCluster
(
"DefaultCluster"
);
HashMap
<
Long
,
String
>
brokerAddrs
=
new
HashMap
<
Long
,
String
>();
brokerAddrs
.
put
(
0L
,
"127.0.0.1:10911"
);
brokerData
.
setBrokerAddrs
(
brokerAddrs
);
brokerDataList
.
add
(
brokerData
);
topicRouteData
.
setBrokerDatas
(
brokerDataList
);
List
<
QueueData
>
queueDataList
=
new
ArrayList
<
QueueData
>();
QueueData
queueData
=
new
QueueData
();
queueData
.
setBrokerName
(
"BrokerA"
);
queueData
.
setPerm
(
6
);
queueData
.
setReadQueueNums
(
3
);
queueData
.
setWriteQueueNums
(
4
);
queueData
.
setTopicSynFlag
(
0
);
queueDataList
.
add
(
queueData
);
topicRouteData
.
setQueueDatas
(
queueDataList
);
return
topicRouteData
;
}
private
SendResult
createSendResult
(
SendStatus
sendStatus
)
{
SendResult
sendResult
=
new
SendResult
();
sendResult
.
setMsgId
(
"123"
);
sendResult
.
setOffsetMsgId
(
"123"
);
sendResult
.
setQueueOffset
(
456
);
sendResult
.
setSendStatus
(
sendStatus
);
sendResult
.
setRegionId
(
"HZ"
);
return
sendResult
;
}
public
static
TopicRouteData
createTraceTopicRoute
()
{
TopicRouteData
topicRouteData
=
new
TopicRouteData
();
topicRouteData
.
setFilterServerTable
(
new
HashMap
<
String
,
List
<
String
>>());
List
<
BrokerData
>
brokerDataList
=
new
ArrayList
<
BrokerData
>();
BrokerData
brokerData
=
new
BrokerData
();
brokerData
.
setBrokerName
(
"broker-trace"
);
brokerData
.
setCluster
(
"DefaultCluster"
);
HashMap
<
Long
,
String
>
brokerAddrs
=
new
HashMap
<
Long
,
String
>();
brokerAddrs
.
put
(
0L
,
"127.0.0.1:10912"
);
brokerData
.
setBrokerAddrs
(
brokerAddrs
);
brokerDataList
.
add
(
brokerData
);
topicRouteData
.
setBrokerDatas
(
brokerDataList
);
List
<
QueueData
>
queueDataList
=
new
ArrayList
<
QueueData
>();
QueueData
queueData
=
new
QueueData
();
queueData
.
setBrokerName
(
"broker-trace"
);
queueData
.
setPerm
(
6
);
queueData
.
setReadQueueNums
(
1
);
queueData
.
setWriteQueueNums
(
1
);
queueData
.
setTopicSynFlag
(
1
);
queueDataList
.
add
(
queueData
);
topicRouteData
.
setQueueDatas
(
queueDataList
);
return
topicRouteData
;
}
}
client/src/test/java/org/apache/rocketmq/client/trace/DefaultMQProducerWithTraceTest.java
浏览文件 @
47556d6a
...
...
@@ -22,10 +22,7 @@ import java.util.ArrayList;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.concurrent.CountDownLatch
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.TimeUnit
;
import
net.bytebuddy.asm.Advice
;
import
org.apache.rocketmq.client.ClientConfig
;
import
org.apache.rocketmq.client.exception.MQBrokerException
;
import
org.apache.rocketmq.client.exception.MQClientException
;
...
...
@@ -48,7 +45,6 @@ import org.apache.rocketmq.common.protocol.route.BrokerData;
import
org.apache.rocketmq.common.protocol.route.QueueData
;
import
org.apache.rocketmq.common.protocol.route.TopicRouteData
;
import
org.apache.rocketmq.remoting.exception.RemotingException
;
import
org.apache.rocketmq.remoting.netty.NettyRemotingClient
;
import
org.junit.After
;
import
org.junit.Before
;
import
org.junit.Test
;
...
...
@@ -57,11 +53,9 @@ import org.mockito.Mock;
import
org.mockito.Spy
;
import
org.mockito.junit.MockitoJUnitRunner
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
ArgumentMatchers
.
anyInt
;
import
static
org
.
mockito
.
ArgumentMatchers
.
anyLong
;
import
static
org
.
mockito
.
ArgumentMatchers
.
anyObject
;
import
static
org
.
mockito
.
ArgumentMatchers
.
anyString
;
import
static
org
.
mockito
.
ArgumentMatchers
.
nullable
;
import
static
org
.
mockito
.
Mockito
.
when
;
...
...
@@ -83,6 +77,7 @@ public class DefaultMQProducerWithTraceTest {
private
DefaultMQProducer
producer
;
private
DefaultMQProducer
traceProducer
;
private
DefaultMQProducer
normalProducer
;
private
Message
message
;
private
String
topic
=
"FooBar"
;
...
...
@@ -93,21 +88,23 @@ public class DefaultMQProducerWithTraceTest {
@Before
public
void
init
()
throws
Exception
{
normalProducer
=
new
DefaultMQProducer
(
producerGroupTemp
,
false
);
producer
=
new
DefaultMQProducer
(
producerGroupTemp
,
true
);
producer
.
setNamesrvAddr
(
"127.0.0.1:9876"
);
normalProducer
.
setNamesrvAddr
(
"127.0.0.1:9877"
);
message
=
new
Message
(
topic
,
new
byte
[]
{
'a'
,
'b'
,
'c'
});
asyncArrayDispatcher
=
(
AsyncArrayDispatcher
)
producer
.
getTraceDispatcher
();
traceProducer
=
asyncArrayDispatcher
.
getTraceProducer
();
producer
.
start
();
Field
field
=
DefaultMQProducerImpl
.
class
.
getDeclaredField
(
"mQClientFactory"
);
field
.
setAccessible
(
true
);
field
.
set
(
producer
.
getDefaultMQProducerImpl
(),
mQClientFactory
);
Field
fieldTrace
=
DefaultMQProducerImpl
.
class
.
getDeclaredField
(
"mQClientFactory"
);
fieldTrace
.
setAccessible
(
true
);
field
.
set
(
traceProducer
.
getDefaultMQProducerImpl
(),
mQClientTraceFactory
);
field
Trace
.
set
(
traceProducer
.
getDefaultMQProducerImpl
(),
mQClientTraceFactory
);
field
=
MQClientInstance
.
class
.
getDeclaredField
(
"mQClientAPIImpl"
);
field
.
setAccessible
(
true
);
...
...
@@ -220,15 +217,4 @@ public class DefaultMQProducerWithTraceTest {
topicRouteData
.
setQueueDatas
(
queueDataList
);
return
topicRouteData
;
}
private
SendResult
createSendTraceResult
(
SendStatus
sendStatus
)
{
SendResult
sendResult
=
new
SendResult
();
sendResult
.
setMsgId
(
"456"
);
sendResult
.
setOffsetMsgId
(
"456"
);
sendResult
.
setQueueOffset
(
789
);
sendResult
.
setSendStatus
(
sendStatus
);
sendResult
.
setRegionId
(
"HZ"
);
return
sendResult
;
}
}
example/src/main/java/org/apache/rocketmq/example/batch/SimpleBatchProducer.java
浏览文件 @
47556d6a
...
...
@@ -25,7 +25,7 @@ import org.apache.rocketmq.common.message.Message;
public
class
SimpleBatchProducer
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"BatchProducerGroupName"
,
false
);
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"BatchProducerGroupName"
);
producer
.
start
();
//If you just send messages of no more than 1MiB at a time, it is easy to use batch
...
...
example/src/main/java/org/apache/rocketmq/example/batch/SplitBatchProducer.java
浏览文件 @
47556d6a
...
...
@@ -28,7 +28,7 @@ public class SplitBatchProducer {
public
static
void
main
(
String
[]
args
)
throws
Exception
{
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"BatchProducerGroupName"
,
false
);
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"BatchProducerGroupName"
);
producer
.
start
();
//large batch
...
...
example/src/main/java/org/apache/rocketmq/example/benchmark/Consumer.java
浏览文件 @
47556d6a
...
...
@@ -102,7 +102,7 @@ public class Consumer {
}
},
10000
,
10000
);
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
group
,
false
);
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
group
);
consumer
.
setInstanceName
(
Long
.
toString
(
System
.
currentTimeMillis
()));
if
(
filterType
==
null
||
expression
==
null
)
{
...
...
example/src/main/java/org/apache/rocketmq/example/benchmark/Producer.java
浏览文件 @
47556d6a
...
...
@@ -100,7 +100,7 @@ public class Producer {
}
},
10000
,
10000
);
final
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"benchmark_producer"
,
false
);
final
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"benchmark_producer"
);
producer
.
setInstanceName
(
Long
.
toString
(
System
.
currentTimeMillis
()));
if
(
commandLine
.
hasOption
(
'n'
))
{
...
...
example/src/main/java/org/apache/rocketmq/example/broadcast/PushConsumer.java
浏览文件 @
47556d6a
...
...
@@ -29,7 +29,7 @@ import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
public
class
PushConsumer
{
public
static
void
main
(
String
[]
args
)
throws
InterruptedException
,
MQClientException
{
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"please_rename_unique_group_name_1"
,
false
);
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"please_rename_unique_group_name_1"
);
consumer
.
setConsumeFromWhere
(
ConsumeFromWhere
.
CONSUME_FROM_FIRST_OFFSET
);
...
...
example/src/main/java/org/apache/rocketmq/example/filter/Consumer.java
浏览文件 @
47556d6a
...
...
@@ -30,7 +30,7 @@ import org.apache.rocketmq.common.message.MessageExt;
public
class
Consumer
{
public
static
void
main
(
String
[]
args
)
throws
InterruptedException
,
MQClientException
,
IOException
{
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"ConsumerGroupNamecc4"
,
false
);
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"ConsumerGroupNamecc4"
);
ClassLoader
classLoader
=
Thread
.
currentThread
().
getContextClassLoader
();
File
classFile
=
new
File
(
classLoader
.
getResource
(
"MessageFilterImpl.java"
).
getFile
());
...
...
example/src/main/java/org/apache/rocketmq/example/filter/Producer.java
浏览文件 @
47556d6a
...
...
@@ -24,7 +24,7 @@ import org.apache.rocketmq.remoting.common.RemotingHelper;
public
class
Producer
{
public
static
void
main
(
String
[]
args
)
throws
MQClientException
,
InterruptedException
{
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"ProducerGroupName"
,
false
);
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"ProducerGroupName"
);
producer
.
start
();
try
{
...
...
example/src/main/java/org/apache/rocketmq/example/filter/SqlConsumer.java
浏览文件 @
47556d6a
...
...
@@ -30,7 +30,7 @@ import java.util.List;
public
class
SqlConsumer
{
public
static
void
main
(
String
[]
args
)
{
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"please_rename_unique_group_name_4"
,
false
);
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"please_rename_unique_group_name_4"
);
try
{
consumer
.
subscribe
(
"TopicTest"
,
MessageSelector
.
bySql
(
"(TAGS is not null and TAGS in ('TagA', 'TagB'))"
+
...
...
example/src/main/java/org/apache/rocketmq/example/filter/SqlProducer.java
浏览文件 @
47556d6a
...
...
@@ -26,7 +26,7 @@ import org.apache.rocketmq.remoting.common.RemotingHelper;
public
class
SqlProducer
{
public
static
void
main
(
String
[]
args
)
{
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"please_rename_unique_group_name"
,
false
);
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"please_rename_unique_group_name"
);
try
{
producer
.
start
();
}
catch
(
MQClientException
e
)
{
...
...
example/src/main/java/org/apache/rocketmq/example/operation/Consumer.java
浏览文件 @
47556d6a
...
...
@@ -41,7 +41,7 @@ public class Consumer {
String
subscription
=
commandLine
.
getOptionValue
(
's'
);
final
String
returnFailedHalf
=
commandLine
.
getOptionValue
(
'f'
);
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
group
,
false
);
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
group
);
consumer
.
setInstanceName
(
Long
.
toString
(
System
.
currentTimeMillis
()));
consumer
.
subscribe
(
topic
,
subscription
);
...
...
example/src/main/java/org/apache/rocketmq/example/operation/Producer.java
浏览文件 @
47556d6a
...
...
@@ -39,7 +39,7 @@ public class Producer {
String
keys
=
commandLine
.
getOptionValue
(
'k'
);
String
msgCount
=
commandLine
.
getOptionValue
(
'c'
);
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
group
,
false
);
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
group
);
producer
.
setInstanceName
(
Long
.
toString
(
System
.
currentTimeMillis
()));
producer
.
start
();
...
...
example/src/main/java/org/apache/rocketmq/example/ordermessage/Consumer.java
浏览文件 @
47556d6a
...
...
@@ -29,7 +29,7 @@ import org.apache.rocketmq.common.message.MessageExt;
public
class
Consumer
{
public
static
void
main
(
String
[]
args
)
throws
MQClientException
{
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"please_rename_unique_group_name_3"
,
false
);
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"please_rename_unique_group_name_3"
);
consumer
.
setConsumeFromWhere
(
ConsumeFromWhere
.
CONSUME_FROM_FIRST_OFFSET
);
...
...
example/src/main/java/org/apache/rocketmq/example/ordermessage/Producer.java
浏览文件 @
47556d6a
...
...
@@ -32,7 +32,7 @@ import org.apache.rocketmq.remoting.exception.RemotingException;
public
class
Producer
{
public
static
void
main
(
String
[]
args
)
throws
UnsupportedEncodingException
{
try
{
MQProducer
producer
=
new
DefaultMQProducer
(
"please_rename_unique_group_name"
,
false
);
MQProducer
producer
=
new
DefaultMQProducer
(
"please_rename_unique_group_name"
);
producer
.
start
();
String
[]
tags
=
new
String
[]
{
"TagA"
,
"TagB"
,
"TagC"
,
"TagD"
,
"TagE"
};
...
...
example/src/main/java/org/apache/rocketmq/example/quickstart/Consumer.java
浏览文件 @
47556d6a
...
...
@@ -35,7 +35,7 @@ public class Consumer {
/*
* Instantiate with specified consumer group name.
*/
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"please_rename_unique_group_name_4"
,
false
);
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"please_rename_unique_group_name_4"
);
/*
* Specify name server addresses.
...
...
example/src/main/java/org/apache/rocketmq/example/quickstart/Producer.java
浏览文件 @
47556d6a
...
...
@@ -31,7 +31,7 @@ public class Producer {
/*
* Instantiate with a producer group name.
*/
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"please_rename_unique_group_name"
,
false
);
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"please_rename_unique_group_name"
);
/*
* Specify name server addresses.
...
...
example/src/main/java/org/apache/rocketmq/example/simple/AsyncProducer.java
浏览文件 @
47556d6a
...
...
@@ -30,7 +30,7 @@ public class AsyncProducer {
public
static
void
main
(
String
[]
args
)
throws
MQClientException
,
InterruptedException
,
UnsupportedEncodingException
{
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"Jodie_Daily_test"
,
false
);
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"Jodie_Daily_test"
);
producer
.
start
();
producer
.
setRetryTimesWhenSendAsyncFailed
(
0
);
...
...
example/src/main/java/org/apache/rocketmq/example/simple/Producer.java
浏览文件 @
47556d6a
...
...
@@ -25,7 +25,7 @@ import org.apache.rocketmq.remoting.common.RemotingHelper;
public
class
Producer
{
public
static
void
main
(
String
[]
args
)
throws
MQClientException
,
InterruptedException
{
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"ProducerGroupName"
,
true
);
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"ProducerGroupName"
);
producer
.
start
();
for
(
int
i
=
0
;
i
<
128
;
i
++)
...
...
example/src/main/java/org/apache/rocketmq/example/simple/PushConsumer.java
浏览文件 @
47556d6a
...
...
@@ -28,7 +28,7 @@ import org.apache.rocketmq.common.message.MessageExt;
public
class
PushConsumer
{
public
static
void
main
(
String
[]
args
)
throws
InterruptedException
,
MQClientException
{
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"CID_JODIE_1"
,
true
);
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"CID_JODIE_1"
);
consumer
.
subscribe
(
"TopicTest"
,
"*"
);
consumer
.
setConsumeFromWhere
(
ConsumeFromWhere
.
CONSUME_FROM_FIRST_OFFSET
);
//wrong time format 2017_0422_221800
...
...
example/src/main/java/org/apache/rocketmq/example/simple/TestProducer.java
浏览文件 @
47556d6a
...
...
@@ -26,7 +26,7 @@ import org.apache.rocketmq.remoting.common.RemotingHelper;
public
class
TestProducer
{
public
static
void
main
(
String
[]
args
)
throws
MQClientException
,
InterruptedException
{
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"ProducerGroupName"
,
false
);
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"ProducerGroupName"
);
producer
.
start
();
for
(
int
i
=
0
;
i
<
1
;
i
++)
...
...
example/src/main/java/org/apache/rocketmq/example/tracemessage/TraceProducer.java
0 → 100644
浏览文件 @
47556d6a
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.apache.rocketmq.example.tracemessage
;
import
org.apache.rocketmq.client.exception.MQClientException
;
import
org.apache.rocketmq.client.producer.DefaultMQProducer
;
import
org.apache.rocketmq.client.producer.SendResult
;
import
org.apache.rocketmq.common.message.Message
;
import
org.apache.rocketmq.remoting.common.RemotingHelper
;
public
class
TraceProducer
{
public
static
void
main
(
String
[]
args
)
throws
MQClientException
,
InterruptedException
{
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"ProducerGroupName"
,
true
);
producer
.
start
();
for
(
int
i
=
0
;
i
<
128
;
i
++)
try
{
{
Message
msg
=
new
Message
(
"TopicTest"
,
"TagA"
,
"OrderID188"
,
"Hello world"
.
getBytes
(
RemotingHelper
.
DEFAULT_CHARSET
));
SendResult
sendResult
=
producer
.
send
(
msg
);
System
.
out
.
printf
(
"%s%n"
,
sendResult
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
producer
.
shutdown
();
}
}
example/src/main/java/org/apache/rocketmq/example/tracemessage/TracePushConsumer.java
0 → 100644
浏览文件 @
47556d6a
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.apache.rocketmq.example.tracemessage
;
import
java.util.List
;
import
org.apache.rocketmq.client.consumer.DefaultMQPushConsumer
;
import
org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext
;
import
org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus
;
import
org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently
;
import
org.apache.rocketmq.client.exception.MQClientException
;
import
org.apache.rocketmq.common.consumer.ConsumeFromWhere
;
import
org.apache.rocketmq.common.message.MessageExt
;
public
class
TracePushConsumer
{
public
static
void
main
(
String
[]
args
)
throws
InterruptedException
,
MQClientException
{
DefaultMQPushConsumer
consumer
=
new
DefaultMQPushConsumer
(
"CID_JODIE_1"
,
true
);
consumer
.
subscribe
(
"TopicTest"
,
"*"
);
consumer
.
setConsumeFromWhere
(
ConsumeFromWhere
.
CONSUME_FROM_FIRST_OFFSET
);
//wrong time format 2017_0422_221800
consumer
.
setConsumeTimestamp
(
"20181109221800"
);
consumer
.
registerMessageListener
(
new
MessageListenerConcurrently
()
{
@Override
public
ConsumeConcurrentlyStatus
consumeMessage
(
List
<
MessageExt
>
msgs
,
ConsumeConcurrentlyContext
context
)
{
System
.
out
.
printf
(
"%s Receive New Messages: %s %n"
,
Thread
.
currentThread
().
getName
(),
msgs
);
return
ConsumeConcurrentlyStatus
.
CONSUME_SUCCESS
;
}
});
consumer
.
start
();
System
.
out
.
printf
(
"Consumer Started.%n"
);
}
}
tools/src/main/java/org/apache/rocketmq/tools/command/broker/SendMsgStatusCommand.java
浏览文件 @
47556d6a
...
...
@@ -71,7 +71,7 @@ public class SendMsgStatusCommand implements SubCommand {
@Override
public
void
execute
(
CommandLine
commandLine
,
Options
options
,
RPCHook
rpcHook
)
throws
SubCommandException
{
final
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"PID_SMSC"
,
rpcHook
,
false
);
final
DefaultMQProducer
producer
=
new
DefaultMQProducer
(
"PID_SMSC"
,
rpcHook
);
producer
.
setInstanceName
(
"PID_SMSC_"
+
System
.
currentTimeMillis
());
try
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录