如何管理多个独立的java程序
背景:
有多个相互独立的java程序,各个java程序都不复杂,也不需要对外提供服务,根据需要分别部署在不同的服务器上,例如读取kafka并入库,定时读取db表中数据并简单处理等等。服务器大部分是linux,也可能包含windows等。那么如何方便高效的管理这么多的java程序呢?
暂时想到的需求点:
1,【重要】有统一、便捷的方法来获取程序所在服务器的IP,运行状态(是否挂掉、hang住等)等;
2,【重要】方便、优雅的启停程序,尽量是有序可控的关闭,而不是暴力的kill进程。
3,【可选】java程序所在服务器的CPU/内存/磁盘资源等,
目前想到的几个解决方案:
1.每个java程序都定期更新DB的一条数据,或者写入到zookeeper中,类似心跳信号,然后一个独立的进程去监控和告警。
2.注册到微服务平台,但考虑到这些独立java程序其实并未对外提供服务,不知是否合适。
特此向大家请教。