出家如初,成佛有余

高并发交易驱动系统方案

Posted in 电子商务, 技术相关 by chuanliang on 2015/01/25

我在知乎就《现在有这样一个需求,在一秒中有3万的支付订单请求,有什么比较好的解决方案吗?》做的回答。

从交易角度来看,各种高并发系统可以粗略分为两大类:交易驱动的系统,内容驱动的系统。其中:
交易驱动的系统:包括支付系统、电信计费系统、银行核心交易系统等,此类系统强调数据库事务的ACID原则。
内容驱动的系统:包括SNS、微博、门户、视频、搜索引擎等系统,此类系统对数据库事务ACID的关注不是第一位的,更强调CAP原则:Consistency(一致性), Availability(可用性),Partition tolerance(分区容错性)。
与此对应,交易驱动的系统与内容驱动的系统在系统优化方法最大的差异在于:
交易驱动的系统:强 调事务的ACID,按照CAP原则做选择,更强调CA(Consistency(一致性)和Availability(可用性);因此交易驱动的系统一般 在核心交易上选择关系型数据库(包括采用内存数据库、缓存等涉及事务问题),当然这就导致交易系统最大的瓶颈一般都在关系数据库上。
内容驱动的系统:可以在CAP之间根据业务需要做选择三选二,因此一般选择NOSQL为主、RDBMS为辅的方案。
在优化策略上,内容驱动的系统采用的诸多优化手段交易驱动的系统也可以采用,上面各位回答都有所提及,这里重点说一下因事务导致的业务复杂性的处理。
3万笔/每秒这个级别的交易订单这个量级说实话挺大,但即便如此,也有诸多可优化的空间。由于题主未对具体场景说明,只能假定是典型的交易驱动系统,一些思考点:
1、3万笔/每秒是峰值最大交易量还是持续交易量?
2、3万笔/每秒是同一类型的订单还是诸多种类型的订单?
3、业务能否做拆分,例如从功能、从区域、从优先级等角度?
4、支付订单是实时交易还是非实时交易,能否延时入库?
5、支付订单能否延时批量处理?
6、支付订单是否涉及热点账户问题,也即对同一账户会有多个并发请求对其属性(例如账户余额)进行操作?
由此可以展开诸多优化策略,不在此处细述。
以前写过一篇 交易系统“热点账户”处理 ,供参考

知乎回答原文链接:http://www.zhihu.com/question/27590048/answer/38025567

Advertisements

支付平台的账户体系结构是怎么设计的?

Posted in 电子商务, 产品管理 by chuanliang on 2015/01/19

我在知乎就《支付平台的账户体系结构是怎么设计的?》问题做的回答。

这个话题比较大,简单来说:
1、支付平台有自己的一套客户/账户/账务体系,用于记录各个客户/商户的基本信息、账户信息、账务信息。
基本信息包括实名认证信息、联系方式等等信息。
账户信息比较重要的属性是账户资金/余额,此处的账户资金实际上只是虚拟账户的资金信息,并非实际的资金,实际的资金存放在支付平台在银行设立的银行账户上。
关于账户/账户体系,一般有单式记帐法、复式记账法,关于账户/账务系统的设计具体原理可以找一本《会计学原理》好好学习一下,琢磨清楚科目设置、账户、流水分录、账簿、复式记账法之类概念,再结合交易订单处理,基本上就可以做出一个简单的账户/账务系统。
当然一般所说的账户/账务体系,实际上还涉及客户/商户模型,以满足“客户为中心”而非“账户为中心”的管理需求。
简单说来,支付平台的账户体系实际上用于记录每一个客户/商户的账户资金等虚拟信息。
2、支付平台会在银行设立一个或多个账户,用于归集客户或商户的备付金(粗俗地可以理解为,客户/商户充值、支付、交易等待结算的资金)。
以普通用户在第三方支付平台给自己虚拟账户在线充值为例(懒得画图了):
1)、用户在第三方支付平台执行充值操作,跳转到银行网关进行支付。
2)、用户支付成功后,银行会实时从用户银行账户上执行扣款操作。
3)、银行网关通知支付平台用户支付成功(成功扣款)。
4)、支付平台在自己账户体系中给对应用户虚拟账户增加对应资金。
5)、银行和支付平台然后按照约定的结算周期(例如T+1)进行对账、清结算等操作后,将用户充值的资金结算给支付平台在银行设立的账户。
备注:
1)、一般情况下支付平台不会在自己在银行设立的账户为每一个用户都设立一个对应的账户,只会有一个总的账户用于归集所有客户或商户的资金。而哪一个用户账户余额有多少钱,需要结算多少钱给某个商户,在支付平台的虚拟账户/结算系统中做标识。
2)、在银行备付金管理办法颁布前相对灵活,可以毫无限制地根据需要设立多个账户。例如在中国工商银行不同省份的支行设立不同的账号。
备付金管理办法颁布后,有所谓的汇缴户、收付户、存管户等限制,具体参考《支付机构客户备付金存管办法》
P2P平台自己账户体系的设立基本类似,并无过多复杂的地方,当然一般只需要采用单式记账法就够了。
只不过如果是P2P平台在第三方支付平台做资金托管,那么第三方支付的账户托管在账户设置上一般会有两种模式:
1、资金池模式:每一个P2P客户在支付平台的托管账户没有独立的虚拟账户,或者在项目级有对应每一个项目的总虚拟账户,或者只有一个总的虚拟账户(此种情况一般称为网关模式)。
2、虚拟账户模式:每一个P2P的客户在支付平台的托管账户都有一个独立的虚拟账户。

 

