1 概述

数据开发平台目前相关的微服务主要包括:平台微服务、离线开发微服务、实时同步微服务、调度微服务、数据服务微服务。

平台微服务主要负责知识项的增、删、改、查等功能;
离线开发微服务主要负责离线数据同步、数据转换的执行;
实时同步微服务主要负责监控数据库实时数据变化并进行数据同步;
调度微服务主要负责调度计划的管理及调度执行;
数据服务微服务主要负责提供数据访问API定义及执行;

2 微服务配置

2.1 平台微服务(lczPlatformServer)

1) 配置知识库相关信息
修改 lczPlatformServer\conf\server.config 文件,配置知识库的类型、地址、端口等信息。

本微服务中的server.config暂不支持界面配置,可从lczServer/conf目录下复制过来。

2) 配置yml文件
配置lczPlatformServer\application.yml 文件:

#当前微服务信息
server:
  #平台微服务访问端口
  port: 8081
  servlet:
    #与乐创者服务应用名保持一致
    context-path: /lczServer

  tomcat:
    threads:
      #最小线程数
      min-spare: 10
      #最大线程数
      max: 500
      #等待最大队列长度
    accept-count: 1000
    #最大链接数
    max-connections: 2000

spring:
  application:
    name: lczPlatform
  mvc:
    throw-exception-if-no-handler-found: true

logging:
  config: classpath:conf/log4j2.xml

feign:
  httpclient:
    #客户端请求连接池
    enabled: true
    max-connections: 100
    connection-timeout: 1000
    time-to-live: 10
    time-to-live-unit: minutes

  lcz_server:
    #离线开发微服务
    batch_work:
      name: lczBatchWork
      url: http://127.0.0.1:8081/lczServer

#熔断配置
hystrix:
  command:
    execution:
      #熔断超时时间(ms)
      timeoutInMilliseconds: 2000
      isolation:
        strategy: THREAD
  threadPool:
    coreSize: 20
    maxQueueSize: 200
    maximumSize: 200
    keepAliveTimeMinutes: 6

一般只需要进行以下配置:
(1) 修改 feign->lcz_server 下各微服务的 url 访问地址。
   url的配置规则:直接配置代理的nginx访问地址即可,格式: http(https)://nginx地址:端口/平台应用名;
(2) 修改应用上下文路径(可选):默认为lczServer,如果访问地址中需要重命名,那么 server-> servlet -> context-pathfeign->lcz_server -> url 中都需要一致性修改。同时,nginx.conf文件中也做对应调整。
(3) 调整微服务端口(可选):如果默认的微服务端口已经被占用,可用过 server->port 属性进行调整。

2.2 离线开发微服务(lczBatchWorkServer)

1) 配置yml文件
配置lczBatchWorkServer\application.yml 文件:

#当前微服务信息
server:
  #离线开发微服务访问端口
  port: 14685
  servlet:
    #与乐创者服务应用名保持一致
    context-path: /lczServer

  tomcat:
    threads:
      #最小线程数
      min-spare: 10
      #最大线程数
      max: 500
      #等待最大队列长度
    accept-count: 1000
    #最大链接数
    max-connections: 2000

spring:
  application:
    name: lczBatchWork
  servlet:
    multipart:
      enabled: true
      max-file-size: 100MB
      max-request-size: 100MB
  mvc:
    throw-exception-if-no-handler-found: true

logging:
  config: classpath:conf/log4j2.xml

feign:
  httpclient:
    #客户端请求连接池
    enabled: true
    max-connections: 100
    connection-timeout: 1000
    time-to-live: 10
    time-to-live-unit: minutes
  lcz_server:
    platform:
      name: lczPlatform
      url: http://127.0.0.1:8081/lczServer

#熔断配置
hystrix:
  command:
    execution:
      timeoutInMilliseconds: 2000    #熔断超时时间
      isolation:
        strategy: THREAD
  threadPool:
    coreSize: 20
    maxQueueSize: 200
    maximumSize: 200
    keepAliveTimeMinutes: 6

# datax job config
datax:
  job:
    setting:
      speed:
        channel: 5 # channel并发数
        #record:  # 全局配置channel的record限速 ,最终的单个channel的限速 = 全局配置channel的record限速 / channel并发数
        byte: 1048576  #全局配置 channel 的 byte 限速,最终的单个channel的限速 = 全局配置channel的byte限速 / channel并发数

# python 环境配置
python:
  # 执行命令,默认环境变量windows-python、linux-python3
  #自定义说明:
  #1)Linux 示例
  #cmd=/home/python/bin/python3
  #2)Windows 示例
  #cmd=E:\\Python3x\\python.exe
  #注:Windows 中路径为双反斜杠 \\ 。
  #cmd: python

spark:
  executor:
    memory: 2g # 执行器分配2g

lcz:
  localCache:
    open: true
    timeToIdle: 200     #单位为秒
    timeToLive: 0
    memory:
      type: T1_16       #占用内存最大百分比  现在是16分之一  T1_3,T1_4,T1_5,T1_6,T1_8,T1_10,T1_16
    disk:
      path: ./localcache
      maxBytes: 20480           #占用硬盘最大容量   单位MB

