From d5de292fa599cfd469a2c30af4680be2f134bd45 Mon Sep 17 00:00:00 2001 From: Fankux Date: Sat, 9 Apr 2022 23:56:34 +0800 Subject: [PATCH] rpm build script --- cmake/rpm.cmake | 6 ++-- conf/conf.json | 4 +-- docs/manual.md | 72 ++++++++++++++++++++--------------------- rpm/oblogproxy-build.sh | 51 +++++++++++++++++++++++++++++ src/common/config.h | 4 +-- src/test/test_conf.cpp | 4 +-- 6 files changed, 96 insertions(+), 45 deletions(-) create mode 100644 rpm/oblogproxy-build.sh diff --git a/cmake/rpm.cmake b/cmake/rpm.cmake index aec88bd..d7c1c6d 100644 --- a/cmake/rpm.cmake +++ b/cmake/rpm.cmake @@ -6,7 +6,7 @@ set(CPACK_RPM_COMPONENT_INSTALL ON) set(CPACK_RPM_MAIN_COMPONENT "oblogproxy") # let rpmbuild determine rpm filename set(CPACK_RPM_FILE_NAME "RPM-DEFAULT") -set(CPACK_RPM_PACKAGE_RELEASE 1) +set(CPACK_RPM_PACKAGE_RELEASE ${OBLOGPROXY_RELEASEID}) set(CPACK_RPM_PACKAGE_RELEASE_DIST ON) # RPM package informations. set(CPACK_PACKAGING_INSTALL_PREFIX /usr/local/oblogproxy) @@ -14,7 +14,7 @@ list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/usr/local/oblogproxy set(CPACK_PACKAGE_NAME "oblogproxy") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "oblogproxy is a clog proxy server for OceanBase CE") set(CPACK_PACKAGE_VENDOR "Ant Group CO., Ltd.") -set(CPACK_PACKAGE_VERSION 1.0.0) +set(CPACK_PACKAGE_VERSION 1.0.1) set(CPACK_PACKAGE_VERSION_MAJOR 1) set(CPACK_PACKAGE_VERSION_MINOR 0) set(CPACK_PACKAGE_VERSION_PATCH 0) @@ -61,7 +61,7 @@ set(CPACK_RPM_UTILS_POST_INSTALL_SCRIPT_FILE ${CMAKE_CURRENT_BINARY_DIR}/utils_ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/utils_postun.script "/sbin/ldconfig") set(CPACK_RPM_UTILS_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_CURRENT_BINARY_DIR}/utils_postun.script) -set(CPACK_RPM_PACKAGE_REQUIRES "devdeps-libaio >= 0.3.112, devdeps-openssl-static >= 1.0.1e, oceanbase-ce-devel >= 3.1.1") +set(CPACK_RPM_PACKAGE_REQUIRES "devdeps-libaio >= 0.3.112, devdeps-openssl-static >= 1.0.1e, oceanbase-ce-devel = 3.1.2") # install cpack to make everything work include(CPack) diff --git a/conf/conf.json b/conf/conf.json index e56a49f..781380c 100644 --- a/conf/conf.json +++ b/conf/conf.json @@ -2,8 +2,8 @@ "service_port": 2983, "encode_threadpool_size": 8, "encode_queue_size": 20000, - "max_packet_bytes": 8388608, - "record_queue_size": 1024, + "max_packet_bytes": 67108864, + "record_queue_size": 512, "read_timeout_us": 2000000, "read_fail_interval_us": 1000000, "read_wait_num": 20000, diff --git a/docs/manual.md b/docs/manual.md index 38494f4..f832223 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -162,40 +162,40 @@ bash ./run.sh start 通常,您只需要关心前文描述过的参数。对于其他参数,在不完全了解参数用途的情况下,不建议修改。 -| 字段 | 默认值 | 说明 | -| ---- | ---- | ---------- | -| service_port | 2983 | 服务端口 | -| encode_threadpool_size | 8 | 编码线程池初始化大小 | -| encode_queue_size | 20000 | 编码线程队列长度 | -| max_packet_bytes | 8388608 | 最大数据包字节数 | -| record_queue_size | 1024 | 数据发送队列长度 | -| read_timeout_us | 2000000 | 数据读取队列批次等待周期,单位微秒 | -| read_fail_interval_us | 1000000 | 数据读取队列重试等待周期,单位微秒 | -| read_wait_num | 20000 | 数据读取队列批次等待数量 | -| send_timeout_us | 2000000 | 发送数据包超时,单位微秒 | -| send_fail_interval_us | 1000000 | 发送数据包失败重试等待周期,单位微秒 | -| command_timeout_s | 10 | 命令执行超时,单位微妙 | -| log_quota_size_mb | 5120 | 日志文件总大小阈值,单位MB | -| log_quota_day | 30 | 日志文件存储时间阈值,单位天 | -| log_gc_interval_s | 43200 | 日志文件清理周期,单位秒 | +| 字段 | 默认值 | 说明 | +| ---- |----------| ---------- | +| service_port | 2983 | 服务端口 | +| encode_threadpool_size | 8 | 编码线程池初始化大小 | +| encode_queue_size | 20000 | 编码线程队列长度 | +| max_packet_bytes | 67108864 | 最大数据包字节数 | +| record_queue_size | 512 | 数据发送队列长度 | +| read_timeout_us | 2000000 | 数据读取队列批次等待周期,单位微秒 | +| read_fail_interval_us | 1000000 | 数据读取队列重试等待周期,单位微秒 | +| read_wait_num | 20000 | 数据读取队列批次等待数量 | +| send_timeout_us | 2000000 | 发送数据包超时,单位微秒 | +| send_fail_interval_us | 1000000 | 发送数据包失败重试等待周期,单位微秒 | +| command_timeout_s | 10 | 命令执行超时,单位微妙 | +| log_quota_size_mb | 5120 | 日志文件总大小阈值,单位MB | +| log_quota_day | 30 | 日志文件存储时间阈值,单位天 | +| log_gc_interval_s | 43200 | 日志文件清理周期,单位秒 | | oblogreader_path_retain_hour | 168 | oblogreader子进程目录保留时间,单位小时 | -| oblogreader_lease_s | 300 | oblogreader子进程启动探测时间,单位秒 | -| oblogreader_path | ./run | oblogreader子进程上下文目录根路径 | -| allow_all_tenant | true | 是否允许订阅所有租户 | -| auth_user | true | 是否鉴权连接用户 | -| auth_use_rs | false | 是否通过root server鉴权用户 | -| auth_allow_sys_user | true | 是否允许订阅系统租户 | -| ob_sys_username | "" | 【必须自行配置】系统租户用户名密文,用来订阅增量 | -| ob_sys_password | "" | 【必须自行配置】系统租户密码密文,用来订阅增量 | -| counter_interval_s | 2 | 计数器周期,单位秒 | -| debug | false | 打印debug信息 | -| verbose | false | 打印更多debug信息 | -| verbose_packet | false | 打印数据包信息 | -| readonly | false | 只读模式 | -| channel_type | plain | 链路类型 | -| tls_ca_cert_file | "" | CA证书文件路径(绝对路径) | -| tls_cert_file | "" | 服务器端签名证书路径(绝对路径) | -| tls_key_file | "" | 服务器端的私钥路径(绝对路径) | -| tls_verify_peer | true | 开启oblogclient验证 | -| liboblog_tls | false | 开启与ObServer通信的TLS | -| liboblog_tls_cert_path | "" | ObServer相关证书文件路径(绝对路径)| +| oblogreader_lease_s | 300 | oblogreader子进程启动探测时间,单位秒 | +| oblogreader_path | ./run | oblogreader子进程上下文目录根路径 | +| allow_all_tenant | true | 是否允许订阅所有租户 | +| auth_user | true | 是否鉴权连接用户 | +| auth_use_rs | false | 是否通过root server鉴权用户 | +| auth_allow_sys_user | true | 是否允许订阅系统租户 | +| ob_sys_username | "" | 【必须自行配置】系统租户用户名密文,用来订阅增量 | +| ob_sys_password | "" | 【必须自行配置】系统租户密码密文,用来订阅增量 | +| counter_interval_s | 2 | 计数器周期,单位秒 | +| debug | false | 打印debug信息 | +| verbose | false | 打印更多debug信息 | +| verbose_packet | false | 打印数据包信息 | +| readonly | false | 只读模式 | +| channel_type | plain | 链路类型 | +| tls_ca_cert_file | "" | CA证书文件路径(绝对路径) | +| tls_cert_file | "" | 服务器端签名证书路径(绝对路径) | +| tls_key_file | "" | 服务器端的私钥路径(绝对路径) | +| tls_verify_peer | true | 开启oblogclient验证 | +| liboblog_tls | false | 开启与ObServer通信的TLS | +| liboblog_tls_cert_path | "" | ObServer相关证书文件路径(绝对路径)| diff --git a/rpm/oblogproxy-build.sh b/rpm/oblogproxy-build.sh new file mode 100644 index 0000000..cb1e456 --- /dev/null +++ b/rpm/oblogproxy-build.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +CUR_DIR=$(dirname $(readlink -f "$0")) +PROJECT_DIR=${1:-${CUR_DIR}/../} +PROJECT_NAME=$2 +VERSION=$3 +RELEASE=$4 +CPU_CORES=`grep -c ^processor /proc/cpuinfo` +echo "[BUILD] args: CURDIR=${CUR_DIR} PROJECT_NAME=${PROJECT_NAME} VERSION=${VERSION} RELEASE=${RELEASE}" + +# inject env variables +export PROJECT_NAME=${PROJECT_NAME} +export VERSION=${VERSION} +export RELEASE=${RELEASE} + +# prepare building env +cd $CUR_DIR +DEP_DIR=$CUR_DIR/deps +mkdir -p $DEP_DIR +OS_ARCH=$(uname -m) +OS_RELEASE=$(grep -Po '(?<=release )\d' /etc/redhat-release) +OS_TAG=${OS_ARCH}/${OS_RELEASE} + +CMAKE_COMMAND=cmake +case $OS_TAG in + x86_64/7) + wget https://mirrors.aliyun.com/oceanbase/development-kit/el/7/x86_64/obdevtools-cmake-3.20.2-3.el7.x86_64.rpm -P $DEP_DIR + rpm2cpio ${DEP_DIR}/obdevtools-cmake-3.20.2-3.el7.x86_64.rpm | cpio -idvm + CMAKE_COMMAND=${CUR_DIR}/usr/local/oceanbase/devtools/bin/cmake + ;; + x86_64/8) + wget https://mirrors.aliyun.com/oceanbase/development-kit/el/8/x86_64/obdevtools-cmake-3.20.2-3.el8.x86_64.rpm -P $DEP_DIR + rpm2cpio ${DEP_DIR}/obdevtools-cmake-3.20.2-3.el8.x86_64.rpm | cpio -idvm + CMAKE_COMMAND=${CUR_DIR}/usr/local/oceanbase/devtools/bin/cmake + ;; + **) + echo "Unsupported os arch, please prepare the building environment in advance." + ;; +esac + +# build rpm +cd $PROJECT_DIR +rm -rf build_rpm +mkdir build_rpm +cd build_rpm +${CMAKE_COMMAND} .. -DOBLOGPROXY_RELEASEID=$RELEASE +make -j${CPU_CORES} rpm + +# archiving artifacts +cd $CUR_DIR +find ${PROJECT_DIR}/build_rpm -name "*.rpm" -maxdepth 1 -exec mv {} . 2>/dev/null \; \ No newline at end of file diff --git a/src/common/config.h b/src/common/config.h index 27bd72e..4fc3cab 100644 --- a/src/common/config.h +++ b/src/common/config.h @@ -43,10 +43,10 @@ public: OMS_CONFIG_UINT16(service_port, 2983); OMS_CONFIG_UINT32(encode_threadpool_size, 8); OMS_CONFIG_UINT32(encode_queue_size, 50000); - OMS_CONFIG_UINT32(max_packet_bytes, 1024 * 1024 * 8); // 8MB + OMS_CONFIG_UINT32(max_packet_bytes, 1024 * 1024 * 64); // 64MB OMS_CONFIG_UINT32(command_timeout_s, 10); - OMS_CONFIG_UINT32(record_queue_size, 1024); + OMS_CONFIG_UINT32(record_queue_size, 512); OMS_CONFIG_UINT64(read_timeout_us, 2000000); OMS_CONFIG_UINT64(read_fail_interval_us, 1000000); OMS_CONFIG_UINT32(read_wait_num, 20000); diff --git a/src/test/test_conf.cpp b/src/test/test_conf.cpp index 1d09594..cfff857 100644 --- a/src/test/test_conf.cpp +++ b/src/test/test_conf.cpp @@ -23,8 +23,8 @@ TEST(Config, load) "service_port": 2983, "encode_threadpool_size": 8, "encode_queue_size": 20000, - "max_packet_bytes": 8388608, - "record_queue_size": 1024, + "max_packet_bytes": 67108864, + "record_queue_size": 512, "read_timeout_us": 2000000, "read_fail_interval_us": 1000000, "read_wait_num": 20000, -- GitLab