From: 刘洪青 Date: Tue, 5 Jan 2021 04:58:38 +0000 (+0800) Subject: docs: 更新文档,基于RabbitMQ的数据推送队列使用说明 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=c7995d968b32e9ae0eac7fa461fd4c456f66cb99;p=institute%2Fdeploy-authx-service.git docs: 更新文档,基于RabbitMQ的数据推送队列使用说明 --- diff --git "a/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.md" "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.md" new file mode 100644 index 0000000..211c8a3 --- /dev/null +++ "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.md" @@ -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": , // 字典类型 + "code": String, // 字典代码 + "name": String, // 字典名称 + "parentDictionary": , // 父字典 + "enable": Boolean, // 是否启用 + "sort": Long // 排序 +} +``` + +* 身份类型 IdentityType + +``` +{ + "id": String, // ID + "code": String, // 身份类型代码 + "name": String, // 身份类型名称 + "parentIdentityType": , // 父身份类型 + "enable": Boolean, // 是否启用 + "sort": Long // 排序 +} +``` + +* 组织机构 Organization + +``` +{ + "id": String, // ID + "code": String, // 组织机构代码 + "name": String, // 组织机构名称 + "description": String, // 组织机构描述 + "type": , // 组织机构部门类型 + "isRootOrganization": Boolean, // 是否根组织机构 + "rootOrganizationId": String, // 所属的根组织机构 + "parentOrganization": , // 所属的父级组织机构 + "enable": Boolean, // 是否启用 + "sort": Long // 排序 +} +``` + +* 用户 User + +``` +{ + "id": String, // ID + "uid": String, // 人员编号 + "passWord": String, // 账号密码 + "ldapUserPassword": String, // 账号密码(LDAP同步用) + "name": String, // 姓名 + "fullNameSpelling": String, // 姓名全拼 + "nameSpelling": String, // 姓名简拼 + "certificateType": , // 证件类型,字典 + "certificateNumber": String, // 证件号码 + "gender": , // 性别,字典 + "nation": , // 民族,字典 + "country": , // 国家,字典 + "address": , // 地区,字典 + "phoneNumber": String, // 手机号码 + "email": String, // 邮箱 + "imageUrl": String // 个人照片地址 +} +``` + +* 帐号 Account + +``` +{ + "id": String, // ID + "user": , // 人员基本信息 + "accountName": String, // 账号名 + "identityType": , // 身份,身份类型 + "organization": , // 所属组织机构 + "state": , // 账户状态,NORMAL:正常,FREEZE:冻结,WRITTENOFF:注销 + "accountExpiryDate": Date, // 账户有效日期[yyyy-MM-dd] + "userUid": String, // 人员编号(冗余) + "userName": String, // 姓名(冗余) + "certificateType": , // 证件类型(冗余),字典 + "certificateNumber": String, // 证件号码(冗余) + "gender": , // 性别(冗余),字典 + "nation": , // 民族(冗余),字典 + "country": , // 国家(冗余),字典 + "address": , // 地区(冗余),字典 + "phoneNumber": String, // 手机号码(冗余) + "email": String // 邮箱(冗余) +} +``` + +* 同步密码 SyncPassword + +``` +{ + "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/\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" "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" new file mode 100644 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