一般只需要进行以下配置:
(1) 修改 feign->lcz_server 下各微服务的 url 访问地址。
  url的配置规则:直接配置代理的nginx访问地址即可,格式: http(https)://nginx地址:端口/平台应用名;

(2) 修改应用上下文路径(可选):默认为lczServer,如果访问地址中需要重命名,那么 server-> servlet -> context-pathfeign->lcz_server -> url 中都需要一致性修改。同时,nginx.conf文件中也做对应调整。

(3) 调整微服务端口(可选):如果默认的微服务端口已经被占用,可用过 server->port 属性进行调整。

(4) 分配spark内存(可选):默认2GB,如果通过SparkSQL处理的数据量比较大,需要做适当调大,大致推荐如下:
  2g: 一次性处理数据量在10列100万行左右。
  4g: 一次性处理数据量在10列200万行左右。
  8g: 一次性处理数据量在10列500万行左右。

(5) python环境配置(可选):默认按照对应操作系统命令执行,如果系统未配置命令或命令名称不是规范的,则可用过 python-> cmd 进行个性化配置

2.3 实时同步微服务(lczStreamWorkServer)

1) 配置yml文件
配置lczStreamWorkServer\application.yml 文件:

#当前微服务信息
server:
  #实时同步微服务访问端口
  port: 14686
  servlet:
    #与乐创者服务应用名保持一致
    context-path: /lczServer
  #Tomcat
  tomcat:
    threads:
      #最小线程数
      min-spare: 10
      #最大线程数
      max: 500
      #等待最大队列长度
    accept-count: 1000
    #最大链接数
    max-connections: 2000

spring:
  application:
    name: lczStreamWork
  servlet:
    multipart:
      enabled: true
      max-file-size: 100MB
      max-request-size: 100MB
  mvc:
    throw-exception-if-no-handler-found: true

logging:
  config: classpath:conf/log4j2.xml

feign:
  client:
    config:
      default:
        readTimeout: 1800000
  httpclient:
    enabled: true
    max-connections: 100
    connection-timeout: 1000
    time-to-live: 10
    time-to-live-unit: minutes
  lcz_log: false
  lcz_server:
    platform:
      name: lczPlatform
      url: http://127.0.0.1:8081/lczServer

#熔断配置
hystrix:
  command:
    execution:
      timeoutInMilliseconds: 2000    #熔断超时时间
      isolation:
        strategy: THREAD
  threadPool:
    coreSize: 20
    maxQueueSize: 200
    maximumSize: 200
    keepAliveTimeMinutes: 6

lcz:
  localCache:
    open: true
    timeToIdle: 200     #单位为秒
    timeToLive: 0
    memory:
      type: T1_16       #占用内存最大百分比  现在是16分之一  T1_3,T1_4,T1_5,T1_6,T1_8,T1_10,T1_16
    disk:
      path: ./localcache
      maxBytes: 20480           #占用硬盘最大容量   单位MB

flink:
  rpc:
    platformUrl: http://127.0.0.1:8081/lczServer
    streamWorkUrl: http://127.0.0.1:14686/lczServer
  rest:
    host: 127.0.0.1 # rest 主机地址
    port: 8091 # rest 端口
  runMode: 1 # 运行环境 1:本地 2:远程
  checkpoint: # 检查点
    checkpointInterval: 60000 #检查点间隔 单位:ms
    maxConcurrentCheckpoints: 1 #最大并发数
    checkpointTimeout: 60000 #检查点超时时间,单位:ms
    checkpointStorage: file:///${user.dir}/checkpoint # 检查点保存路径,可以是本地文件路径,HDFS路径等
    savepointStorage: file:///${user.dir}/savepoint # 保存点路径,可以是本地文件路径,HDFS路径等

一般只需要进行以下配置:
(1) 修改 feign->lcz_server 下各微服务的 url 访问地址。
  url的配置规则:直接配置代理的nginx访问地址即可,格式: http(https)://nginx地址:端口/平台应用名;

(2) 修改应用上下文路径(可选):默认为lczServer,如果访问地址中需要重命名,那么 server-> servlet -> context-pathfeign->lcz_server -> url 中都需要一致性修改。同时,nginx.conf文件中也做对应调整。

(3) 调整微服务端口(可选):如果默认的微服务端口已经被占用,可用过 server->port 属性进行调整。

(4) flink访问乐创者服务的配置(可选):通过flink->rpc配置平台微服务和实时同步微服务的访问url

(5) 实时同步微服务启动flink任务的配置(可选):通过flink->rest配置主机地址和端口

2.4 调度微服务(lczScheduleServer)

1) 配置yml文件
配置lczScheduleServer\application.yml 文件:

#当前微服务信息
server:
  #调度微服务接口
  port: 14683
  servlet:
    context-path: /lczServer

  tomcat:
    threads:
      #最小线程数
      min-spare: 10
      #最大线程数
      max: 500
      #等待最大队列长度
    accept-count: 1000
    #最大链接数
    max-connections: 2000

