Message Queue的應用場景
- 發(fā)送email給用戶施戴。當用戶注冊成功之后壁榕,發(fā)送一個confirmatioin給用戶。在這種應用場景任内,用戶不用立即得到email撵渡,能夠忍受MQ帶來的latency。調查一下有哪些Message Queue的應用和如何應用它死嗦。
用WebSocket是否適用于所有的應用場景趋距?
- Websocket可能會占用很多的資源,不如http節(jié)省越除。
Monolithic application 單一的巨大的應用节腐,它不會和外部交流。把所有的東西都放在一起摘盆。開發(fā)部署和測試翼雀。我們都知道要對它進行解藕,但是如何才能解藕孩擂。如果一個應用已經跑了十年之久狼渊,你如何重構它?
windows 98時代UI和內核是混合在一起的类垦,所以有時候UI崩潰之后囤锉,連帶著內核也崩潰掉坦弟。所以經常出現(xiàn)系統(tǒng)崩潰。新windows已經將UI和內核分離官地。
Monolithic app的優(yōu)勢: 簡單,延遲非常小烙懦,一個code base部署簡單驱入,小規(guī)模的應用可以節(jié)省資源;劣勢:橫向scale會很難氯析?亏较?為何。所有東西都打包在一起掩缓,需要很長時間build的deployment即使很小的改動雪情。。你辣。
12 Factor Application
- Does your application have to be 12 factor app?
- Is this methodology language agnostic?
- Spring boot wraps a lot of 12 factors.
XML RPC (remote procedural call) Microserivce?那gRPC是microservice嗎巡通?
本地和遠程的調用是分開的,在這個角度它是microservice舍哄;在另一些角度它又不是microservice
Service Oriented Architecture (SOA)是微服務嗎:需要去研究一下這種架構宴凉。“太重了” - Ross老師如是說表悬。如果只把模塊之間的soap換成rest api那么能夠變成microservice嗎弥锄?最重要的原因,模塊之間的功能的分割問題蟆沫。模塊之間應該在功能上有依賴關系籽暇,但是!不能有代碼build上的依賴關系7古印(SOA模塊之間是用SOAP交通的)
- cons
? - distributed architecture is not easy
? - Refactoring across service boundaries
? - interface changes are challenging: backward compatibility (version)
? - Operational challenges
- highly obervable; - Hide implementation; - automation
How to design microServices? Modeled around business domain; decentralize all things;
Conway's law: 管理問題 - 你的技術架構最終會反映出你公司的組織架構戒悠。
How to manage configuration; discover service; avoid avalanche;
MicroService不一定要部署在云端。