小團(tuán)隊(duì)真的適合引入SpringCloud微服務(wù)嗎?
今日推薦
單體應(yīng)用時(shí)代

接口定義
版本,統(tǒng)一跟在 /api/后面,例如 /api/v2以資源為中心,使用復(fù)數(shù)表述,例如 /api/contacts,也可以嵌套,如/api/groups/1/contacts/100url中盡量不使用動(dòng)詞,實(shí)踐中發(fā)現(xiàn)做到這一點(diǎn)真的比較難,每個(gè)研發(fā)人員的思路不一致,起的名字也千奇百怪,都需要在代碼Review中覆蓋。 動(dòng)作支持, POST / PUT / DELELE / GET,這里有一個(gè)坑,PUT和PATCH都是更新,但是PUT是全量更新而PATCH是部分更新,前者如果傳入的字段是空(未傳也視為空)那么也會(huì)被更新到數(shù)據(jù)庫中。目前我們雖然是使用PUT但是忽略空字段和未傳字段,本質(zhì)上是一種部分更新,這也帶來了一些問題,比如確有置空的業(yè)務(wù)需要特殊處理。接口通過swagger生成文檔供前端同事使用。
持續(xù)集成(CI)

微服務(wù)時(shí)代
服務(wù)拆分原則
框架選擇

zuul作為gateway,分發(fā)不同客戶端的請(qǐng)求到具體service erueka作為注冊(cè)中心,完成了服務(wù)發(fā)現(xiàn)和服務(wù)注冊(cè) 每個(gè)service包括gateway都自帶了Hystrix提供的限流和熔斷功能 service之間通過feign和ribbon互相調(diào)用,feign實(shí)際上是屏蔽了service對(duì)erueka的操作
架構(gòu)改造

自動(dòng)化部署

鏈路跟蹤
spring cloud sleuth + zipkin,國內(nèi)有美團(tuán)的CAT等等。其目的就是當(dāng)一個(gè)請(qǐng)求經(jīng)過多個(gè)服務(wù)時(shí),可以通過一個(gè)固定值獲取整條請(qǐng)求鏈路的行為日志,基于此可以再進(jìn)行耗時(shí)分析等,衍生出一些性能診斷的功能。不過對(duì)于我們而言,首要目的就是trouble shooting,出了問題需要快速定位異常出現(xiàn)在什么服務(wù),整個(gè)請(qǐng)求的鏈路是怎樣的。

運(yùn)維監(jiān)控
telegraf + influxdb + grafana的方案。telegraf作為探針收集jvm,system,mysql等資源的信息,寫入influxdb,最終通過grafana做數(shù)據(jù)可視化。spring boot actuator可以配合jolokia暴露jvm的endpoint。整個(gè)方案零編碼,只需要花時(shí)間配置。容器化時(shí)代
架構(gòu)改造

CI中多了構(gòu)建docker image的步驟 自動(dòng)化測試過程中將數(shù)據(jù)庫升級(jí)從應(yīng)用中剝離單獨(dú)做成docker image 生產(chǎn)中用k8s自帶的service替代了eruka
Spring Cloud與k8s的融合
eureka.client.enabled 設(shè)置為 false,停止各服務(wù)的eureka注冊(cè)ribbon.eureka.enabled 設(shè)置為 false,讓ribbon不從eureka獲取服務(wù)列表以服務(wù)foo為例,
foo.ribbon.listofservers 設(shè)置為 http://foo:8080,那么當(dāng)一個(gè)服務(wù)需要使用服務(wù)foo的時(shí)候,就會(huì)直接調(diào)用到http://foo:8080CI的改造
小結(jié)
推薦文章
1、14個(gè)項(xiàng)目! 2、Spring Boot + Security + MyBatis + Thymeleaf + Activiti 快速開發(fā)平臺(tái)項(xiàng)目 3、推薦幾個(gè)支付項(xiàng)目! 4、寫博客能月入10K? 5、一款基于 Spring Boot 的現(xiàn)代化社區(qū)(論壇/問答/社交網(wǎng)絡(luò)/博客) 更多項(xiàng)目源碼 1、推薦兩個(gè)項(xiàng)目! 2、重磅推薦:一套開源的網(wǎng)校系統(tǒng),無論是自建網(wǎng)校還是接副業(yè)都很方便 3、一款基于 Spring Boot 的現(xiàn)代化社區(qū)(論壇/問答/社交網(wǎng)絡(luò)/博客) 4、13K點(diǎn)贊都基于 Vue+Spring 前后端分離管理系統(tǒng)ELAdmin,大愛 5、想接私活時(shí)薪再翻一倍,建議根據(jù)這幾個(gè)開源的SpringBoot
評(píng)論
圖片
表情
