skyele / SJTUDSTeamWork

0 stars 0 forks source link

System Design Diagram #1

Open Veiasai opened 5 years ago

Veiasai commented 5 years ago

Processon Diagram

Veiasai commented 5 years ago

Overview: 核心思想是把计算任务留给Spark,同时让前端用户能够很快被响应。 所以,将订单切分为两次操作,第一次是锁定余额,第二次是计算效果。

Httpserver接收请求之后,同步的拿锁,检查余额,修改余额,返回结果,并将生效订单写入Kafka。

spark从kafka中读取订单详情,计算实际价格。

Veiasai commented 5 years ago

这是目前能够迎合文档的一个不错办法。

暂时想到的问题: Server要事务性的修改kafka和mysql才能保证系统不出错 (不然会出现,余额扣了,订单没出现,或者订单生效了,余额没有扣,而这一点极其难保证。。