大家在平时的工作和学习中,是否会遇到下面的一系列问题:

1.  如果数据库表记录数量超过了100万,会发生什么?如何优化性能?

2.  如果web server 同时访问量超过1万人,会发生什么?如何优化性能?

3.  网站内容是动态的,页面却是静态网页,这是如何实现的?

4.  当前的主流web技术架构,未来的可能技术路线?

5.  在线支付的实现方式?

6.  如何有效的使用网页静态化解决频繁查询的问题数据库的优化步骤?

7.  JAVA和PHP怎么选择?

8.  系统面对高并发大数量时,从前端到数据库会遇到哪些挑战及该如何处理?

如果要解决以上的问题,有必要认识分布式的相关内容

                分布式系统定义及演进过程

分布式系统架构分享_第1张图片


分布式系统架构分享_第2张图片

分布式系统架构分享_第3张图片

分布式系统架构分享_第4张图片

分布式系统架构分享_第5张图片

分布式系统架构分享_第6张图片

分布式系统设计关注要点

一、什么是静态化系统?静态化系统有哪些特征?

1、一个页面对应一个固定的URL,一个URL唯一标识一个页面;

2、页面是无状态的,如用户相关的信息,时间因素,地域因素;

3、不能包含Cookie等私有数据。

强调:所谓的静态化不仅仅指存在于磁盘或者缓存中的HTML页面,它还可能是服务器生成的页面,但是这些页面本身不包含上面所说的那些因素。Js动态生成的内容不属于以上范畴。

二、如何改造动态系统?

1、URL唯一化

2、分离与用户相关的信息,时间,地域信息等,改为Ajax异步获取

3、去掉Cookie。


三、如何组装动态内容?

1、ESI(Edge Side Includes):即在Web服务器上做动态内容请求,并将请求插入到静态页面中,当用户拿到页面时已经是一个完整的页面了;

2、CSI(Client Side Includes):发起一个异步的JS请求单独向服务器获取动态内容。这种方式使服务端性能更佳,但是用户端页面有些延迟,体验稍差;

3、SSI(Server Side Includes):通过注释行SSI命令加载不同模块,构建为html,实现整个网站的内容更新,通过SSI调用各模块的对应文件,最后组装为html页面,需要服务器模块支持(具体配置本文不做详述),比如:apache服务器需要开启mod_include模块。

四、分布式事务

1、两阶段提交(2PC,Two Phase Commitment Protocal)

   在单机事务中,事务失败就直接回滚,而在分布式系统中,提交前增加了准备阶段,所以称为两阶段提交。

2、事务补偿机制

分布式系统架构分享_第7张图片

五、大型网站一致性的基础理论-CAP

 1、一致性Consistency:即所有节点在同一实际读到同样的数据。或者可以理解为当数据

写入成功后,所有的节点会同时看到这个新的数据。

 2、可用性Availability:保证不论是成功还是失败,每个请求都能够收到一个反馈,即系

统一定要有响应。

 3、分区容忍性partition-Tolerance:即便系统中有部分问题或者有消息丢失,但系统仍能

继续运行,也就是当系统的一部分出现问题时,系统仍能继续工作。

分布式系统架构分享_第8张图片

选CA,放弃分区容忍性,加强一致性和可用性。这时期就是传统的单机数据库。

选AP,放弃一致性,追求分区容忍性及可用性。

选CP,放弃可用性,追求一致性和分区容忍性。性价比低,网络问题会直接让整个系统不可以。

dubbo框架

分布式系统架构分享_第9张图片

分布式系统架构分享_第10张图片

分布式系统架构分享_第11张图片

分布式系统架构分享_第12张图片

支付平台接入简介

分布式系统架构分享_第13张图片

分类

交易类型名称

交易说明

商户个人

支付类

个人订单支付

个人用户在商户网站购物,并确定付款后,商户网站将订单支付信息引导到支付平台,个人用户在支付平台选择付款银行,通过银行支付网关支付货款,完成一笔订单的支付交易。

个人账单支付

个人在公共事业网站或者支付平台查询账单,确认付款后,个人用户在支付平台选择付款银行,通过银行支付网关支付,完成一笔账单的支付交易。

个人订单退款

商户网站将退款交易发送至支付平台,支付平台将退款交易发送至付款银行。

商户企业

支付类

 

企业订单支付

企业在商户网站购物并确定付款后,商户网站将支付指令发送至支付平台。企业可对一笔订单一次支付或分多次支付,可以区分定金、货款。

企业订单退款

商户网站对已支付的订单退款,将退款交易发送至支付平台。

企业分期付款

企业在商户网站购物,选择分期支付订单货款,确定付款时,一笔订单支付将被分成多笔支付指令,支付平台保存每一笔支付指令,根据支付方式等待企业确认或将支付指令发送到付款银行。

企业支付账单

企业在公共事业网站查询账单,确认付款后,公共事业网站将该笔支付指令发送至支付平台。

企业协议支付

企业在公共事业网站查询协议支付账单,确认付款后,该笔支付指令经支付平台转发至付款银行。

商户订单维护类

商户撤销订单

商户通知支付平台撤销一笔尚未支付的订单。

商户修改订单

企业在商户网站通过该交易修改订单金额,为了商户不能提供足够的货物时,修改订单。

 

商户查询类

商户单笔查询交易结果

商户向支付平台发出查询交易支付结果指令。

商户下载对账单

商户下载支付平台对账记录。