上图为麦当劳新改进的点餐取餐分离柜台,将原来的多队列点餐取餐混合业务抽取出来;分离出点餐和取餐通道,相互分离的做法大大提高出餐效率。同时为了适应互联网+
的转型,支持更多点餐方式的接入(相当于增加web前端的请求类型),支持O2O点餐App(美团外卖,饿了么等)、自有App、自动点餐机等终端接入。
显然这个改进,麦当劳是为了把原来的队列_阻塞_式架构变为一个高并发高可用架构。做出这个业务流程改进的管理者一定是个很棒的程序员 ^_^
为什么要读写分离
- 物理服务器增加,拿硬件换性能,空间换时间;
- 主从只负责各自的读和写,极大程度缓解X锁和S锁争用;
- Master只负责写入数据,甚至不需要建立索引,大大提高效率;
- Slave可以配置MyIASM引擎,提升查询性能以及节约系统开销;
- Master直接写是并发的,Slave通过主库发送来的binlog恢复数据是异步;
- Slave可以单独设置一些参数来提升其读的性能;
- 增加冗余,提高可用性
How to Do
Like the Albert Einstein
said:
If you can't explain it to a six-year-old, you really don't understand it yourself.