一、案例介绍:
水果行业App开发案例分享
二、案例技术情况:
基本架构 整体采用分布式架构,内部部署,每个银行网点部署一个子节点,总行部署总节点。
在线设备数量 承载了10万台点钞机和清分机的信息采集需求。
并发连接数量 因为此系统不需要对下控制,所有设备采用短连接与服务器通信,服务器每秒处理数万次短连接请求。
并发数据量 峰值每秒接收3万次数据提交,日处理数据请求将达到数百万次。
支持协议数量 目前已经实现十多种点钞机和清分机的接入。
协议扩展能力 协议兼容型设备可无缝接入。
采用技术
最底层接入层:承担高强度的数据接入压力。
采用了DNS负载均衡+Nginx四层负载均衡+Netty框架实现。
DNS负载均衡将请求均衡转发给多个IP地址。
每个IP入口采用Nginx再将连接请求均衡转发给多台实际接入服务器。
通过多层次的均衡,从根本上防止出现某台服务器节点故障导致所有服务均不可用的情况。
实际在项目中完成了在一台高性能服务器上承载每秒3万次以上的调用请求,我们通过对一台服务器的性能优化,为客户明显节约了运营成本。
中间层数据处理层:承担高强度的数据分析运算压力。
SpringBoot+SpringCloud实现,接收由下层提交的数据进行处理。
我们通过使用消息队列服务,实现了灵活的系统解耦和运算压力的削峰填谷,多到处理不过来的数据可以在消息队列里海量堆积,直到业务压力降低以后再处理掉,避免了突发的压力压垮服务器导致服务不可用的可能,也确保了数据在任何情况下都不会丢失。
数据库与存储层:承担高强度的数据写入压力和存储压力