新聞中心
在選擇適合微服務(wù)架構(gòu)的編程語(yǔ)言時(shí),Python是其中一種選擇。它具有活躍的社區(qū)、更好的原型設(shè)計(jì)以及在開(kāi)發(fā)人員中受歡迎等好處。它有一些限制,因此可以使用其他語(yǔ)言來(lái)避免它們。

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)貴港免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
快速開(kāi)發(fā)架構(gòu)風(fēng)格回顧與統(tǒng)計(jì)
兩種主要的開(kāi)發(fā)架構(gòu)風(fēng)格是單體架構(gòu)和微服務(wù)架構(gòu)。Monolithic 具有一體化的原則,并作為一個(gè)整體結(jié)構(gòu)發(fā)揮作用,最適合小型開(kāi)發(fā)項(xiàng)目或初創(chuàng)企業(yè)。當(dāng)一個(gè)平臺(tái)增長(zhǎng)并且業(yè)務(wù)需要復(fù)雜的應(yīng)用程序時(shí),將其拆分為微服務(wù)架構(gòu)是合理的。
一些語(yǔ)言和框架更適合構(gòu)建微服務(wù)架構(gòu)。Java、Javascript 和 Python被列為微服務(wù)開(kāi)發(fā)最流行的語(yǔ)言。根據(jù)這篇 DZone帖子,Java 是大多數(shù)人 (82%) 的首選,其次是 Node.js (40%),以及 Python 和客戶端 JavaScript (31%)。根據(jù)JetBrains,微服務(wù)架構(gòu)中最受歡迎的 3 種編程語(yǔ)言是 Java(41%)、Javascript(37%)和 Python(25%)。
有些更適合單體架構(gòu)。事實(shí)上,許多企業(yè)選擇構(gòu)建單體應(yīng)用程序,因?yàn)橹钡綆资昵皢误w方法才更為普遍。正如我們所看到的,Python 中的微服務(wù)并不是首選,而是經(jīng)常被開(kāi)發(fā)人員選擇,所以讓我們?cè)敿?xì)討論一下。
Python 中的微服務(wù)
沒(méi)有靜態(tài)類(lèi)型系統(tǒng)的動(dòng)態(tài)語(yǔ)言將適合微服務(wù)架構(gòu)。編程語(yǔ)言和這種架構(gòu)的結(jié)合提供了在軟件中創(chuàng)建獨(dú)特解決方案和復(fù)雜應(yīng)用程序的機(jī)會(huì)。
從技術(shù)上講,可以在微服務(wù)之間建立通信的每種語(yǔ)言都可以工作。在 Python 中創(chuàng)建微服務(wù)允許使用在其他地方可能不可用的某些功能/庫(kù)/工具。此外,如果您需要快速迭代并且團(tuán)隊(duì)可以使用 Python 做到最好,這將是正確的選擇。在 Python 中尋求功能,因?yàn)樗且环N面向?qū)ο蟮恼Z(yǔ)言,因此添加特定功能是有益的。
Python中微服務(wù)架構(gòu)的主要類(lèi)型
為了理解 Python 中微服務(wù)的本質(zhì),讓我們看一下它們的兩種不同類(lèi)型:all-to-all 服務(wù)和事件驅(qū)動(dòng)類(lèi)型。
All-to-all 服務(wù)看起來(lái)類(lèi)似于通常的開(kāi)發(fā)過(guò)程。Python中的微服務(wù)之間的關(guān)系部分是垂直的,所以它們構(gòu)成了一個(gè)鏈條,并且被一個(gè)一個(gè)地激活。這里的微服務(wù)之間的通信更加嚴(yán)格。all-to-all 服務(wù)類(lèi)似于單體方法,但分為單獨(dú)的塊。
在事件驅(qū)動(dòng)類(lèi)型的微服務(wù)架構(gòu)中,通信更快更復(fù)雜。這里的原則是微服務(wù)在特定條件后被觸發(fā)。換句話說(shuō),當(dāng)用戶和應(yīng)用程序交互(請(qǐng)求)時(shí),軟件會(huì)執(zhí)行某些動(dòng)作(事件)。
微服務(wù)之間的通信
基于微服務(wù)的應(yīng)用程序不像單體應(yīng)用程序那么簡(jiǎn)單,因此它們之間的通信更加混亂。在這里,進(jìn)程不會(huì)相互激活,而是對(duì)事件或請(qǐng)求做出反應(yīng)。
單獨(dú)的服務(wù)需要稱為消息代理的特定軟件來(lái)創(chuàng)建連接。它們具有不同的功能和細(xì)節(jié)。Amazon Web Services 提供現(xiàn)成的解決方案,但開(kāi)發(fā)團(tuán)隊(duì)可以自己選擇消息代理。最流行的是 RabbitMQ、ZeroMQ、Apache ActiveMQ、Apache Kafka、IBM MQ 等。
Python 在微服務(wù)架構(gòu)中的優(yōu)勢(shì)
- 使用正確的 API 格式,原型制作比其他語(yǔ)言更容易和更快。原型設(shè)計(jì)有助于糾正設(shè)計(jì)問(wèn)題和識(shí)別改進(jìn)。
- Python 允許開(kāi)發(fā)人員自動(dòng)化微服務(wù)的系統(tǒng)供應(yīng)和配置。單個(gè)代碼更改會(huì)在整個(gè)代碼庫(kù)中復(fù)制。
- 它與 ASP 和PHP等傳統(tǒng)語(yǔ)言兼容,有助于創(chuàng)建 Web 服務(wù)前端來(lái)托管微服務(wù)。
- 當(dāng)您查找某些信息時(shí),活躍的 Python 開(kāi)發(fā)人員社區(qū)會(huì)提供強(qiáng)大的支持和資源。這并不意味著其他語(yǔ)言沒(méi)有,但 Python 通常非常流行。
Python在微服務(wù)架構(gòu)中的劣勢(shì)
- 執(zhí)行速度可能會(huì)受到影響。Python 是一種解釋型語(yǔ)言,因此它在執(zhí)行時(shí)會(huì)生成非機(jī)器代碼。之后,CPython、Jython、PyPy 或 PyCharm 等解釋器在運(yùn)行時(shí)將其轉(zhuǎn)換為在 CPU 虛擬環(huán)境中執(zhí)行的字節(jié)碼指令。一些語(yǔ)言編譯為本機(jī)代碼,執(zhí)行速度更快(C 和 C++)。
- 動(dòng)態(tài)類(lèi)型可能會(huì)導(dǎo)致許多錯(cuò)誤和崩潰。一些在編譯期間被忽略的錯(cuò)誤可能會(huì)在運(yùn)行時(shí)出現(xiàn)。這是有風(fēng)險(xiǎn)的,可能會(huì)導(dǎo)致延誤或崩潰。開(kāi)發(fā)人員需要專(zhuān)注并不斷測(cè)試應(yīng)用程序流程。這似乎很明顯,但這增加了額外的工作。
我對(duì) Python 微服務(wù)的見(jiàn)解
我們?cè)谖⒎?wù)架構(gòu)上擁有相當(dāng)多的基于 Python 的應(yīng)用程序。兩個(gè)最流行的項(xiàng)目框架是 Flask 和 Django。我們與他們合作的原因是:
- Django有各種可在項(xiàng)目中使用的工具。它也更快,但是為您做出了一些選擇,因此如果您不同意或不想要獨(dú)特的應(yīng)用程序要求,請(qǐng)使用其他框架,如 Flask 或 Fast API。
- Python 適合任何規(guī)模和經(jīng)驗(yàn)水平的團(tuán)隊(duì)。為什么?由于該語(yǔ)言在開(kāi)發(fā)人員中很受歡迎,即使它在表現(xiàn)力和自由度方面都可以很好地?cái)U(kuò)展,它也可能是結(jié)構(gòu)化和可控的。
- 對(duì)于微服務(wù)架構(gòu),有比 Python 更好的替代品,比如 Javascript,但有些客戶只是更喜歡它。龐大的社區(qū)、許多現(xiàn)成的解決方案和快速的開(kāi)發(fā)使其熟悉且值得信賴。
結(jié)論
如果您有應(yīng)用創(chuàng)意并希望使用微服務(wù)架構(gòu)進(jìn)行開(kāi)發(fā),請(qǐng)調(diào)查最流行的框架和語(yǔ)言,并根據(jù)您需要的功能、團(tuán)隊(duì)的專(zhuān)業(yè)知識(shí)和您擁有的資源選擇一種。業(yè)務(wù)邏輯和業(yè)務(wù)能力在這里至關(guān)重要,因此當(dāng)您擁有復(fù)雜的系統(tǒng)、想要持續(xù)交付并需要異步通信等功能時(shí),請(qǐng)考慮微服務(wù)應(yīng)用程序。在其他情況下,使用 Python 實(shí)現(xiàn)微服務(wù)可能很昂貴且不合理。
分享題目:Python 對(duì)微服務(wù)架構(gòu)有效嗎?
文章鏈接:http://fisionsoft.com.cn/article/dpddpio.html


咨詢
建站咨詢
