# InterBankPlus **Repository Path**: ludlee/InterBankPlus ## Basic Information - **Project Name**: InterBankPlus - **Description**: 分布式银行联机交易服务总线 - **Primary Language**: Unknown - **License**: LGPL-2.1 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2017-02-27 - **Last Updated**: 2022-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1 概述 1.1 简介 InterBankPlus (下简称IBP)是一个通用的分布式联机服务框架,研发初衷来自于2010年我研发的IB2的分布式改造需求。2016年11月经过一个多月的研发,发布第一版原型。 IBP借鉴了SOA、微服务、ESB等架构理念,根据银行系统特点做适应性改造,充分考虑集群高伸缩性、高可靠容错性、实时低延迟、通讯配置统一管理、自动下发应用包热部署热更新,特别适合联机服务的分布式技术架构。 IBP核心完全用C编写,手工代码约2万行。此外大量使用代码自动化生成技术,减轻了底层细节编码压力。 1.2 体系结构 IBP体系结构包含基础平台架构、服务API包和分布式服务调度引擎。 基础平台架构包含两类节点:注册节点和服务节点。 注册节点:负责统一管理、下发应用配置、应用包,接受处理服务节点订阅配置、服务变动通知。 服务节点:由注册代理、通讯服务端和通讯客户端组成。 注册代理负责与注册节点保持长连接,实时获取最新通讯配置、应用包,构造、维护本地配置副本共享内存。 通讯服务端由管理进程和工作进程池组成。管理进程负责打开注册代理构造出来的配置副本共享内存,负责监控工作进程池,并与注册节点建立心跳。工作进程负责具体服务处理。 通讯客户端通过客户端通讯API发起联机服务。客户端通讯API打开注册代理构造出来的配置副本共享内存以查询服务发送目标主机。 服务API包由注册代理API、客户端API、服务端API组成,实现本地配置副本查询等,实现客户端的服务请求发起,实现服务端当前服务信息查询。 分布式服务调度引擎封装了基础平台架构提供的通讯客户端API分派功能,实现了服务分拆、同步异步、多阶段提交等服务调度能力,便于用户配置复杂服务调度关系。 1.3 功能和优势 * 支持集群热伸缩、优雅升级 * 统一配置管理,支持集群应用配置、应用包的自动化热部署热更新 * 通讯协议采用开放的HTTP(S),报文格式由客户端/服务端自协商,支持各业务团队自由选择自己熟悉的技术环境和工具栈接入架构 * 通讯服务端平台拥有自我新陈代谢能力,如进程资源泄露防御机制、进程异常处理机制、三层超时防御机制等 * 通讯客户端API拥有多层接口,客户端应用可根据自身进程结构和服务调度需求调用对应层次API。分布式服务调度引擎提供了两阶段提交机制 * 任意节点(包括注册节点)、模块(注册代理)失效时不影响整个架构正常运作 * 远程日志收集、实时统计分析等面向运维友好