用户数据同步之企业微信同步方案说明文档

方案说明

用户数据(包括组织机构、帐号) 同步到企业微信的流程

  1. 用户服务 中 对数据进行操作后,会将数据推送到 jobs-server 下的 rabbitmq-server

  2. jobs-server 从 rabbitmq-server 接收到消息后,将通过 ApplicationEvent 将 Event 事件,推送到 TRIGGER_EVENTS 指定的 EventJob

  3. EventJob 接收到 Event 事件后,处理相关业务逻辑

此同步方案,涉及的 Receiver 有:

  • AccountUserSvc2JobsRabbitReceiver,接收用户服务的帐号数据

  • OrganizationUserSvc2JobsRabbitReceiver,接收用户服务的组织机构数据

此同步方案,涉及的 Job 有:

  • AccountJobs2WorkWeixinEventJob,将帐号数据同步到企业微信

  • OrganizationJobs2WorkWeixinEventJob,将组织机构数据同步到企业微信

部署说明

  1. user-data-service-goa

修改 ConfigMap user-data-service-goa-env

  # 推送数据到 jobs-server 的配置
  JOBS_RABBITMQ_ENABLED: "true"
  JOBS_RABBITMQ_HOST: rabbitmq-server.jobs-server.svc.cluster.local
  JOBS_RABBITMQ_PORT: "5672"
  JOBS_RABBITMQ_USERNAME: guest
  JOBS_RABBITMQ_PASSWORD: guest

  JOBS_RABBITMQ_ACCOUNTUSERSVC2JOBSSYNCPASSWORDRABBITSENDER_ENABLED: "true"
  JOBS_RABBITMQ_ORGANIZATIONUSERSVC2JOBSRABBITSENDER_ENABLED: "true"

将 XXX_ENABLED 修改为 true

  1. jobs-server
  • 帐号数据,从消息队列接收数据

修改 ConfigMap jobs-server-accountusersvc2jobsrabbitreceiver-env

  ACCOUNTUSERSVC2JOBSRABBITRECEIVER_ENABLED: "true"
  ACCOUNTUSERSVC2JOBSRABBITRECEIVER_TRIGGER_EVENTS: ""

开启后,可接收消息队列的消息(帐号数据的变更),并将数据推送到 TRIGGER_EVENTS 指定的 job

  • 组织机构数据,从消息队列接收数据

修改 ConfigMap jobs-server-organizationusersvc2jobsrabbitreceiver-env

  ORGANIZATIONUSERSVC2JOBSRABBITRECEIVER_ENABLED: "true"
  ORGANIZATIONUSERSVC2JOBSRABBITRECEIVER_TRIGGER_EVENTS: ""

开启后,可接收消息队列的消息(组织机构数据的变更),并将数据推送到 TRIGGER_EVENTS 指定的 job

  • 帐号数据,从 消息队列 同步到 企业微信 通讯录

添加 ConfigMap jobs-server-accountJobs2WorkWeixinEventJob-env

# 密码,用户服务 - jobs
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: jobs-server
  name: jobs-server-accountJobs2WorkWeixinEventJob-env
data:
  ACCOUNT_JOBS_2_WORK_WEIXIN_EVENT_JOB_ENABLED: "true"
  ACCOUNT_JOBS_2_WORK_WEIXIN_EVENT_JOB_ORGANIZATION_QYWX_DATASOURCE_JDBC_URL: "jdbc:mysql://mysql-server.authx-service.svc.cluster.local:3306/user?serverTimezone=Asia/Shanghai"
  ACCOUNT_JOBS_2_WORK_WEIXIN_EVENT_JOB_ORGANIZATION_QYWX_DATASOURCE_USERNAME: "user"
  # 修改为实际的数据库密码
  ACCOUNT_JOBS_2_WORK_WEIXIN_EVENT_JOB_ORGANIZATION_QYWX_DATASOURCE_PASSWORD: "kingstar"

添加后, 修改 jobs-server-accountusersvc2jobsrabbitreceiver-env 下的 ACCOUNTUSERSVC2JOBSRABBITRECEIVER_TRIGGER_EVENTS ,添加 accountJobs2WorkWeixinEventJob (若多个用逗号隔开)

  • 组织机构数据,从 消息队列 同步到 企业微信 通讯录

添加 ConfigMap jobs-server-organizationJobs2WorkWeixinEventJob-env

# 密码,用户服务 - jobs
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: jobs-server
  name: jobs-server-organizationJobs2WorkWeixinEventJob-env
data:
  ORGANIZATION_JOBS_2_WORK_WEIXIN_EVENT_JOB_ENABLED: "true"
  ORGANIZATION_JOBS_2_WORK_WEIXIN_EVENT_JOB_ORGANIZATION_QYWX_DATASOURCE_JDBC_URL: "jdbc:mysql://mysql-server.authx-service.svc.cluster.local:3306/user?serverTimezone=Asia/Shanghai"
  ORGANIZATION_JOBS_2_WORK_WEIXIN_EVENT_JOB_ORGANIZATION_QYWX_DATASOURCE_USERNAME: "user"
  # 修改为实际的数据库密码
  ORGANIZATION_JOBS_2_WORK_WEIXIN_EVENT_JOB_ORGANIZATION_QYWX_DATASOURCE_PASSWORD: "kingstar"

添加后, 修改 jobs-server-organizationusersvc2jobsrabbitreceiver-env 下的 ORGANIZATIONUSERSVC2JOBSRABBITRECEIVER_TRIGGER_EVENTS ,添加 organizationJobs2WorkWeixinEventJob (若多个用逗号隔开)

  • 同步程序 Deployment jobs-server

添加 环境变量,引用其他资源

添加附加资源 ConfigMap jobs-server-accountJobs2WorkWeixinEventJob-env , ConfigMap jobs-server-organizationJobs2WorkWeixinEventJob-env

重启 同步程序