☰
Current Page
Main Menu
Home
Home
Editing
RabbitMQ
Edit
Preview
h1
h2
h3
default
Set your preferred keybinding
default
vim
emacs
markdown
Set this page's format to
AsciiDoc
Creole
Markdown
MediaWiki
Org-mode
Plain Text
RDoc
Textile
Rendering unavailable for
BibTeX
Pod
reStructuredText
Help 1
Help 1
Help 1
Help 2
Help 3
Help 4
Help 5
Help 6
Help 7
Help 8
Autosaved text is available. Click the button to restore it.
Restore Text
代码 [[sie-snest-rabbit-mq-master.zip|/uploads/RabbitMQ/sie-snest-rabbit-mq-master.zip]] App [[sie-snest-rabbitmq-v1.0.0.RELEASE.jar|/uploads/RabbitMQ/sie-snest-rabbitmq-v1.0.0.RELEASE.jar]] # 基础使用 ## 添加配置 在 `application.properties` 配置文件添加以下配置 ```properties rabbitmq.host=127.0.0.1 rabbitmq.port=5672 rabbitmq.username=admin rabbitmq.password=password ``` ## 添加 rabbitmq 应用 可以通过应用市场安装 rabbitmq 应用,或下载 rabbitmq app 到 apps 目录 ## 添加应用依赖 在需要使用 RabbitMQ 的 app 中添加依赖,修改 `app.json` , 在 `dependencies` 添加 `rabbitmq` ```json { "name": "rabbitmq-test", "displayName": "RabbitMQ测试", "dependencies": ["rabbitmq"], "events":{ "startUp": [ "RabbitMqTest::registerConsumer" ] } } ``` ## 编写测试代码 ```java @Model(displayName = "RabbitMQ 测试") public class RabbitMqTest extends BaseModel<RabbitMqTest> { private static final Logger LOGGER = LoggerFactory.getLogger(RabbitMqTest.class); private static final String EXCHANGE_NAME = "rabbitmq-test.topic"; private static final String QUEUE_NAME = "rabbitmq-test.changeName.queue"; private static final String ROUTING_KEY = "rabbitmq-test.changeName"; public static final String RABBIT_MQ_MODEL = "RabbitMQ"; @Property(displayName = "名称") private String name; public void registerConsumer() { getMeta().get(RABBIT_MQ_MODEL).call("declareExchange", EXCHANGE_NAME, "topic"); getMeta().get(RABBIT_MQ_MODEL).call("declareQueue", QUEUE_NAME); getMeta().get(RABBIT_MQ_MODEL).call("queueBind", EXCHANGE_NAME, ROUTING_KEY, QUEUE_NAME); getMeta().get(RABBIT_MQ_MODEL).call("registerConsumer", QUEUE_NAME, "RabbitMqTest", "handleChangeNameEvent"); } @MethodService(description = "发送事件") public void publishChangeNameEvent() { ChangeNameEvent event = new ChangeNameEvent("1", "Mary"); getMeta().get(RABBIT_MQ_MODEL).call("send", EXCHANGE_NAME, ROUTING_KEY, JSON.toJSONString(event)); } @MethodService(description = "处理事件") public void handleChangeNameEvent(String event) { LOGGER.debug("接收到消息:{}", event); } } ``` 方法说明 - registerConsumer:用于作为启动事件,启动的时候声明交换机、声明队列、绑定队列、注册消费者 - publishChangeNameEvent:用于发送事件 - handleChangeNameEvent:业务中处理事件的逻辑 ## 添加启动事件 在 `app.json` 中添加启动事件,在应用启动的时候注册消费者。 ```json { "name": "rabbitmq-test", "displayName": "RabbitMQ测试", "dependencies": ["rabbitmq"], "events":{ "startUp": [ "RabbitMqTest::registerConsumer" ] } } ```
Uploading file...
Sidebar
[[_TOC_]]
Edit message:
Cancel