本文档相关对接,须:
依赖 用户服务 user-data-service,1.2.7-RELEASE 及以上版本
依赖 authx-service 下的 rabbitmq-server
user-data-service-goa,须开启「推送数据到 jobs-server」
数据格式为字符串
内容为 json 格式,可以转换为 json 对象进行使用
{ "id": String, // ID "code": String, // 字典类型代码 "name": String, // 字典类型名称 "enable": Boolean, // 是否启用 "sort": Long // 排序 }
{ "id": String, // ID "dictionaryType": <ref DictionaryType>, // 字典类型 "code": String, // 字典代码 "name": String, // 字典名称 "parentDictionary": <ref Dictionary>, // 父字典 "enable": Boolean, // 是否启用 "sort": Long // 排序 }
{ "id": String, // ID "code": String, // 身份类型代码 "name": String, // 身份类型名称 "parentIdentityType": <ref IdentityType>, // 父身份类型 "enable": Boolean, // 是否启用 "sort": Long // 排序 }
{ "id": String, // ID "code": String, // 组织机构代码 "name": String, // 组织机构名称 "description": String, // 组织机构描述 "type": <ref Dictionary>, // 组织机构部门类型 "isRootOrganization": Boolean, // 是否根组织机构 "rootOrganizationId": String, // 所属的根组织机构 "parentOrganization": <ref Organization>, // 所属的父级组织机构 "enable": Boolean, // 是否启用 "sort": Long // 排序 }
{ "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 // 个人照片地址 }
{ "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 // 邮箱(冗余) }
{ "account": <ref Account>, // 帐号 "password": String // 密码(明文) }
{ "id": String, // ID "code": String, // 用户组代码 "name": String, // 用户组名称 "description": String, // 用户组描述 "type": String, // 类型,1 普通用户组,2 岗位用户组 "category": <ref Dictionary>, // 类别,字典 "state": Integer, // 状态,1:启用,0:禁用 "sort": Integer, // 排序 "common": Boolean, // 是否公共 "applicationId": String // 所属应用 }
{ "account": <ref Account>, // 帐号 "group": <ref Group>, // 用户组 }
host: rabbitmq-server.authx-service.svc.cluster.local port: 5672 username: guest password: guest
注:host 地址视具体部署情况确定,一般使用上述 k8s 集群内地址即可
模式:发布/订阅,fanout
详见:https://www.rabbitmq.com/tutorials/tutorial-three-java.html
业务说明:
用户服务作为数据发布者,会将 组织机构、帐号、密码等数据的变更事件,以消息的方式 发布到 RabbitMQ 中
数据消费方,只须订阅这些消息,将 交换机 与 队列 进行绑定,然后进行监听,接收数据进行处理即可。
交换机名称,jobs.fanout.exchange.identityType-userSvc-2-jobs-save
数据,身份类型 IdentityType
可依据 code 身份类型代码,作为唯一标识,用于判定数据是否在目标应用存在
交换机名称,jobs.fanout.exchange.identityType-userSvc-2-jobs-delete
数据,身份类型 IdentityType
交换机名称,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
可将明文密码同步到第三方应用
交换机名称,jobs.fanout.exchange.group-userSvc-2-jobs-save
数据,用户组 Group
可依据 code 用户组代码,作为唯一标识,用于判定数据是否在目标应用存在
交换机名称,jobs.fanout.exchange.group-userSvc-2-jobs-delete
数据,用户组 Group
交换机名称,jobs.fanout.exchange.account-group-userSvc-2-jobs-add
数据,帐号用户组关系 AccountGroup
交换机名称,jobs.fanout.exchange.account-group-userSvc-2-jobs-del
数据,帐号用户组关系 AccountGroup