Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Apache RocketMQ
Rocketmq
提交
82a59610
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看板
提交
82a59610
编写于
11月 06, 2018
作者:
M
maowei.ymw
提交者:
von gosling
11月 27, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add integration test case
上级
11bb2672
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
73 addition
and
5 deletion
+73
-5
client/src/main/java/org/apache/rocketmq/client/impl/consumer/PullAPIWrapper.java
.../apache/rocketmq/client/impl/consumer/PullAPIWrapper.java
+0
-1
client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java
...apache/rocketmq/client/impl/factory/MQClientInstance.java
+1
-1
test/src/test/java/org/apache/rocketmq/test/client/consumer/filter/SqlFilterIT.java
...che/rocketmq/test/client/consumer/filter/SqlFilterIT.java
+72
-3
未找到文件。
client/src/main/java/org/apache/rocketmq/client/impl/consumer/PullAPIWrapper.java
浏览文件 @
82a59610
...
@@ -163,7 +163,6 @@ public class PullAPIWrapper {
...
@@ -163,7 +163,6 @@ public class PullAPIWrapper {
this
.
recalculatePullFromWhichNode
(
mq
),
false
);
this
.
recalculatePullFromWhichNode
(
mq
),
false
);
}
}
if
(
findBrokerResult
!=
null
)
{
if
(
findBrokerResult
!=
null
)
{
{
{
// check version
// check version
...
...
client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java
浏览文件 @
82a59610
...
@@ -1046,7 +1046,7 @@ public class MQClientInstance {
...
@@ -1046,7 +1046,7 @@ public class MQClientInstance {
if
(
this
.
brokerVersionTable
.
get
(
brokerName
).
containsKey
(
brokerAddr
))
{
if
(
this
.
brokerVersionTable
.
get
(
brokerName
).
containsKey
(
brokerAddr
))
{
return
this
.
brokerVersionTable
.
get
(
brokerName
).
get
(
brokerAddr
);
return
this
.
brokerVersionTable
.
get
(
brokerName
).
get
(
brokerAddr
);
}
}
}
else
{
}
else
{
HeartbeatData
heartbeatData
=
prepareHeartbeatData
();
HeartbeatData
heartbeatData
=
prepareHeartbeatData
();
try
{
try
{
int
version
=
this
.
mQClientAPIImpl
.
sendHearbeat
(
brokerAddr
,
heartbeatData
,
3000
);
int
version
=
this
.
mQClientAPIImpl
.
sendHearbeat
(
brokerAddr
,
heartbeatData
,
3000
);
...
...
test/src/test/java/org/apache/rocketmq/test/client/consumer/filter/SqlFilterIT.java
浏览文件 @
82a59610
...
@@ -17,12 +17,18 @@
...
@@ -17,12 +17,18 @@
package
org.apache.rocketmq.test.client.consumer.filter
;
package
org.apache.rocketmq.test.client.consumer.filter
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
org.apache.log4j.Logger
;
import
org.apache.log4j.Logger
;
import
org.apache.rocketmq.client.consumer.DefaultMQPullConsumer
;
import
org.apache.rocketmq.client.consumer.MessageSelector
;
import
org.apache.rocketmq.client.consumer.MessageSelector
;
import
org.apache.rocketmq.client.consumer.PullResult
;
import
org.apache.rocketmq.common.message.MessageExt
;
import
org.apache.rocketmq.common.message.MessageQueue
;
import
org.apache.rocketmq.test.base.BaseConf
;
import
org.apache.rocketmq.test.base.BaseConf
;
import
org.apache.rocketmq.test.client.consumer.broadcast.BaseBroadCastIT
;
import
org.apache.rocketmq.test.client.consumer.broadcast.normal.NormalMsgTwoSameGroupConsumerIT
;
import
org.apache.rocketmq.test.client.rmq.RMQBroadCastConsumer
;
import
org.apache.rocketmq.test.client.rmq.RMQNormalProducer
;
import
org.apache.rocketmq.test.client.rmq.RMQNormalProducer
;
import
org.apache.rocketmq.test.client.rmq.RMQSqlConsumer
;
import
org.apache.rocketmq.test.client.rmq.RMQSqlConsumer
;
import
org.apache.rocketmq.test.factory.ConsumerFactory
;
import
org.apache.rocketmq.test.factory.ConsumerFactory
;
...
@@ -39,12 +45,14 @@ public class SqlFilterIT extends BaseConf {
...
@@ -39,12 +45,14 @@ public class SqlFilterIT extends BaseConf {
private
static
Logger
logger
=
Logger
.
getLogger
(
SqlFilterIT
.
class
);
private
static
Logger
logger
=
Logger
.
getLogger
(
SqlFilterIT
.
class
);
private
RMQNormalProducer
producer
=
null
;
private
RMQNormalProducer
producer
=
null
;
private
String
topic
=
null
;
private
String
topic
=
null
;
private
static
final
Map
<
MessageQueue
,
Long
>
OFFSE_TABLE
=
new
HashMap
<
MessageQueue
,
Long
>();
@Before
@Before
public
void
setUp
()
{
public
void
setUp
()
{
topic
=
initTopic
();
topic
=
initTopic
();
logger
.
info
(
String
.
format
(
"use topic: %s;"
,
topic
));
logger
.
info
(
String
.
format
(
"use topic: %s;"
,
topic
));
producer
=
getProducer
(
nsAddr
,
topic
);
producer
=
getProducer
(
nsAddr
,
topic
);
OFFSE_TABLE
.
clear
();
}
}
@After
@After
...
@@ -71,4 +79,65 @@ public class SqlFilterIT extends BaseConf {
...
@@ -71,4 +79,65 @@ public class SqlFilterIT extends BaseConf {
assertThat
(
consumer
.
getListener
().
getAllMsgBody
().
size
()).
isEqualTo
(
msgSize
*
2
);
assertThat
(
consumer
.
getListener
().
getAllMsgBody
().
size
()).
isEqualTo
(
msgSize
*
2
);
}
}
@Test
public
void
testFilterPullConsumer
()
throws
Exception
{
int
msgSize
=
16
;
String
group
=
initConsumerGroup
();
MessageSelector
selector
=
MessageSelector
.
bySql
(
"(TAGS is not null and TAGS in ('TagA', 'TagB'))"
);
DefaultMQPullConsumer
consumer
=
new
DefaultMQPullConsumer
(
group
);
consumer
.
setNamesrvAddr
(
nsAddr
);
consumer
.
start
();
Thread
.
sleep
(
3000
);
producer
.
send
(
"TagA"
,
msgSize
);
producer
.
send
(
"TagB"
,
msgSize
);
producer
.
send
(
"TagC"
,
msgSize
);
Assert
.
assertEquals
(
"Not all sent succeeded"
,
msgSize
*
3
,
producer
.
getAllUndupMsgBody
().
size
());
List
<
String
>
receivedMessage
=
new
ArrayList
<>(
2
);
Set
<
MessageQueue
>
mqs
=
consumer
.
fetchSubscribeMessageQueues
(
topic
);
for
(
MessageQueue
mq
:
mqs
)
{
SINGLE_MQ:
while
(
true
)
{
try
{
PullResult
pullResult
=
consumer
.
pull
(
mq
,
selector
,
getMessageQueueOffset
(
mq
),
32
);
putMessageQueueOffset
(
mq
,
pullResult
.
getNextBeginOffset
());
switch
(
pullResult
.
getPullStatus
())
{
case
FOUND:
List
<
MessageExt
>
msgs
=
pullResult
.
getMsgFoundList
();
for
(
MessageExt
msg
:
msgs
)
{
receivedMessage
.
add
(
new
String
(
msg
.
getBody
()));
}
break
;
case
NO_MATCHED_MSG:
break
;
case
NO_NEW_MSG:
break
SINGLE_MQ
;
case
OFFSET_ILLEGAL:
break
;
default
:
break
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
assertThat
(
receivedMessage
.
size
()).
isEqualTo
(
msgSize
*
2
);
}
private
static
long
getMessageQueueOffset
(
MessageQueue
mq
)
{
Long
offset
=
OFFSE_TABLE
.
get
(
mq
);
if
(
offset
!=
null
)
return
offset
;
return
0
;
}
private
static
void
putMessageQueueOffset
(
MessageQueue
mq
,
long
offset
)
{
OFFSE_TABLE
.
put
(
mq
,
offset
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录