银行互联网业务正在快速发展。互联网业务典型的特征就是高并发,比如说秒杀,天猫上天天有秒杀,京东上天天有抢购,12306到了春节,每张票都是秒杀。这种高并发场景对基础架构的压力,不仅是Web、应用服务器,更重要的是对数据库的考验。
网银系统涉及到的主要业务是交易,是金钱的交易,所有交易数据都必须符合核心系统的对账。它和银行柜面系统涉及到的交易一样重要。数据强一致性是对其的最基本要求。
1. 网银等有数据强一致性要求的系统选择集中式架构还是分布式架构?
2. 怎么解决互联网业务系统数据库层面的扩展能力问题?
3. 互联网业务架构如何选择合适的服务器?
分布式架构强调的是并发处理能力,也是针对需要高计算资源的应用需求,例如图形化软件在 对图像进行编辑制作的时候需要高计算资源来运算,此时需要采用分布式架构来分布处理和并发提供计算资源来处理
而现有的应用系统的性能瓶颈往往都不会是在服务器端(现在的CPU和内存可以增加很多),大部分都是后端的存储资源也就是IO的瓶颈;
由于分布式架构需要借助网络和节点之间的协议协商等,同样受限于网络延时和节点之间的协商等问题,可以通过副本方式满足提供一种冗余的方式提供数据和处理服务,但是对于数据的一致性高的应用不太适合
收起3. 互联网业务架构如何选择合适的服务器?
看到这个题目就是老生常谈了。
是要买便宜的X86还是买高大的上的unix的服务器,如果碰上VMware和其他没有unix服务器产品的厂商,对不起他们会告诉你,我们有太多U2L的方案了。来吧,我帮你设计解决,实际谁用谁知道,从成本和维护角度去考虑。整体算下来一点也不便宜,他们攻击unix无非是拿价格,服务等讲故事罢了。
互联网业务架构重要的是业务的可持续性,一旦发生中断,用户的体验就会非常差,如何解决业务可持续性。架构本身要健壮。怎么健壮。我相信还是要靠硬件设备本身足够高可靠.X86天生的可维护性就非常差就给我们运维人员带来了很大的困扰.
收起 在服务器选型上,我觉得X86服务器架构是趋势,尽管像楼主所说,原有的小型机、大型机等在稳定性、性能等方面可能优于目前的X86架构,但是X86架构也在不断完善和发展,而且现在好多新技术也都是基于X86架构的,同时加之虚拟化、软件定义等新鲜技术血液,都是基于X86架构的,以后随着软件定义和虚拟化的大量部署和应用,X86是基础,相对于封闭的小型机和昂贵的维护和维修成本,X86都有很多的优势
感觉互联网业务的场景下,压力不应由架构中单独的一个或几个部分来扛,分布、缓存、应用优化、异步处理、数据分区、内存数据库、横向扩展等等多种手段相互配合才能有效解决问题。人员配置上最好也能跨部门组成产品团队。
收起第一个问题。分布式存储对于保证数据的可用性,提高数据访问效率还是相对集中式存储有一定优势,但是保证强一致性方面传统的集中式存储通过硬件层面的技术实现能够很好的保证强一致性,同时也对整体性能不会造成太大影响,还是比较占优的。
第二个问题。数据库扩展基本上可以通过采用数据库集群增加处理节点来实现,比较简单,也比较安全。
第三个问题。互联网时代由于x86服务器的总体拥有成本低,对UNIX服务器市场造成的冲击是有目共睹的。如果不太关心价格因素,选择UNIX服务器肯定是不二之选。如果手头紧选择x86服务器集群也无可厚非。
收起1. 网银等有数据强一致性要求的系统选择集中式架构还是分布式架构?
网银这类带有强烈互联网属性的业务系统如果设计的合理还是可以实现分布式的,首先从入口上可用结合CDN,GSLB等技术实现入口的分流,最简单的比如就是南北分流,用户登录以后可以根据水平拆分的原则落到不同的处理单元,拆分规则根据业务而定,哈希,取模用的比较多。简单的说选择集中还是分布式是看业务量,业务量不大,集中式完全也够用,现在绝大多数银行都是集中式,部分大行实现了从入口的分流。
2. 怎么解决互联网业务系统数据库层面的扩展能力问题?
还是建议从业务着手,scale out的扩展能力总会遇到天花板,scale up 已经是互联网的主流,而且也逐步走向成熟。不过一般都是通过MYSQL实现,传统的DB2,ORACLE还是比较困难,除非自己写一个DB路由分发中间层。
3. 互联网业务架构如何选择合适的服务器?
DMZ的前置服务器主要承载交易入口,CPU不用太高,但网络带宽一定要大,网卡需要好一点
后端APP和DB如果采用分布式的,目前主流的2路PC服务器性能足够好了,DB可以考虑加载SSD盘。
收起1. 觉得核心还是得集中式吧 上层再怎么变化的眼花缭乱,落到底层还是一笔笔的实打实的交易,要求的强一致性、稳定等是不会变化的。这也是IOE喊了这么长时间迟迟去不完全的原因。 而且,IOE本身也在适应这种变化,闪存市场、oracle 12c都是强化自身竞争力的产品。
3. x86服务器即可,可选的太多了,也可以找厂商定制。
收起1. 网银等有数据强一致性要求的系统选择集中式架构还是分布式架构?
是否采用集中或分布式架构建议根据实际的网络环境,企业地区分布,业务管理需求。
2. 怎么解决互联网业务系统数据库层面的扩展能力问题?
数据库本身可以建集群,如需要数据分析也可以引入大数据分析和展现。
3. 互联网业务架构如何选择合适的服务器?
服务器建议按需选择就可以,推荐用闪存卡,闪盘阵列。
收起数据库层面的扩展能力,可以通过集群或分布式架构来满足扩展能力
集群采用(负载均衡式)将对数据库的负载分布到集群中的多个节点上,在集群中的每一个节点都可以对外提供服务,从而达到更高的吞吐量,更好的资源利用率和更低的响应时间。
通过增加集群中的节点来满足扩展
收起