本文主要内容如下:
一、餐厅角色
在餐厅主要有这几种角色:
- 服务员 :负责记录客户已点哪些菜、上菜时间、上菜、划掉菜。 可以将多个服务员都当做客户端 ,相对于传菜员来说。
- 传菜员 :负责通知厨房走菜、划菜、传菜。 可以将传菜员当作 Keepalived 组件 。
- 厨师 :烹饪、装盘。 可以将厨师当作后台真实服务器 。
为什么需要传菜员这个角色?有了传菜员这个角色后,发生了什么呢?
- 服务员需要服务顾客,不需要离开包间去厨房拿菜。(单一职责)
- 服务员不需要定期到厨房询问菜是否好了。(解耦)
流程图如下:
① 客户点菜下单。
② 服务员记录菜名、上菜时间。这里的上菜时间是指客户要求的上菜时间,因为有些客户可能想等朋友一起来了再吃。
③ 服务员将一份订单交给传菜员,另外一份订单留在包间。
④ 传菜员大声通知多位厨师有哪些菜要做,什么时候开始上菜。
⑤ 厨师准备食材和烹饪。如果缺少食材,厨师还会告诉传菜员,由传菜员转告服务员说这道菜不能做。
⑥ 厨师做好后将菜装在盘子里,然后递给传菜员。
⑦ 传菜员将订单上对应的菜划掉,表示已经做了。
⑧ 传菜员将菜端给服务员。
⑨ 服务员将菜从订单上划掉。
⑩ 服务员将菜端上餐桌。
这个流程简单来说就是 客户下单->服务员传单->传菜员通知->厨师烹饪->传菜员传菜->服务员上菜。
上面的流程不正是服务员请求数据,将请求都发给了传菜员,传菜员将请求转发给了厨师,厨师处理完后返回结果。妙啊!!
二、初探 Keepalived 的路由方案
2.1 为什么需要路由方案
上