知乎回答原文链接:http://www.zhihu.com/question/27606493/answer/37447829

长期早起是一种怎样的体验?

Posted in 管理杂思 by chuanliang on 2015/01/19

我在知乎就《长期早起是一种怎样的体验?》做的回答。

工作十多年,一直习惯凌晨1点过上床睡觉,7点前起床,8点到公司,可以算作晚睡早起的习惯。
由于平常严重缺乏运动,导致一系列问题:
1、体重超重:标准体重应该为130斤左右,但最重时候170多斤,典型的大腹便便,衣服、裤子的尺码不断上市。每次体检都有脂肪肝。
2、身体各种零件老化严重:鼠标手、肩周炎、颈椎病。
3、容貌苍老:一看就是饱经沧桑的大叔。由于缺乏睡眠,脸色始终病态的黑黢黢的。脸部各个部位经常长各种大大小小的痘痘。
4、容易感冒、有鼻炎
5、容易溃疡:基本上一个月有几次口腔溃疡,大都是刷牙不小心碰一下就引发溃疡。牛黄解毒片是家庭必备药。
6、脾气容易急躁。
7、容易健忘,脑袋似乎每天都处于浆糊状态。
一直以为这样的生活习惯和各种毛病一辈子再也难以改变。。。
最近两年多,因为偶然机缘,开始锻炼身体和打坐,养成了早睡早起的习惯,养成了10多年晚睡早起的生活习惯竟然随其自然地改变。
现在一般11点左右上床,5点过起床。
起床后,如果空气质量好(美国大使馆PM2.5在100以下,参考Beijing Air Pollution: Real-time PM2.5 Air Quality Index (AQI)),就跑步跑上4公里。如果空气质量差,则在家打坐30分钟。然后做简易早餐(燕麦片+牛奶+饼干),从容吃过后,7点左右出发上班,还是8点到公司。
养成早起锻炼习惯后,感觉生活质量和工作质量有较大的提升,具体体现:
1、身体健康
体重从最重的170多斤,降低到140左右,并保持稳定。腰围也恢复正常。自己能够感觉身体轻盈多了。
鼠标手、颈椎酸痛、腰椎等毛病缓解很多。
外表虽然还是饱经沧桑,但看起来年轻多了,脸部明显有血色,也基本上不长痘痘。
身体抵抗力提高很多,很少再感冒。恼人的鼻炎也很少再烦。
很少再口腔溃疡,已经有2年多没吃过各种的清热解毒的药物,牛黄解毒片从家中药箱消失掉。
2、心态淡定多了
可以参考 修行、静坐,你能谈谈自己的实修体验吗(法门不限)? – 梁川的回答
与早起相关,最重要的莫过于可以在阳光明媚的凌晨,可以在跑步后或者上班途中以感恩的心态看久违的晨曦、风轻云淡的晨空、路边花花草草的各种美丽。
3、工作方面
早早出发,可以一路畅通无阻,不用在路上焦虑等待红绿灯。
早到公司,可以毫无干扰地处理邮件,安排工作计划。
由于早起打坐或跑步的效果,感觉白天的精神状态好多了。虽然也容易健忘,但思维比原来清晰多了。
关于早起,我自己最大的体会就是:所谓的根深蒂固的习惯,其实都可以改变,关键自己愿意以开放的心态去试、去坚持下来。
继续灌点心灵鸡汤,可以看看早起的CEO们干些什么 早起的鸟儿有虫吃,看看这些成功人士都几点起!

 

