宜信于2019年3月29日正式开源nextsystem4(如下简称“NS4”)系列模块。git
这次开源的NS4系列模块是围绕当前支付系统笨重、代码耦合度高、维护成本高而产生的分布式业务系统解决方案。NS4系列框架容许建立复杂的流程/业务流,对于业务服务节点的实现可串联,可分布式。其精简、轻量,实现了“脱容器”(不依赖tomcat、jetty等容器)独立运行。NS4系列框架的设计理念是将业务和逻辑进行分离,开发人员只需经过简单的配置和业务实现就能够实现逻辑复杂、性能高效、功能稳定的业务系统。github
NS4系列包括4个开源模块,分别是:ns4_frame 分布式服务框架、ns4_gear_idgen ID 生成器组件(NS4框架Demo示例)、ns4_gear_watchdog 监控系统组件(服务守护、应用性能监控、数据采集、自动化报警系统)和ns4_chatbot通信组件。web
NS4系列模块的核心优点主要体如今如下几个方面:redis
项目开源地址:https://github.com/newsettle数据库
开源地址:https://github.com/newsettle/...缓存
ns4_frame是一个高性能优秀的分布式服务框架,容许建立复杂的流程/业务流,对于业务服务节点的实现可串联,可分布式。其精简、轻量,实现了“脱容器”(不依赖tomcat、jetty等容器)独立运行。ns4_frame将业务和逻辑进行分离,开发人员只需经过简单的配置和业务实现就能够实现逻辑复杂、性能高效、功能稳定的业务系统。tomcat
ns4_frame是一套MAVEN父子项目,由五个子项目组成:微信
上图展现了NS4每一个系统的层次结构。架构
NS4整套系统本质上其实就是一套消息中间件服务加开发框架,总体的结构图以下: 框架
上图展现了一个NS4总体分布式项目的运行流程。一个消息的运转流程按以下顺序:
开源地址:https://github.com/newsettle/...
ns4_gear_idgen (ID生成器)是基于NS4框架实现的,它支持分布式部署,生成全局惟一的 ID,其中长度、前缀、后缀、步长、进制也可根据本身的业务自由配置,还能够经过ns4_gear_idgen对NS4.0框架进行测试。
开源地址:https://github.com/newsettle/...
ns4_gear_watchdog是ns4_frame进程的父进程,守护并管理ns4_frame进程。它的职责包括如下几个方面:
ns4_gear_watchdog是做为父进程存在的,经过父进程启动目标项目(子进程),并针对子进程应用生存的环境因素(包括系统层面的内存消耗、CPU 使用、负载、线程等)、实现功能的代码因素(代码健康程度)、业务因素等数据进行实时监控。父子进程经过 jmx 方式进行通信,采集以上因素数据,并将这些数据保存到 ElasticSearch 中,进一步经过分析数据和现实运行状况总结制定出的指标相结合,将该以上因素数据经过微信机器人实时通知提醒相关负责人。
[ns4_gear_watchdog基本结构图]
开源地址:https://github.com/newsettle/...
ns4_chatbot是一个机器人的聊天框架,集成了qqbot、WxChat、rasa以及web服务。ns4_chatbot提供微信和qq聊天接口,能够对某个群组发送系统监控消息等,还能够把ns4_gear_watchdog监控信息发送到对应的群组中。
ns4_chatbot实现的功能:
接受内部系统(如监控系统)的系统调用,从而把消息推送给 QQ 或者微信用户。内部系统调用服务时,须要提供如下信息:
宜信一直践行以科技推进金融发展的技术信念,并愿意将技术实践成果开源分享,以期经过宜信的实践经验推进金融科技行业的发展和创新。 目前,宜信技术学院已开源了多个宜信的技术成果与研发实践,面向软件研发行业分享宜信的技术理念,本次NS4系列模块的开源将保持长期更新和维护,也但愿有更多的技术伙伴加入到开源项目中,共同维护与发展开源成果。
内容来源:宜信技术学院