跳至主要內容

文档中心

zhanggong约 509 字大约 2 分钟

项目介绍

目前VIP版本迭代中。

项目架构图

项目架构图
项目架构图

代码目录

代码目录
代码目录

详细介绍

整体

opentp 分为服务端和客户端。

客户端

  1. 客户端提供了 opentp-client-spring-boot-starter 供 Springboot 项目引用,如果是其他 Java 项目可以直接引用 opentp-client 项目
  2. 客户端代码非常简单,只是启动了一个线程监控线程池,然后收集线程池的状态,进行上报到服务端,如果服务端异常或者停机等,客户端将自动停报,并隔一段时间尝试重连服务端,对整个业务 0 影响。
  3. 客户端需配置 appId 和 appKey, 可以通过 opentp 服务端申请。

服务端

  1. 服务端可集群部署可单机部署
  2. 服务端提供了基于 netty 实现的 rest 接口,供查询线程池状态和进行线程池参数修改。
  3. Opentp server 是基于 AP 架构的分布式服务器集群,部分节点故障,不会影响整个集群的服务,客户端会自动转移到其他可用服务节点。
  4. 基于原生的 Gossip 协议来保证整个集群最终一致性,无需依赖任何第三方中间件。
  5. 服务器提供报文上报权限控制,首次链接需要携带 appId 和 appKey 进行权限验证,通过后会返回 licenseKey,licenseKey 有一定的有效时间,客户端会定期申请 licenseKey,业务使用方无感知。
  6. 后续客户端上报线程池信息需要携带 licenseKey。
  7. 服务端提供用户权限控制,用户分为管理员和普通用户,管理员只是用来管理用户,普通用户仅可看到自己负责的 appId 的线程池信息。
  8. 服务端用户可以同时拥有管理员和普通用户权限(即管理员也是普通用户)。