Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
rocket-mq-demo
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
songchuancai
rocket-mq-demo
Commits
3b032798
提交
3b032798
authored
11月 17, 2021
作者:
scc
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add new interface
上级
4af475b1
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
119 行增加
和
5 行删除
+119
-5
StringConsumer.java
...ava/com/example/rocketmqdemo/consumer/StringConsumer.java
+16
-0
MqMessageController.java
.../example/rocketmqdemo/controller/MqMessageController.java
+76
-1
XcRocketMq2.java
...java/com/example/rocketmqdemo/controller/XcRocketMq2.java
+19
-0
application.yml
src/main/resources/application.yml
+8
-4
没有找到文件。
src/main/java/com/example/rocketmqdemo/consumer/StringConsumer.java
0 → 100644
浏览文件 @
3b032798
package
com
.
example
.
rocketmqdemo
.
consumer
;
import
org.apache.rocketmq.spring.annotation.RocketMQMessageListener
;
import
org.apache.rocketmq.spring.core.RocketMQListener
;
import
org.springframework.stereotype.Service
;
@Service
@RocketMQMessageListener
(
consumerGroup
=
"${xc.rocketmq2.string-consumer-group}"
,
topic
=
"${xc.rocketmq2.topic-string}"
)
public
class
StringConsumer
implements
RocketMQListener
<
String
>
{
@Override
public
void
onMessage
(
String
message
)
{
System
.
out
.
println
(
"消费字符串消息:"
+
message
);
}
}
\ No newline at end of file
src/main/java/com/example/rocketmqdemo/controller/MqMessageController.java
浏览文件 @
3b032798
package
com
.
example
.
rocketmqdemo
.
controller
;
package
com
.
example
.
rocketmqdemo
.
controller
;
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.MQBrokerException
;
import
org.apache.rocketmq.client.exception.MQClientException
;
import
org.apache.rocketmq.client.producer.DefaultMQProducer
;
import
org.apache.rocketmq.client.producer.SendCallback
;
import
org.apache.rocketmq.client.producer.SendResult
;
import
org.apache.rocketmq.common.CountDownLatch2
;
import
org.apache.rocketmq.common.message.Message
;
import
org.apache.rocketmq.common.message.MessageExt
;
import
org.apache.rocketmq.remoting.common.RemotingHelper
;
import
org.apache.rocketmq.remoting.exception.RemotingException
;
import
org.apache.rocketmq.spring.core.RocketMQTemplate
;
import
org.apache.rocketmq.spring.core.RocketMQTemplate
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -8,16 +22,76 @@ import org.springframework.web.bind.annotation.RequestMapping;
...
@@ -8,16 +22,76 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.io.UnsupportedEncodingException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
@RestController
@RestController
public
class
MqMessageController
{
public
class
MqMessageController
{
@Autowired
@Autowired
private
RocketMQTemplate
rocketMQTemplate
;
private
RocketMQTemplate
rocketMQTemplate
;
@Autowired
private
XcRocketMq2
xcRocketMq2
;
@RequestMapping
(
"/testMessage"
)
@RequestMapping
(
"/testMessage"
)
public
String
get
(
@RequestParam
(
"id"
)
int
id
)
{
public
String
testMessage
(
@RequestParam
(
"id"
)
int
id
)
{
rocketMQTemplate
.
convertAndSend
(
"scc"
,
"Hello"
+
id
);
rocketMQTemplate
.
convertAndSend
(
"scc"
,
"Hello"
+
id
);
return
"success"
;
return
"success"
;
}
}
@RequestMapping
(
"/sendSyncMessage"
)
public
List
<
SendResult
>
sendSyncMessage
(
@RequestParam
(
"id"
)
int
id
,
@RequestParam
(
"count"
)
int
count
)
throws
UnsupportedEncodingException
,
MQBrokerException
,
RemotingException
,
InterruptedException
,
MQClientException
{
List
<
SendResult
>
results
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
SendResult
result
=
rocketMQTemplate
.
syncSend
(
xcRocketMq2
.
getTopicString
(),
"Hello RocketMQ 同步发送消息"
+
i
);
results
.
add
(
result
);
}
return
results
;
}
@RequestMapping
(
"/sendASyncMessage"
)
public
List
<
String
>
sendASyncMessage
(
@RequestParam
(
"id"
)
int
id
,
@RequestParam
(
"count"
)
int
count
)
throws
UnsupportedEncodingException
,
MQBrokerException
,
RemotingException
,
InterruptedException
,
MQClientException
{
List
<
String
>
results
=
new
ArrayList
<>();
// 根据消息数量实例化倒计时计算器
final
CountDownLatch2
countDownLatch
=
new
CountDownLatch2
(
count
);
boolean
flag
;
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
final
int
index
=
i
;
// 创建消息,并指定Topic,Tag和消息体
// SendCallback接收异步返回结果的回调
rocketMQTemplate
.
asyncSend
(
xcRocketMq2
.
getTopicString
(),
"Hello RocketMQ 异步发送消息"
+
i
,
new
SendCallback
()
{
@Override
public
void
onSuccess
(
SendResult
sendResult
)
{
countDownLatch
.
countDown
();
results
.
add
(
sendResult
.
toString
());
System
.
out
.
printf
(
"%-10d OK %s %n"
,
index
,
sendResult
.
getMsgId
());
}
@Override
public
void
onException
(
Throwable
e
)
{
countDownLatch
.
countDown
();
results
.
add
(
e
.
getMessage
());
System
.
out
.
printf
(
"%-10d Exception %s %n"
,
index
,
e
);
e
.
printStackTrace
();
}
});
}
// 等待5s
countDownLatch
.
await
(
5
,
TimeUnit
.
SECONDS
);
return
results
;
}
@RequestMapping
(
"/sendOneWay"
)
public
String
sendOneWay
()
throws
Exception
{
for
(
int
i
=
0
;
i
<
100
;
i
++)
{
// 创建消息,并指定Topic,Tag和消息体
// 发送单向消息,没有任何返回结果
rocketMQTemplate
.
sendOneWay
(
xcRocketMq2
.
getTopicString
(),
"发送单向消息"
+
i
);
}
return
"单向发送消息成功"
;
}
}
}
\ No newline at end of file
src/main/java/com/example/rocketmqdemo/controller/XcRocketMq2.java
0 → 100644
浏览文件 @
3b032798
package
com
.
example
.
rocketmqdemo
.
controller
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
@Data
@Component
public
class
XcRocketMq2
{
@Value
(
"xc.rocketmq2.topic-string"
)
public
String
topicString
;
@Value
(
"xc.rocketmq2.topic-object"
)
public
String
topicObject
;
@Value
(
"xc.rocketmq2.string-consumer-group"
)
public
String
stringConsumerGroup
;
@Value
(
"xc.rocketmq2.object-consumer-group"
)
public
String
objectConsumerGroup
;
}
src/main/resources/application.yml
浏览文件 @
3b032798
rocketmq
:
rocketmq
:
name-server
:
${NAME_SERVER:rocket-nameserver-0.rocket-nameserver.pipeline-zjh:9876}
name-server
:
${NAME_SERVER:rocket-nameserver-0.rocket-nameserver.pipeline-zjh:9876}
producer
:
producer
:
group
:
scc-group
group
:
string_producer_group
xc
:
topic
:
${TOPIC_NAME:scc}
rocketmq2
:
\ No newline at end of file
topic-string
:
topic_string
topic-object
:
topic_object
string-consumer-group
:
string_consumer_group
object-consumer-group
:
object_consumer_group
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论