知乎回答原文链接:http://www.zhihu.com/question/27622578/answer/37442558

Tagged with: , , ,

小型研发团队应该招怎样的人?

Posted in 管理杂思, 产品管理 by chuanliang on 2015/01/19

我在知乎就《小型研发团队应该招怎样的人?》做的回答。

由于小型团队!=资源有限,这里姑且假定题主指的是资源/资金都有限的草根团队,高大上的小型团队可以按照其伟光正的愿景、目标、战略要求高标准筛选各种所谓的牛人,不在讨论范围内。
大 部分小型团队基 本上都属于“等米下锅”的状态:等人、等项目谈定、等产品研发出来、等资金到位,各种“米”不能及时到位,团队可能只能呜呼鸟散,因此对小型团队最大的成 本其实是时间成本,有人快速推动各种事情向前进展并生存下来是第一要务(即便有诸多不完美),因此小型团队初期人才招聘只能无奈地从“矮子中拔大个”。
按照这几年创业折腾的心得,我更愿意招聘如下的人:
1、心态阳光
创业过程中诸多的不确定、不完善、困难、挫折,面对各种压力,单纯只是硬住头皮挺很难挺过去。团队成员有所信仰,愿意相信生命中、人性中有更美好的东西值得为之付出是支撑下去的重要动力。
创业公司最核心的“企业文化”、“团队文化”的形成需要创始团队成员间的换位思考、宽容、感恩、信任,用阳光的心态去面对彼此。
2、有激情、有韧性
3、持续学习,拥抱变化
4、与团队现有成员在能力、性格上互补
5、执行力强
招聘只是第一步,只有为新进入的成员提供持续成长的平台才可能长期留住人,这中间最重要的还是“团队文化”,有什么的团队文化就会留住什么样的人,因此问题的核心还是在于:我们这帮老人要求别人的,原有成员是否能够做到呢?

知乎回答原文链接:http://www.zhihu.com/question/27498534/answer/36904685

Tagged with: , ,

交易系统和风控系统的架构怎么设计?

Posted in 电子商务, 技术相关, 产品管理 by chuanliang on 2015/01/19

我在知乎就《交易系统和风控系统的架构怎么设计?》做的回答。

