a3a9a60e43edaaf1e6c2f1dbdbef309d0209a369
.redirects.gollum
| ... | ... | @@ -21,3 +21,4 @@ Many2One不需要填写依赖和允许跨App安装.md: Many2One跨App安装.md |
| 21 | 21 | dowload.md: 下载接口认证失败.md |
| 22 | 22 | 非正式版本.md: UAT/hotFix版本.md |
| 23 | 23 | UAT/hotFix版本.md: UAT/HOTFIX或UAT版本.md |
| 24 | +基础APP/RabbitMQ APP.md: 基础APP/./admin#^($!@$)(()))******.md |
\345\237\272\347\241\200APP/RabbitMQ APP.md
| ... | ... | @@ -1,122 +0,0 @@ |
| 1 | -代码 |
|
| 2 | - |
|
| 3 | -App [sie-snest-rabbitmq-v2.7.0.RELEASE.jar](http://docs-iidp.sieiot.com/index.php/s/iBUmRif4fNUZjjc?path=%2F%E9%98%9F%E5%88%97%E6%9C%8D%E5%8A%A1) |
|
| 4 | -# 基础使用 |
|
| 5 | - |
|
| 6 | -## 添加配置 |
|
| 7 | - |
|
| 8 | -不推荐使用:在 `application.properties` 配置文件添加以下配置。<br> |
|
| 9 | -因为如果需要修改配置,需要重启环境。 |
|
| 10 | - |
|
| 11 | -```properties |
|
| 12 | -rabbitmq.host=127.0.0.1 |
|
| 13 | -rabbitmq.port=5672 |
|
| 14 | -rabbitmq.username=admin |
|
| 15 | -rabbitmq.password=password |
|
| 16 | -``` |
|
| 17 | -推荐使用:建议作为APP的配置信息在配置中心进行配置。<br> |
|
| 18 | -例:在应用App的app.json里配置rabbitmq的配置信息。 |
|
| 19 | -``` |
|
| 20 | -"appConfig": { |
|
| 21 | - "host": { |
|
| 22 | - "value": "", |
|
| 23 | - "desc": "rabbitmq的host", |
|
| 24 | - "required": false |
|
| 25 | - }, |
|
| 26 | - "port": { |
|
| 27 | - "value": "", |
|
| 28 | - "desc": "rabbitmq的port", |
|
| 29 | - "required": false |
|
| 30 | - }, |
|
| 31 | - "username": { |
|
| 32 | - "value": "", |
|
| 33 | - "desc": "rabbitmq的username", |
|
| 34 | - "required": false |
|
| 35 | - }, |
|
| 36 | - "password": { |
|
| 37 | - "value": "", |
|
| 38 | - "desc": "rabbitmq的password", |
|
| 39 | - "required": false |
|
| 40 | - } |
|
| 41 | -} |
|
| 42 | -``` |
|
| 43 | -## 添加 rabbitmq 应用 |
|
| 44 | - |
|
| 45 | -可以通过应用市场安装 base-rabbitmq 应用与业务应用在同一个容器内。<br> |
|
| 46 | -注意:如果业务应用容器没有base-rabbitmq,调用时会出现系统异常。 |
|
| 47 | - |
|
| 48 | -## 添加应用依赖 |
|
| 49 | - |
|
| 50 | -在需要使用 RabbitMQ 的 app 中添加依赖,修改 `app.json` , 在 `dependencies` 添加 `base-rabbitmq` |
|
| 51 | - |
|
| 52 | -```json |
|
| 53 | -{ |
|
| 54 | - "name": "rabbitmq-test", |
|
| 55 | - "displayName": "RabbitMQ测试", |
|
| 56 | - "dependencies": ["base-rabbitmq"], |
|
| 57 | - "events":{ |
|
| 58 | - "startUp": [ |
|
| 59 | - "RabbitMqTest::registerConsumer" |
|
| 60 | - ] |
|
| 61 | - } |
|
| 62 | -} |
|
| 63 | -``` |
|
| 64 | -## 添加启动事件 |
|
| 65 | - |
|
| 66 | -在 `app.json` 中添加启动事件,在应用启动的时候注册消费者。<br> |
|
| 67 | -下图中的“"RabbitMqTest::registerConsumer"” |
|
| 68 | - |
|
| 69 | -```json |
|
| 70 | -{ |
|
| 71 | - "name": "rabbitmq-test", |
|
| 72 | - "displayName": "RabbitMQ测试", |
|
| 73 | - "dependencies": ["base-rabbitmq"], |
|
| 74 | - "events":{ |
|
| 75 | - "startUp": [ |
|
| 76 | - "RabbitMqTest::registerConsumer" |
|
| 77 | - ] |
|
| 78 | - } |
|
| 79 | -} |
|
| 80 | -``` |
|
| 81 | - |
|
| 82 | -## 编写测试代码 |
|
| 83 | - |
|
| 84 | -```java |
|
| 85 | -@Model(displayName = "RabbitMQ 测试") |
|
| 86 | -public class RabbitMqTest extends BaseModel<RabbitMqTest> { |
|
| 87 | - |
|
| 88 | - private static final Logger LOGGER = LoggerFactory.getLogger(RabbitMqTest.class); |
|
| 89 | - private static final String EXCHANGE_NAME = "rabbitmq-test.topic"; |
|
| 90 | - private static final String QUEUE_NAME = "rabbitmq-test.changeName.queue"; |
|
| 91 | - private static final String ROUTING_KEY = "rabbitmq-test.changeName"; |
|
| 92 | - public static final String RABBIT_MQ_MODEL = "RabbitMQ"; |
|
| 93 | - |
|
| 94 | - @Property(displayName = "名称") |
|
| 95 | - private String name; |
|
| 96 | - |
|
| 97 | - public void registerConsumer() { |
|
| 98 | - getMeta().get(RABBIT_MQ_MODEL).call("declareExchange", EXCHANGE_NAME, "topic"); |
|
| 99 | - getMeta().get(RABBIT_MQ_MODEL).call("declareQueue", QUEUE_NAME); |
|
| 100 | - getMeta().get(RABBIT_MQ_MODEL).call("queueBind", EXCHANGE_NAME, ROUTING_KEY, QUEUE_NAME); |
|
| 101 | - getMeta().get(RABBIT_MQ_MODEL).call("registerConsumer", QUEUE_NAME, "RabbitMqTest", "handleChangeNameEvent"); |
|
| 102 | - } |
|
| 103 | - |
|
| 104 | - @MethodService(description = "发送事件") |
|
| 105 | - public void publishChangeNameEvent() { |
|
| 106 | - ChangeNameEvent event = new ChangeNameEvent("1", "Mary"); |
|
| 107 | - getMeta().get(RABBIT_MQ_MODEL).call("send", EXCHANGE_NAME, ROUTING_KEY, JSON.toJSONString(event)); |
|
| 108 | - } |
|
| 109 | - |
|
| 110 | - @MethodService(description = "处理事件") |
|
| 111 | - public void handleChangeNameEvent(String event) { |
|
| 112 | - LOGGER.debug("接收到消息:{}", event); |
|
| 113 | - } |
|
| 114 | -} |
|
| 115 | -``` |
|
| 116 | - |
|
| 117 | -方法说明 |
|
| 118 | - |
|
| 119 | -- registerConsumer:用于作为启动事件,启动的时候声明交换机、声明队列、绑定队列、注册消费者 |
|
| 120 | -- publishChangeNameEvent:用于发送事件 |
|
| 121 | -- handleChangeNameEvent:业务中处理事件的逻辑 |
|
| 122 | - |
\345\237\272\347\241\200APP/admin#^($!@$)(()))******.md
| ... | ... | @@ -0,0 +1,122 @@ |
| 1 | +代码 |
|
| 2 | + |
|
| 3 | +App [sie-snest-rabbitmq-v2.7.0.RELEASE.jar](http://docs-iidp.sieiot.com/index.php/s/iBUmRif4fNUZjjc?path=%2F%E9%98%9F%E5%88%97%E6%9C%8D%E5%8A%A1) |
|
| 4 | +# 基础使用 |
|
| 5 | + |
|
| 6 | +## 添加配置 |
|
| 7 | + |
|
| 8 | +不推荐使用:在 `application.properties` 配置文件添加以下配置。<br> |
|
| 9 | +因为如果需要修改配置,需要重启环境。 |
|
| 10 | + |
|
| 11 | +```properties |
|
| 12 | +rabbitmq.host=127.0.0.1 |
|
| 13 | +rabbitmq.port=5672 |
|
| 14 | +rabbitmq.username=admin |
|
| 15 | +rabbitmq.password=password |
|
| 16 | +``` |
|
| 17 | +推荐使用:建议作为APP的配置信息在配置中心进行配置。<br> |
|
| 18 | +例:在应用App的app.json里配置rabbitmq的配置信息。 |
|
| 19 | +``` |
|
| 20 | +"appConfig": { |
|
| 21 | + "host": { |
|
| 22 | + "value": "", |
|
| 23 | + "desc": "rabbitmq的host", |
|
| 24 | + "required": false |
|
| 25 | + }, |
|
| 26 | + "port": { |
|
| 27 | + "value": "", |
|
| 28 | + "desc": "rabbitmq的port", |
|
| 29 | + "required": false |
|
| 30 | + }, |
|
| 31 | + "username": { |
|
| 32 | + "value": "", |
|
| 33 | + "desc": "rabbitmq的username", |
|
| 34 | + "required": false |
|
| 35 | + }, |
|
| 36 | + "password": { |
|
| 37 | + "value": "", |
|
| 38 | + "desc": "rabbitmq的password", |
|
| 39 | + "required": false |
|
| 40 | + } |
|
| 41 | +} |
|
| 42 | +``` |
|
| 43 | +## 添加 rabbitmq 应用 |
|
| 44 | + |
|
| 45 | +可以通过应用市场安装 base-rabbitmq 应用与业务应用在同一个容器内。<br> |
|
| 46 | +注意:如果业务应用容器没有base-rabbitmq,调用时会出现系统异常。 |
|
| 47 | + |
|
| 48 | +## 添加应用依赖 |
|
| 49 | + |
|
| 50 | +在需要使用 RabbitMQ 的 app 中添加依赖,修改 `app.json` , 在 `dependencies` 添加 `base-rabbitmq` |
|
| 51 | + |
|
| 52 | +```json |
|
| 53 | +{ |
|
| 54 | + "name": "rabbitmq-test", |
|
| 55 | + "displayName": "RabbitMQ测试", |
|
| 56 | + "dependencies": ["base-rabbitmq"], |
|
| 57 | + "events":{ |
|
| 58 | + "startUp": [ |
|
| 59 | + "RabbitMqTest::registerConsumer" |
|
| 60 | + ] |
|
| 61 | + } |
|
| 62 | +} |
|
| 63 | +``` |
|
| 64 | +## 添加启动事件 |
|
| 65 | + |
|
| 66 | +在 `app.json` 中添加启动事件,在应用启动的时候注册消费者。<br> |
|
| 67 | +下图中的“"RabbitMqTest::registerConsumer"” |
|
| 68 | + |
|
| 69 | +```json |
|
| 70 | +{ |
|
| 71 | + "name": "rabbitmq-test", |
|
| 72 | + "displayName": "RabbitMQ测试", |
|
| 73 | + "dependencies": ["base-rabbitmq"], |
|
| 74 | + "events":{ |
|
| 75 | + "startUp": [ |
|
| 76 | + "RabbitMqTest::registerConsumer" |
|
| 77 | + ] |
|
| 78 | + } |
|
| 79 | +} |
|
| 80 | +``` |
|
| 81 | + |
|
| 82 | +## 编写测试代码 |
|
| 83 | + |
|
| 84 | +```java |
|
| 85 | +@Model(displayName = "RabbitMQ 测试") |
|
| 86 | +public class RabbitMqTest extends BaseModel<RabbitMqTest> { |
|
| 87 | + |
|
| 88 | + private static final Logger LOGGER = LoggerFactory.getLogger(RabbitMqTest.class); |
|
| 89 | + private static final String EXCHANGE_NAME = "rabbitmq-test.topic"; |
|
| 90 | + private static final String QUEUE_NAME = "rabbitmq-test.changeName.queue"; |
|
| 91 | + private static final String ROUTING_KEY = "rabbitmq-test.changeName"; |
|
| 92 | + public static final String RABBIT_MQ_MODEL = "RabbitMQ"; |
|
| 93 | + |
|
| 94 | + @Property(displayName = "名称") |
|
| 95 | + private String name; |
|
| 96 | + |
|
| 97 | + public void registerConsumer() { |
|
| 98 | + getMeta().get(RABBIT_MQ_MODEL).call("declareExchange", EXCHANGE_NAME, "topic"); |
|
| 99 | + getMeta().get(RABBIT_MQ_MODEL).call("declareQueue", QUEUE_NAME); |
|
| 100 | + getMeta().get(RABBIT_MQ_MODEL).call("queueBind", EXCHANGE_NAME, ROUTING_KEY, QUEUE_NAME); |
|
| 101 | + getMeta().get(RABBIT_MQ_MODEL).call("registerConsumer", QUEUE_NAME, "RabbitMqTest", "handleChangeNameEvent"); |
|
| 102 | + } |
|
| 103 | + |
|
| 104 | + @MethodService(description = "发送事件") |
|
| 105 | + public void publishChangeNameEvent() { |
|
| 106 | + ChangeNameEvent event = new ChangeNameEvent("1", "Mary"); |
|
| 107 | + getMeta().get(RABBIT_MQ_MODEL).call("send", EXCHANGE_NAME, ROUTING_KEY, JSON.toJSONString(event)); |
|
| 108 | + } |
|
| 109 | + |
|
| 110 | + @MethodService(description = "处理事件") |
|
| 111 | + public void handleChangeNameEvent(String event) { |
|
| 112 | + LOGGER.debug("接收到消息:{}", event); |
|
| 113 | + } |
|
| 114 | +} |
|
| 115 | +``` |
|
| 116 | + |
|
| 117 | +方法说明 |
|
| 118 | + |
|
| 119 | +- registerConsumer:用于作为启动事件,启动的时候声明交换机、声明队列、绑定队列、注册消费者 |
|
| 120 | +- publishChangeNameEvent:用于发送事件 |
|
| 121 | +- handleChangeNameEvent:业务中处理事件的逻辑 |
|
| 122 | + |