docs: 更新文档,基于RabbitMQ的数据推送队列使用说明
author刘洪青 <hongqing.liu@supwisdom.com>
Tue, 5 Jan 2021 04:58:38 +0000 (12:58 +0800)
committer刘洪青 <hongqing.liu@supwisdom.com>
Tue, 5 Jan 2021 08:56:23 +0000 (16:56 +0800)
docs/基于RabbitMQ的数据推送队列使用说明.md [new file with mode: 0644]
docs/基于RabbitMQ的数据推送队列使用说明.pdf [new file with mode: 0644]

diff --git a/docs/基于RabbitMQ的数据推送队列使用说明.md b/docs/基于RabbitMQ的数据推送队列使用说明.md
new file mode 100644 (file)
index 0000000..211c8a3
--- /dev/null
@@ -0,0 +1,215 @@
+
+# 基于RabbitMQ的数据推送队列使用说明
+
+[TOC]
+
+## 说明
+
+本文档相关对接,须:
+
+* 依赖 用户服务 user-data-service,1.1.5-RELEASE 及以上版本
+
+* 依赖 同步服务 jobs-server 下的 rabbitmq-server
+
+* user-data-service-goa,须开启「推送数据到 jobs-server」
+
+
+## 数据
+
+数据格式为字符串
+
+内容为 json 格式,可以转换为 json 对象进行使用
+
+### 数据模型
+
+* 字典类型 DictionaryType
+
+```
+{
+  "id": String,       // ID
+  "code": String,     // 字典类型代码
+  "name": String,     // 字典类型名称
+  "enable": Boolean,  // 是否启用
+  "sort": Long        // 排序
+}
+```
+
+* 字典 Dictionary
+
+```
+{
+  "id": String,                             // ID
+  "dictionaryType": <ref DictionaryType>,   // 字典类型
+  "code": String,                           // 字典代码
+  "name": String,                           // 字典名称
+  "parentDictionary": <ref Dictionary>,     // 父字典
+  "enable": Boolean,                        // 是否启用
+  "sort": Long                              // 排序
+}
+```
+
+* 身份类型 IdentityType
+
+```
+{
+  "id": String,                               // ID
+  "code": String,                             // 身份类型代码
+  "name": String,                             // 身份类型名称
+  "parentIdentityType": <ref IdentityType>,   // 父身份类型
+  "enable": Boolean,                          // 是否启用
+  "sort": Long                                // 排序
+}
+```
+
+* 组织机构 Organization
+
+```
+{
+  "id": String,                               // ID
+  "code": String,                             // 组织机构代码
+  "name": String,                             // 组织机构名称
+  "description": String,                      // 组织机构描述
+  "type": <ref Dictionary>,                   // 组织机构部门类型
+  "isRootOrganization": Boolean,              // 是否根组织机构
+  "rootOrganizationId": String,               // 所属的根组织机构
+  "parentOrganization": <ref Organization>,   // 所属的父级组织机构
+  "enable": Boolean,                          // 是否启用
+  "sort": Long                                // 排序
+}
+```
+
+* 用户 User
+
+```
+{
+  "id": String,                         // ID
+  "uid": String,                        // 人员编号
+  "passWord": String,                   // 账号密码
+  "ldapUserPassword": String,           // 账号密码(LDAP同步用)
+  "name": String,                       // 姓名
+  "fullNameSpelling": String,           // 姓名全拼
+  "nameSpelling": String,               // 姓名简拼
+  "certificateType": <ref Dictionary>,  // 证件类型,字典
+  "certificateNumber": String,          // 证件号码
+  "gender": <ref Dictionary>,           // 性别,字典
+  "nation": <ref Dictionary>,           // 民族,字典
+  "country": <ref Dictionary>,          // 国家,字典
+  "address": <ref Dictionary>,          // 地区,字典
+  "phoneNumber": String,                // 手机号码
+  "email": String,                      // 邮箱
+  "imageUrl": String                    // 个人照片地址
+}
+```
+
+* 帐号 Account
+
+```
+{
+  "id": String,                         // ID
+  "user": <ref User>,                   // 人员基本信息
+  "accountName": String,                // 账号名
+  "identityType": <ref IdentityType>,   // 身份,身份类型
+  "organization": <ref Organization>,   // 所属组织机构
+  "state": <enum>,                      // 账户状态,NORMAL:正常,FREEZE:冻结,WRITTENOFF:注销
+  "accountExpiryDate": Date,            // 账户有效日期[yyyy-MM-dd]
+  "userUid": String,                    // 人员编号(冗余)
+  "userName": String,                   // 姓名(冗余)
+  "certificateType": <ref Dictionary>,  // 证件类型(冗余),字典
+  "certificateNumber": String,          // 证件号码(冗余)
+  "gender": <ref Dictionary>,           // 性别(冗余),字典
+  "nation": <ref Dictionary>,           // 民族(冗余),字典
+  "country": <ref Dictionary>,          // 国家(冗余),字典
+  "address": <ref Dictionary>,          // 地区(冗余),字典
+  "phoneNumber": String,                // 手机号码(冗余)
+  "email": String                       // 邮箱(冗余)
+}
+```
+
+* 同步密码 SyncPassword
+
+```
+{
+  "account": <ref Account>,   // 帐号
+  "password": String          // 密码(明文)
+}
+```
+
+
+## RabbitMQ 服务地址
+
+```
+host: rabbitmq-server.jobs-server.svc.cluster.local
+port: 5672
+username: guest
+password: guest
+```
+
+注:host 地址视具体部署情况确定,一般使用上述 k8s 集群内地址即可
+
+
+## 交换机 Exchange
+
+模式:发布/订阅,fanout
+
+详见:`https://www.rabbitmq.com/tutorials/tutorial-three-java.html`
+
+业务说明:
+
+* 用户服务作为数据发布者,会将 组织机构、帐号、密码等数据的变更事件,以消息的方式 发布到 RabbitMQ 中
+
+* 数据消费方,只须订阅这些消息,将 交换机 与 队列 进行绑定,然后进行监听,接收数据进行处理即可。
+
+
+
+
+### 交换机清单
+
+* 组织机构保存
+
+交换机名称,`jobs.fanout.exchange.organization-userSvc-2-jobs-save`
+
+数据,组织机构 Organization
+
+**可依据 code 组织机构代码,作为唯一标识,用于判定数据是否在目标应用存在**
+
+
+* 组织机构删除
+
+交换机名称,`jobs.fanout.exchange.organization-userSvc-2-jobs-delete`
+
+数据,组织机构 Organization
+
+
+* 帐号保存
+
+交换机名称,`jobs.fanout.exchange.account-userSvc-2-jobs-save`
+
+数据,帐号 Account
+
+**可依据 accountName 帐号名,作为唯一标识,用于判定数据是否在目标应用存在**
+
+
+* 帐号删除
+
+交换机名称,`jobs.fanout.exchange.account-userSvc-2-jobs-delete`
+
+数据,帐号 Account
+
+
+* 帐号密码修改
+
+交换机名称,`jobs.fanout.exchange.account-userSvc-2-jobs-reset-password`
+
+数据,帐号 Account
+
+**可用于 OpenLDAP 密码的更新**
+
+
+* 明文密码同步
+
+交换机名称,`jobs.fanout.exchange.account-userSvc-2-jobs-sync-password`
+
+数据,同步密码 SyncPassword
+
+**可将明文密码同步到第三方应用**
+
diff --git a/docs/基于RabbitMQ的数据推送队列使用说明.pdf b/docs/基于RabbitMQ的数据推送队列使用说明.pdf
new file mode 100644 (file)
index 0000000..685f891
Binary files /dev/null and "b/docs/\345\237\272\344\272\216RabbitMQ\347\232\204\346\225\260\346\215\256\346\216\250\351\200\201\351\230\237\345\210\227\344\275\277\347\224\250\350\257\264\346\230\216.pdf" differ