交易系统和风控系统从架构角度设计,是应该设计成两个单独的系统,题主提到的问题,本质在于交易系统和风控系统之间数据共享及服务调用的问题。
一般通过如下几个层面来降低交易系统、风控系统的耦合度,提升系统性能和扩展性:读写分离、缓存/内存数据库、SOA架构、复合事件处理
数据库读写分离机制:在初期,风控系统一般都极为简单,此时侯一般通过数据库主从复制/读写分离/Sharding等机制来保证交易系统的数据库和风控系统数据的同步及读写分离。风控系统对所需要的客户/账户数据、交易数据一般都只进行读操作。
缓存/内存数据库机制:不 管是交易系统还是风控系统,高效的缓存系统是提升性能的大杀器,一般会把频繁使用的数据存放到Redis等缓存系统中。例如对风控系统,包括诸如风控规 则、风控案例库、中间结果集、黑白名单、预处理结果等数据;对交易系统而言,包括诸如交易参数、计费模板、清结算规则、分润规则、银行路由策略等。对一些 高频交易中,基于性能考虑,会采用内存数据库(一般会结合SSD硬盘)。
RPC/SOA架构:要降低交易系统和风控系统的 耦合度,在初期系统服务较少的情况下,一般直接采用RabbitMQ/ActiveMQ之类的消息中间件或RPC方式来实现系统间服务的调用。如果系统服 务较多,存在服务治理问题,会采用Dubbo之类的SOA中间件来实现系统服务调用。
复合事件处理(CEP):对实时/准实时交易风险控制,相对于纯基于规则的处理模式,采用复合事件处理(CEP)模式,性能及扩展性更好,开源的方案包括Esper、Storm、Spark等。
从风控系统构建角度,对应所谓的事前、事中、事后风险控制,作为风控系统最核心的风控引擎分为实时风控引擎、准实时风控引擎、定时风控引擎三种:
1、实时风控引擎&准实时风控引擎
实时风控主要在交易过程对交易过程进行实时监控,一个典型应用场景是甄别钓鱼、盗卡风险。
准实时风控典型应用场景是在T+1结算时候,对商户洗钱、跑路进行甄别。
实时/准实时风控引擎一般采用规则引擎+复杂事件处理(CEP)。
2、定时风控引擎
主要定时对支付/交易/账务等数据进行定时ETL、深度挖掘等处理,建立对应的风控模型,一个典型应用场景是商户的信用等级模型。此时侯一般采用Hadoop、ML等技术进行大数据建模
以前写过两篇关于第三方支付风控系统建设的文章,供参考
支付系统风控系统建设思考
复杂事件处理(Complex Event Processing)入门1

 

知乎回答原文链接:http://www.zhihu.com/question/20860347/answer/36328342

刚接触跑步需要什么注意事项?

Posted in 管理杂思 by chuanliang on 2015/01/19

我在知乎关于《刚接触跑步需要什么注意事项? 》做的回答。

个人认为,跑步是所有大众运动中被误解最多的运动:跑步貌似极其简单,不需要太多的理论、技巧、训练,人天生就会跑。
但当爱上跑步 并为此多次受伤后,才发现:关于跑步,其实有挺多讲究的,也有诸多的文化可以谈论。例如关于跑步姿势、关于拉伸、关于跑步哲学等等。有兴趣可以看看诸如 《跑步,该怎么跑? 》、《天生就会跑》、《拉伸:最好的运动》、《跑步圣经》、《当我谈跑步时我谈些什么》
个人几点建议:
1、循序渐进。
强 烈建议各位雄心勃勃要通过跑步锻炼身体的兄弟姐妹们先从快走开始。从健身角度而言,快走与跑步锻炼效果基本相同,由于快走对场地、时间、装备等要求较低, 相对更容易每天坚持,从而养成锻炼的习惯。等养成每天锻炼习惯后再逐步切换为跑步模式。如果认为快走不过瘾,可以每天快走一万步来挑战自己。
2、跑前和跑后一定要做拉伸,切记切记!!!
刚 跑步时候出现过诸如髂胫束摩擦综合症、筋膜炎等问题,最终发现最根本的原因:跑前跑后缺少拉伸 。现在每次跑步坚持拉伸再跑、跑后做拉伸,基本上再未出现过大的伤痛问题。网上关于拉伸的文章及视频挺多的,可自省搜索。对那些担心“跑步让小腿变粗”的 女生们,跑后拉伸也是解决之道。
3、注意正确的跑步姿势,例如在《天生就会跑》提倡的赤足跑,当然还有所谓的太极跑步法、姿势跑步法等。
回到题主提到的指望通过跑步来改变拖延症的毛病,是否有效,不得而知,跑步对强化毅力、调整心态、缓解压力肯定有帮助,但肯定不能治疗百种毛病。
当然个人强烈推荐:跑步+打坐结合的方式,通过肉体+灵性的锻炼,让自己变得更加强大,题主可以试试。

知乎原文链接:http://www.zhihu.com/question/26774671/answer/34010645

Tagged with: , ,