# seka **Repository Path**: sugnup/seka ## Basic Information - **Project Name**: seka - **Description**: Seka 是一款支持项目中使用了Spring @Scheduled 定时任务后,服务可多节点部署, 服务部署后,只有一个节点在运行Scheduled定时任务,其他节点不运行,如果定时任务节点宕机后,Seka 自动切换到灾备机中某一节点(切换顺序随机)。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-07-18 - **Last Updated**: 2022-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # seka #### 介绍 Seka 是一款支持项目中使用了Spring @Scheduled 定时任务后,服务可多节点部署, 服务部署后,只有一个节点在运行Scheduled定时任务,其他节点不运行,如果定时任务节点宕机后,Seka 自动切换到灾备机中某一节点(切换顺序随机)。 #### Seka特点 1. 心跳检测:定时发起心跳检测,检测集群中的服务信息 2. 节点验证:验证多节点集群中服务的运行状态,以及Scheduled 是否运行 3. 自动开启Scheduled:发现集群中如果未开启Scheduled后,自动开启Scheduled 4. Scheduled 单一节点执行:集群节点中只能有一个节点在运行Scheduled 任务 #### Seka缺点 1. 集群服务启动需顺序完成,如果间隔时间短,可能会导致心跳检测时间冲突,Scheduled会多个节点开启。 2. 基于Spring 框架,支持比较单一。 3. Scheduled 任务开启后,不能手动停止Scheduled 任务,除非关闭当前节点 #### 软件架构 软件架构说明 ![输入图片说明](https://images.gitee.com/uploads/images/2022/0722/140357_70153f8d_422202.png "屏幕截图.png") 上述所述为Seka内部模块图,主要包括: 1. HeartbeatManager 主要用于心跳检测管理,开启/关闭 2. ServiceManager 服务验证管理,主要用于验证集群节点内服务状态 3. ScheduledManager 调度任务管理,用于扫描识别@Scheduled 修饰的定时任务,并开启运行 #### 安装教程 1. Maven 导入依赖 > > com.seka.control > seka > 0.0.1-SNAPSHOT > 2. 添加配置 > #服务编号,用于识别服务,无特殊用途,字符或数字都可 > seka.application.no= > #注册地址,多节点互相检测 > #http://localhost:9866/seka/monitor,http://localhost:9867/seka/monitor > #/seka/monitor 为固定地址,多个之间逗号”,“隔开 > seka.application.registerUrl = > #心跳时间,默认5分钟,单位毫秒 1分钟 = 1*60*1000 = 60000 > seka.application.timer=300000 #### 使用说明 1. 取消@EnableScheduling 注解 启动类或者其他配置类,不能添加@EnableScheduling 注解 2. 3.2启动类入口添加 @EnableSekaControl注解 ![输入图片说明](https://images.gitee.com/uploads/images/2022/0722/140727_8064e556_422202.png "屏幕截图.png") 3. 任务类添加 @SekaDiscoveryTask注解 ![输入图片说明](https://images.gitee.com/uploads/images/2022/0722/140805_3a7f05b6_422202.png "屏幕截图.png") #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)