论文部分内容阅读
随着医疗体制改革的推进,医院对于药品市场的垄断逐渐被打破,整个巨大的药品市场从医院流向了药品零售企业。与之同时,互联网技术迅速发展并且不断渗透到各行各业,传统医药产业与互联网产业不断进行融合,为药品零售提供了新的方向。互联网自动药房系统是一个面向医药行业的互联网商业应用项目,该系统结合了传统的实体药房销售及新兴的医药电商销售两种的模式的优点,利用互联网+机器人智能化出售药品,线上有医药电商的销售平台,提供消费者便利的选购和查询药品服务,线下有着实体药房提供线上药品出售来源,保证了出售药品的质量。由于互联网自动药房系统独特的商业模式,决定了存储系统的数据存储特征:1,系统中数据存储多种复杂的数据结构2,系统中数据呈现物理分布式存储3,系统中的数据量会随着时间不断增大。本文主要的工作是针对互联网自动药房系统进行数据分布式存储方案的设计与实现。从互联网自动药房系统数据存储的三个特征角度出发,本文主要进行了以下三部分工作:(1)选择MongoDB数据库进行系统中各种数据的存储设计以及实现。本文以本地药房系统为例研究了系统中结构化数据的数据库表设计。本文采用领域建模思想完成了概念结构设计并得到线下药房系统的UML类图,并且利用MongoDB的数据存储特征结合得到的UML类图完成了逻辑结构设计,实现了本地药房系统中存储数据表的设计。同时利用MongoDB数据库提供的GridFS机制完成系统中图片的存储。(2)分析了物理分布式存储的数据种类与存储特征,为了保证分散存储数据的完整性和一致性,提出了实时更新数据库变化策略。根据系统的实际操作场景进行业务流程分析,利用RESTWeb Service技术实现了多个跨服务器访问接口,解决了物理分布式存储数据的一致性问题,实现了数据物理分布式存储的数据统一管理。(3)利用MongoDB数据库分片技术和副本集策略搭建高可用分布式集群,解决系统中海量数据的存储问题。根据互联网自动药房系统数据库访问需求,对不同的数据库表进行合理的分片片键设计,将海量数据存储压力分摊到多个硬件服务器中。然后在多个服务器中实现从单机数据库迁移到MongoDB分片集群中,最后对分布式集群进行了功能测试和性能测试来验证和评估集群功能。