spring:
  application:
    name: lczSchedule
  mvc:
    throw-exception-if-no-handler-found: true
logging:
  config: classpath:conf/log4j2.xml

feign:
  httpclient:
    enabled: true
    max-connections: 100
    connection-timeout: 1000
    time-to-live: 10
    time-to-live-unit: minutes
  lcz_server:
    platform:
      name: lczPlatform
      url: http://127.0.0.1:8081/lczServer
    batch_work_engine:
      name: lczBatchWorkEngine
      url: http://127.0.0.1:14685/lczServer

#熔断配置
hystrix:
  command:
    execution:
      timeoutInMilliseconds: 2000    #熔断超时时间
      isolation:
        strategy: THREAD
  threadPool:
    coreSize: 20
    maxQueueSize: 200
    maximumSize: 200
    keepAliveTimeMinutes: 6

一般只需要进行以下配置:
(1) 修改 feign->lcz_server 下各微服务的 url 访问地址。
  url的配置规则:直接配置代理的nginx访问地址即可,格式: http(https)://nginx地址:端口/平台应用名;

(2) 修改应用上下文路径(可选):默认为lczServer,如果访问地址中需要重命名,那么 server-> servlet -> context-pathfeign->lcz_server -> url 中都需要一致性修改。同时,nginx.conf文件中也做对应调整。

(3) 调整微服务端口(可选):如果默认的微服务端口已经被占用,可用过 server->port 属性进行调整。

【警告】yml文件修改时,不要随意调整对象和属性的缩进格式,否则文件配置读取会失败。

2.5 数据服务微服务(lczDataProvideServer)

1) 配置yml文件
lczDataProvideServer\application.yml 文件:

#当前微服务信息
server:
  #调度微服务接口
  port: 14684
  servlet:
    context-path: /lczServer

  tomcat:
    threads:
      #最小线程数
      min-spare: 10
      #最大线程数
      max: 500
      #等待最大队列长度
    accept-count: 1000
    #最大链接数
    max-connections: 2000

spring:
  application:
    name: lczDataProvide
  mvc:
    throw-exception-if-no-handler-found: true
logging:
  config: classpath:conf/log4j2.xml

feign:
  httpclient:
    enabled: true
    max-connections: 100
    connection-timeout: 1000
    time-to-live: 10
    time-to-live-unit: minutes
  lcz_server:
    platform:
      name: lczPlatform
      url: http://127.0.0.1:8081/lczServer

#熔断配置
hystrix:
  command:
    execution:
      timeoutInMilliseconds: 2000    #熔断超时时间
      isolation:
        strategy: THREAD
  threadPool:
    coreSize: 50
    maxQueueSize: 300
    maximumSize: 300
    queueSizeRejectionThreshold: 200
    keepAliveTimeMinutes: 6

一般只需要进行以下配置:
(1) 修改 feign->lcz_server 下各微服务的 url 访问地址。
  url的配置规则:直接配置代理的nginx访问地址即可,格式: http(https)://nginx地址:端口/平台应用名;

(2) 修改应用上下文路径(可选):默认为lczServer,如果访问地址中需要重命名,那么 server-> servlet -> context-pathfeign->lcz_server -> url 中都需要一致性修改。同时,nginx.conf文件中也做对应调整。

(3) 调整微服务端口(可选):如果默认的微服务端口已经被占用,可用过 server->port 属性进行调整。

【警告】yml文件修改时,不要随意调整对象和属性的缩进格式,否则文件配置读取会失败。

3 启动微服务

五个微服务的启动顺序依次为:

平台微服务 –> 离线开发微服务 –> 调度微服务
平台微服务 –> 数据服务微服务
平台微服务 –> 实时同步微服务

需要等待前一个微服务启动成功后,再启动后一个微服务。

3.1 windows

双击执行lczPlatformServer/startup.bat、lczBatchWorkServer/startup.bat、lczScheduleServer/startup.bat、lczDataProvideServer/startup.bat、lczDataProvideServer/startup.bat、lczStreamWorkServer/startup.bat可分别启动平台微服务、离线开发微服务、调度微服务、数据服务微服务、实时同步微服务等。

【小提示】如果并发处理的任务多、数据转换的数据量比较大需要适当调大lczBatchWorkEServer/startup.bat中的 -Xmx4096m
-Xmx的值一般建议设置为1024的倍数

3.2 linux

命令窗口中分别进入lczPlatformServer、lczBatchWorkServer、lczScheduleServer、lczDataProvideServer、lczStreamWorkServer目录,执行“./startup.sh”即可分别启动微服务,如下图所示:

1、启动时如果报权限错误,可以先执行: chmod 777 ./*
2、如果要修改startup.sh中的配置,可通过 vim进行修改,不能在windows中通过编辑器修改。

服务启动完成后,可以通过以下命令查看微服务的启动状态:

ps -ef|grep java

作者:柳杨  创建时间:2024-06-29 13:33
最后编辑:柳杨  更新时间:2025-04-22 15:31