

4月11號買的書,5月11號開始寫讀后感和實踐。截止現(xiàn)在,差不多讀了有兩遍。 整本書200頁不到,比較薄。
第一遍是在高鐵上讀的,我看書比較快,加之本身也就200頁不到,略過代碼還有一些API介紹的文字,讀完整本書,也就花了六個小時不到。當時就感覺這本書壓根不值65塊,書上講的微服務概念、springboot、node.js、zookeeper、docker、jenkins,這些東西都是網(wǎng)上隨便找篇博客就可以入門了,而且網(wǎng)上寫的比書上更加通俗易懂。
第二遍基本是下班后在公司讀的。讀的比較細,不懂的地方會上網(wǎng)搜搜,也試著開始試著實踐??赡芤驗槲覜]有真正的自己搭過一套微服務的框架有關系,第二遍整個過程下來,跟第一遍的印象不一樣,反而收獲良多。隨著作者的文字我開始思考:怎么注冊服務、怎么發(fā)現(xiàn)服務、怎么做健康檢查、怎么做網(wǎng)關、怎么持續(xù)集成。開始想書里是怎么做的,先實踐一遍,然后想有沒有更好的做法。
總結(jié)一下自己想到的微服務框架需要做到的事情:
1、server端和client統(tǒng)一,以及如何生成.java文件或.cs文件。
這個問題歸根結(jié)底是一個溝通問題,如果是java跟java之間交流,其實不存在這個問題, 直接提供.java文件即可。但是,如果是java跟.net之間交流,或者java跟php之間的交流,那問題就比較坑。
可以用xsd或者pb來解決,然后做一個根據(jù)xsd或者pb生成service和client代碼的工具。
2、服務注冊
java+zookeeper來實現(xiàn)服務的注冊
3、服務的發(fā)現(xiàn)(微服務網(wǎng)關)
可以分為兩種,一個是前段,一個是后端。
前端可以通過node.js+zookeeper做個服務發(fā)現(xiàn)和反向代理
后端可用java+zookeeper來進行管理,提供一個java的客戶端,客戶端根據(jù)servicename來查詢服務地址, 算出一個地址后,直接將請求post過去。
這樣可以去中心化,不再需要網(wǎng)關幫忙轉(zhuǎn)發(fā)請求, 這個應該也是ESB和為微服務的區(qū)別。
同時,可以將這個地址在客戶端做個緩存,但是,服務地址發(fā)生變化時,客戶端的地址也需要跟著變化。
4、服務的封裝與發(fā)布
gitlab代碼管理。
jenkins跑自動化測試case,跑sonar,生成jar包。
jenkins+docker部署到生產(chǎn)。
關于微服務網(wǎng)關,除了最重要的服務發(fā)現(xiàn)之外,我們還需要做以下內(nèi)容:
1、安全認證
2、性能監(jiān)控
3、日志分析
4、請求分片
5、靜態(tài)響應
完成主要的1、2、3、4點之后,我們將一一的來考慮如果做。