成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何避免將微服務(wù)變成分布式意大利面條式代碼?

譯文
開發(fā) 架構(gòu) 分布式
用無(wú)服務(wù)器構(gòu)建系統(tǒng)很方便,這會(huì)導(dǎo)致開發(fā)人員重新使用整體式架構(gòu)那可怕的意大利面條式代碼(spaghetti code)。

[[315389]]

【51CTO.com快譯】Gartner研究主管Raj Bala說(shuō)過,無(wú)服務(wù)器產(chǎn)品最出色的地方之一就是讓你可以“前所未有地混合搭配前編程語(yǔ)言和框架。”這意味著,比如使用函數(shù)即服務(wù)(無(wú)服務(wù)器)平臺(tái),你就可以編寫調(diào)用Python庫(kù)的Java應(yīng)用程序。

確實(shí)很酷。

但是這也可能意味著意大利面條式代碼(即非結(jié)構(gòu)化、難以維護(hù)的代碼)迎來(lái)新時(shí)代。就因?yàn)槟愀鎰e整體式代碼,并不意味著不會(huì)換成“對(duì)部署、通信、監(jiān)控等方面有影響的分布式系統(tǒng)問題”。與更傳統(tǒng)的軟件開發(fā)一樣,開發(fā)易于維護(hù)的微服務(wù)需要一種慎重周到的方法。

傳播微服務(wù)之愛

Bala指出,無(wú)服務(wù)器和“單一用途微服務(wù)”的主要好處之一是,“可以使用合適的工具來(lái)完成合適的工作,而不是局限于一種語(yǔ)言、一種框架甚至一種數(shù)據(jù)庫(kù)。”這極大地解放了開發(fā)人員,因?yàn)楝F(xiàn)在他們可以編寫與短暫的無(wú)服務(wù)器函數(shù)綁定的微服務(wù),而不是編寫面對(duì)尖峰式工作負(fù)載、利用率可能低下的整體式應(yīng)用程序。系統(tǒng)處于空閑狀態(tài)時(shí),它會(huì)關(guān)閉,不花費(fèi)任何費(fèi)用。大家共贏。

這還可以使代碼維護(hù)起來(lái)更簡(jiǎn)單。若是整體式應(yīng)用程序,由于對(duì)所有依賴項(xiàng)很難做到面面俱到,更新代碼可能是一大負(fù)擔(dān)。正如Ophir Gross指出,“意大利面條式代碼處處要檢查,以查看所使用的接口版本,并確保執(zhí)行正確的代碼。由于代碼更改影響開發(fā)階段中很難預(yù)測(cè)的方面的功能,因此這種代碼常常雜亂無(wú)章,通常導(dǎo)致維護(hù)工作量加大。”

相比之下,若是基于微服務(wù)的方法,微服務(wù)中的代碼僅限于業(yè)務(wù)的一項(xiàng)功能,因此更易于理解。團(tuán)隊(duì)可以使用自己喜歡的實(shí)現(xiàn)技術(shù)和框架,彼此獨(dú)立地運(yùn)作。

然而,微服務(wù)不是沒有自己的風(fēng)險(xiǎn)。具有諷刺意味的是,其中一個(gè)風(fēng)險(xiǎn)可能正是開發(fā)人員積極接受微服務(wù)以逃避的意大利面條式代碼。

分布式意大利面條式代碼

除了其他復(fù)雜因素外(調(diào)試更復(fù)雜、API逐漸變化帶來(lái)的難題以及確保服務(wù)使用的API及時(shí)更新等),微服務(wù)的一個(gè)問題是開發(fā)人員可能使用他們以類似于當(dāng)初處理整體式應(yīng)用程序的方式來(lái)構(gòu)建系統(tǒng)。

人們常常不知道微服務(wù)其實(shí)需要獨(dú)立。比如說(shuō),你常常看到創(chuàng)建各種各樣的服務(wù),但是共享一個(gè)數(shù)據(jù)庫(kù)。另一個(gè)問題是,人們以過去在整體式架構(gòu)中習(xí)慣的方式來(lái)編程,這使得服務(wù)之間(通過網(wǎng)絡(luò))之間的同步調(diào)用鏈變得太長(zhǎng)。也沒有注意彼此使用的各種服務(wù)可能引起的意大利面條式結(jié)構(gòu)。

