Awesome
ZMS
什么是ZMS ?
ZMS是ZTO Message Service的缩写,使用方与集群解耦,屏蔽各消息集群差异,并对消息集群进行安装、管理、监控、告警管理的平台。
ZMS能做什么 ?
客户端快速接入
- 屏蔽消息接入方使用不同类型集群之间的差异(zms-client)
- 加密消息(待开源)
- 灰度消息(待开源)
- 消息轨迹(待开源)
自动化运维
- 集群一键安装、可视化运维
- 集群资源自定义告警
- 动态集群、主题、消费组迁移,客户端无感知
监控
- 接入客户端发送、消费指标实时监控
- 集群节点监控检测、指标监控
告警
- 支持自定义告警:tps、消费延迟、最后消费时间
快速启动
通过安装包快速启动,免去编译、打包步骤
安装包在710M左右,里面包含可以通过ZMS自动安装的第三方安装包
依赖:jdk1.8+ mysql 5.6+
GitHub下载地址:安装包
-
创建数据库
解压安装包,将初始化脚本导入到mysql数据库
例如连接msql客户端,通过原生命令导入 ${project.dir}:项目根目录
> source ${project.dir}/sql/zmsdb.sql
-
修改ZMS启动配置
${project.dir}/conf/application.properties
spring.datasource.url = jdbc:mysql://${you.mysql.host:port}/zms?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai spring.datasource.username = ${username} spring.datasource.password = ${password} zms.portal.url=http://${portal.host:port}
以下参数需要替换成自己的配置
${you.mysql.host:port}:mysql数据库地址:端口
${username}:mysql user
${password}:mysql password
${portal.host:port}:ZMS管理后台启动地址,其他服务通过这个地址与ZMS管理后台进行交互(ZMS后台安装的真实ip、端,或域名映射)。如果 zms.portal.url 配置为空,默认取ZMS管理后台进程服务器的网卡地址
-
启动ZMS管理后台
> ${project.dir}bin/server.sh start
-
当显示下面的日志,说明启动成功
server.port:8088 logging.path:/data/logs/zms-portal Start success,pid:[12866]
-
访问服务
账号/密码:admin/admin
通过源码手动打包安装
依赖:jdk1.8+ nodejs 9-12 maven 3+
-
下载源码
git clone https://github.com/ZTO-Express/zms.git checkout 最新版本tag
-
下载第三方软件安装包(可选)
如果跳过此步骤,ZMS添加主机时,主机必须有JDK环境,并且有外部网络访问权限
为了提升主机初始化速度,我们可以将主机需要安装软件包提前下载到ZMS管理后台的软件包目录,在主机进行初始化下载软件包时,直接通从ZMS的本地文件目录直接下载。
-
下载地址:
-
解压文件:
将压缩包解压到 ${project.dir}/distribution/lib/
-
-
进入项目根目录,初始化库
设置数据库地址:${project.dir}/distribution/pom.xml
<driver>com.mysql.jdbc.Driver</driver> <url>jdbc:mysql://${you.mysql.host:port}</url> <username>${username}</username> <password>${password}</password>
${project.dir}/zms-portal/src/main/resources/application.properties
spring.datasource.url = jdbc:mysql://${you.mysql.host:port}/zms?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai spring.datasource.username = ${username} spring.datasource.password = ${password} zms.portal.url=http://${portal.host:port}
${you.mysql.host:port}:mysql数据库地址:端口
${username}:mysql user
${password}:mysql password
${portal.host:port}:ZMS管理后台启动地址,其他服务通过这个地址与ZMS管理后台进行交互(ZMS后台安装的真实ip、端,或域名映射)。如果 zms.portal.url 配置为空,默认取ZMS管理后台进程服务器的网卡地址
初始化库命令,进入目录:${project.dir}/distribution(只需初始化一次)
mvn sql:execute
-
项目根目录打包
生成压缩包: distribution/target/zms-assembly-${project.version}.tar.gz
> mvn clean install -DskipTests
如果需要刷新前端静态资源,执行如下命令 在打包命令后新增:-P npm-build
-
解压压缩包
> tar -zxvf zms-assembly-${project.version}.tar.gz
-
启动服务
> cd zms-assembly-${project.version} > bin/server.sh start
-
当显示下面的日志,说明启动成功
server.port:8088 logging.path:/data/logs/zms-portal Start success,pid:[12866]
-
访问服务
账号/密码:admin/admin
使用文档
-
zms管理后台使用文档
-
zms客户端接入文档
-
zms设计文档