高性能与高可用慢病管理系统的研究与设计
【摘要】:慢性病管理系统,是西安交通大学第一附属医院响应陕西省“科技惠民计划”申办的医疗信息平台。其中的高血压部分已于2013年上线,心力衰竭部分与2014年上线。今年年底将会上线冠心病部分。该平台对医生、患者、研究人员等9大角色的用户提供各种服务,包括建立高血压和心力衰竭档案、高血压、心力衰竭随访管理、查询高血压分级、分析研究医疗数据、病人信息导出等等功能。自2013年上半年高血压部分上线,现如今已经累计患者用户5000人左右,潜在用户15000人。心血管疾病管理系统的用户正在逐渐增长,将来推广之后会对系统造成更大的压力。所以给系统维护带来了性能,可用性方面的难题。本文主要研究了高性能和高可用慢病服务的设计方案,保证医生和患者等各类用户在生产环境中能够及时获得系统响应。慢性心血管疾病管理平台采用的是B/S结构,采用Struts2、Spring、Hibernate作为项目开发框架。项目部署在Cent OS7服务器上,采用的Servlet容器为Apache Tomcat,本文在探究高性能与高可用慢病服务的过程中,主要做了以下工作:1、分析了心血管疾病管理系统的原有业务流程,包括高血压、心力衰竭两个系统中的各项功能。2、研究系统的技术架构,包括Nginx、Tomcat、My SQL数据库的各项配置和物理部署位置。研究Java Web系统在应对高并发情况下的机制与调整策略。3、调整系统架构,从原本单一的Tomcat容器处理所有的请求的结构变成多级负载均衡的架构,研究了Nginx、My SQL的Galera集群的配置方式,在表现层、业务层、持久层三个方面对系统进行扩充设计。4、对于一些特别耗时的应用层代码对其进行优化,调整原来系统中设计不合理的地方。例如慢病系统主面板的目录树用轻量级的Easy UI替换掉去掉庞大的Ext JS并通过延迟加载js文件。5、对现有系统进行测试并进行对比分析,验证和改进了效果以及不足的地方。尽可能地找出没有发现的潜在的性能瓶颈、系统中可能会导致宕机的关键点,并修改对应模块的程序代码与配置文件,使系统变得更加快速、健壮、可用。6、本文最后对慢病系统做进一步展望,在业务层和持久层引入了分布式的概念。主要加入了消息队列使得业务可以划分为粒度更细的模块,每个模块作为一个独立运行的节点,保证业务模块的代码不成为瓶颈。