設(shè)計(jì)微服務(wù)的關(guān)鍵是正確“定義它們的邊界以及它們?nèi)绾温?lián)系。松散耦合的服務(wù)在一個(gè)地方含有相關(guān)行為,而對(duì)系統(tǒng)中與之協(xié)作的其余部分了解甚少。”松散耦合至關(guān)重要。你希望服務(wù)與數(shù)量有限的端點(diǎn)進(jìn)行異步聯(lián)系,并且沒有共享數(shù)據(jù)庫(kù)。

當(dāng)然,這無(wú)法消除“意大利面條式代碼2.0”的可能性。強(qiáng)大功能和便利性可能導(dǎo)致開發(fā)人員針對(duì)無(wú)服務(wù)器函數(shù)創(chuàng)建各種各樣的API調(diào)用,局面可能很快變得一團(tuán)糟。不過,確保服務(wù)的松散耦合有所幫助。

原文標(biāo)題:How to avoid turning microservices into distributed spaghetti code,作者:Matt Asay

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:龐桂玉 來(lái)源: 51CTO
相關(guān)推薦

2017-09-08 18:29:17

jQuery代碼React

2023-05-29 14:07:00

Zuul網(wǎng)關(guān)系統(tǒng)

2019-05-24 14:45:17

分布式微服務(wù)運(yùn)維

2022-06-13 07:43:21

分布式Spring

2023-09-12 22:58:51

分布式架構(gòu)微服務(wù)

2023-11-20 15:32:29

2021-03-17 10:51:16

架構(gòu)運(yùn)維技術(shù)

2020-05-26 11:59:30

日志鏈路微服務(wù)架構(gòu)

2018-03-02 16:11:29

Spring Clou分布式服務(wù)跟蹤

2017-09-01 05:35:58

分布式計(jì)算存儲(chǔ)

2019-06-19 15:40:06

分布式鎖RedisJava

2020-09-11 09:44:04

微服務(wù)分布式鏈路

2025-04-09 08:15:00

分布式系統(tǒng)微服務(wù)架構(gòu)

2025-06-12 09:48:46

2019-09-05 08:43:34

微服務(wù)分布式一致性數(shù)據(jù)共享

2017-03-14 11:52:52

微服務(wù)架構(gòu)數(shù)據(jù)管理

2021-06-09 09:00:00

微服務(wù)架構(gòu)技術(shù)

2021-03-26 11:35:48

微服務(wù)分布式服務(wù)器

2021-04-02 09:50:14

微服務(wù)分布式鎖Java

2021-01-25 15:00:44

微服務(wù)分布式日志
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产成人免费视频 | 日韩欧美国产一区二区三区 | 中文字幕 国产 | 一区二区在线观看免费视频 | 亚洲精品一区二区三区蜜桃久 | 国产九九精品 | 精品欧美一区二区在线观看 | 在线观看第一页 | 国产免费看 | 断背山在线观看 | 久久av网站 | 波多野结衣一区二区 | 一区二区三区欧美大片 | 欧美狠狠操 | 国产精品美女久久久久久久网站 | 91精品国产91 | 91大神在线看 | caoporn国产 | 久久亚洲欧美日韩精品专区 | 日韩精品欧美精品 | 日本在线免费 | 久久久久99 | 国产欧美一区二区三区在线看 | 国产精品日日做人人爱 | 欧美激情久久久 | 国产精品福利在线观看 | 一区二区三区成人 | 色爽女 | 日产精品久久久一区二区福利 | 一区二区视屏 | 黄色在线观看 | 999久久久久久久久6666 | 欧美福利网站 | 四虎在线观看 | 亚洲三级在线观看 | 激情国产 | 毛片av免费看 | 久久久久久久久久久久久久av | 91精品久久久久久久久中文字幕 | 日韩最新网站 | 免费成人在线网 |