請(qǐng)求術(shù)語(yǔ)
JSON
JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,它基于JavaScript對(duì)象的表示法,并使用文本表示。JSON是一種流行的數(shù)據(jù)格式,因?yàn)樗子陂喿x和編寫(xiě),并且可以表示各種類(lèi)型的數(shù)據(jù)。
JSON數(shù)據(jù)由鍵值對(duì)組成,鍵是字符串,值可以是字符串、數(shù)字、布爾值、數(shù)組或?qū)ο蟆SON數(shù)據(jù)可以使用任何文本編輯器創(chuàng)建和編輯,也可以使用各種編程語(yǔ)言解析和生成。
Content-Type
http常見(jiàn)的請(qǐng)求體類(lèi)型有以下幾種:
application/x-www-form-urlencoded
使用 URL 編碼的表單數(shù)據(jù),適用于 HTML 表單提交的數(shù)據(jù)格式。
multipart/form-data
用于上傳文件或二進(jìn)制數(shù)據(jù),可包含多個(gè)部分,每個(gè)部分都有自己的類(lèi)型和內(nèi)容。
application/json
用于發(fā)送和接收 JSON 格式的數(shù)據(jù),常用于 RESTful API 的請(qǐng)求和響應(yīng)。
text/plain
純文本數(shù)據(jù),沒(méi)有特定的格式要求。
application/xml
用于發(fā)送和接收 XML 格式的數(shù)據(jù),常用于 SOAP 協(xié)議的請(qǐng)求和響應(yīng)。
application/octet-stream
用于發(fā)送二進(jìn)制數(shù)據(jù),如圖片、音頻、視頻等。
application/graphql
用于發(fā)送 GraphQL 查詢或變異請(qǐng)求。
application/x-protobuf
用于發(fā)送和接收 Protocol Buffers 格式的數(shù)據(jù)。
application/x-msgpack
用于發(fā)送和接收 MessagePack 格式的數(shù)據(jù),一種高效的二進(jìn)制序列化格式。
application/x-www-form-urlencoded-stream
類(lèi)似于 application/x-www-form-urlencoded,但支持流式處理大型數(shù)據(jù)。
?
token
服務(wù)接口的token是一種用于身份驗(yàn)證和授權(quán)的機(jī)制。它通常是一個(gè)字符串或編碼信息,用于在客戶端和服務(wù)器之間進(jìn)行安全通信。
在Web服務(wù)和API中,token常用于以下情況:
- 身份驗(yàn)證(Authentication): 當(dāng)用戶登錄時(shí),系統(tǒng)可能會(huì)為該用戶生成一個(gè)token,并將它返回給客戶端??蛻舳嗽诤罄m(xù)的請(qǐng)求中都會(huì)附帶這個(gè)token,以證明其身份。
- 授權(quán)(Authorization): 一旦用戶通過(guò)身份驗(yàn)證并獲得token,這個(gè)token通常會(huì)包含一些權(quán)限信息,用于決定該用戶可以訪問(wèn)哪些資源或執(zhí)行哪些操作。
- 會(huì)話管理: 代替?zhèn)鹘y(tǒng)的會(huì)話ID,token也可以用于識(shí)別和管理用戶會(huì)話。它的好處是可以更容易地在不同的服務(wù)器或服務(wù)間共享用戶狀態(tài)。
- 防止跨站請(qǐng)求偽造(CSRF): token可以作為一個(gè)額外的驗(yàn)證層,確保請(qǐng)求是從合法的來(lái)源發(fā)出的。
為了增強(qiáng)安全性,token通常都會(huì)有時(shí)效性,并且在一段時(shí)間后會(huì)自動(dòng)過(guò)期。此外,使用HTTPS來(lái)傳輸token也是很重要的,以確保token在傳輸過(guò)程中不會(huì)被截獲或篡改。
常見(jiàn)的token類(lèi)型包括:
- JWT (JSON Web Token): 一種開(kāi)放標(biāo)準(zhǔn)(RFC 7519)定義的token格式,它緊湊且包含了必要的信息,可以用于在各方之間安全地傳輸這些信息。
- OAuth Tokens: OAuth 2.0流程中使用的token,通常用于第三方應(yīng)用訪問(wèn)用戶的資源,而不需要用戶直接共享其密碼。
- Bearer Tokens: 一種簡(jiǎn)單的token類(lèi)型,其安全性基于傳輸層的保密性(如HTTPS)。任何持有此token的實(shí)體都可以使用它,因此必須確保它不會(huì)被泄露。
使用token時(shí),保護(hù)其安全性至關(guān)重要。不應(yīng)該在客戶端永久存儲(chǔ)敏感信息,并且要確保使用安全的傳輸方式。
Session 和 Cookie
Session 和 Cookie 是 Web 開(kāi)發(fā)中兩種常見(jiàn)的用戶狀態(tài)管理方式。
- Cookie:Cookie是一種在瀏覽器中存儲(chǔ)數(shù)據(jù)的機(jī)制,用于在不同請(qǐng)求之間傳遞和存儲(chǔ)數(shù)據(jù)。Cookie 是服務(wù)器發(fā)送到用戶瀏覽器并保存在本地的一小塊數(shù)據(jù),它包含了用戶的某些信息。當(dāng)用戶再次請(qǐng)求同一個(gè)網(wǎng)站時(shí),瀏覽器會(huì)自動(dòng)將這些信息發(fā)送回服務(wù)器。Cookie 主要用于跟蹤用戶的狀態(tài),如登錄狀態(tài)、購(gòu)物車(chē)等。
- Session:Session 是一種在服務(wù)器端存儲(chǔ)用戶狀態(tài)的技術(shù)。當(dāng)用戶登錄后,服務(wù)器生成一個(gè) Session ID,并將其發(fā)送給客戶端(通常通過(guò)設(shè)置一個(gè)特殊的 Cookie)。之后,只要客戶端在每次請(qǐng)求中都包含這個(gè) Session ID,服務(wù)器就能識(shí)別出這是同一個(gè)用戶。
Session 和 Cookie 是 Web 開(kāi)發(fā)中兩種常見(jiàn)的用戶狀態(tài)管理方式,Session數(shù)據(jù)存儲(chǔ)在服務(wù)器上,而Cookie數(shù)據(jù)存儲(chǔ)在客戶端上。相比 Cookie,Session 在服務(wù)器端存儲(chǔ)數(shù)據(jù)更安全,因?yàn)閿?shù)據(jù)不會(huì)隨著用戶的每個(gè)請(qǐng)求在網(wǎng)絡(luò)上傳輸。
基礎(chǔ)術(shù)語(yǔ)
panic
服務(wù)panic通常指的是在軟件開(kāi)發(fā)中的問(wèn)題,即服務(wù)程序在運(yùn)行過(guò)程中出現(xiàn)了無(wú)法處理的異常情況,導(dǎo)致服務(wù)崩潰或無(wú)法正常工作。當(dāng)服務(wù)panic時(shí),它會(huì)中斷當(dāng)前的操作,并且通常會(huì)觸發(fā)一些錯(cuò)誤處理機(jī)制,比如記錄錯(cuò)誤日志、重啟服務(wù)等。服務(wù)panic常常是由于代碼bug、不可預(yù)料的輸入數(shù)據(jù)等原因?qū)е碌?,需要開(kāi)發(fā)人員及時(shí)修復(fù)。
OOM
"服務(wù)OOM"指的是服務(wù)程序發(fā)生了Out of Memory(OOM)錯(cuò)誤。OOM錯(cuò)誤是指程序在嘗試分配內(nèi)存時(shí),無(wú)法獲取足夠的內(nèi)存空間,導(dǎo)致程序崩潰或異常終止。
解決服務(wù)OOM問(wèn)題的方法包括:
- 增加服務(wù)器的內(nèi)存:可以通過(guò)增加服務(wù)器的物理內(nèi)存或虛擬內(nèi)存來(lái)解決服務(wù)OOM問(wèn)題。
- 優(yōu)化代碼:可以通過(guò)優(yōu)化代碼來(lái)減少內(nèi)存的使用,例如使用更高效的算法、減少變量的使用等。
- 使用垃圾回收:可以使用垃圾回收機(jī)制來(lái)自動(dòng)釋放不再使用的內(nèi)存,從而減少內(nèi)存泄漏的風(fēng)險(xiǎn)。
- 調(diào)整應(yīng)用程序配置:可以通過(guò)調(diào)整應(yīng)用程序的配置參數(shù)來(lái)優(yōu)化內(nèi)存使用,例如調(diào)整緩存大小、調(diào)整連接池大小等。
- 監(jiān)控系統(tǒng)資源:可以使用系統(tǒng)監(jiān)控工具來(lái)監(jiān)控服務(wù)器的內(nèi)存使用情況,及時(shí)發(fā)現(xiàn)并解決內(nèi)存問(wèn)題。
DNS
DNS(Domain Name System):域名系統(tǒng),是一種將域名映射到IP地址的系統(tǒng)。
LB
LB是指負(fù)載均衡(Load Balancer),它是一種用于將網(wǎng)絡(luò)流量均勻分布到多個(gè)服務(wù)器上的技術(shù)。在服務(wù)部署中,LB可以用于將用戶請(qǐng)求流量分發(fā)到多個(gè)應(yīng)用服務(wù)器上,以實(shí)現(xiàn)負(fù)載均衡,提高系統(tǒng)的性能和可靠性。LB可以通過(guò)不同的算法來(lái)確定將請(qǐng)求分發(fā)給哪個(gè)服務(wù)器,例如輪詢、最少連接、IP散列等。同時(shí),LB還可以監(jiān)控服務(wù)器的健康狀況,并根據(jù)需要自動(dòng)將請(qǐng)求流量從故障的服務(wù)器轉(zhuǎn)移到正常運(yùn)行的服務(wù)器上,從而提高系統(tǒng)的可用性。
RPC和GRPC
RPC(Remote Procedure Call)遠(yuǎn)程過(guò)程調(diào)用,是一種通過(guò)網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議,簡(jiǎn)單的理解是一個(gè)節(jié)點(diǎn)請(qǐng)求另一個(gè)節(jié)點(diǎn)提供的服務(wù)。RPC只是一套協(xié)議,基于這套協(xié)議規(guī)范來(lái)實(shí)現(xiàn)的框架都可以稱(chēng)為 RPC 框架,比較典型的有 Dubbo、Thrift 和 gRPC。
grpc是一個(gè)高性能、通用的開(kāi)源RPC框架,可以讓你輕松構(gòu)建分布式應(yīng)用和服務(wù),用于在不同服務(wù)之間進(jìn)行通信。它是由 Google 開(kāi)發(fā)并開(kāi)源的,基于 HTTP/2 協(xié)議進(jìn)行通信。gRPC 的主要目標(biāo)是提供一種簡(jiǎn)單、高效、可擴(kuò)展的通信方式,讓開(kāi)發(fā)者能夠更容易地構(gòu)建分布式系統(tǒng)和微服務(wù)。
詳細(xì)資料可參考:https://zhuanlan.zhihu.com/p/612901118
消息隊(duì)列
服務(wù)的消息隊(duì)列是一種異步通信機(jī)制,它允許不同的服務(wù)之間發(fā)送和接收消息。消息隊(duì)列通常用于解耦服務(wù),提高應(yīng)用程序的可靠性和可擴(kuò)展性。
以下是一個(gè)簡(jiǎn)單的服務(wù)的消息隊(duì)列的實(shí)現(xiàn):
- 首先,需要選擇一個(gè)消息隊(duì)列服務(wù)。有許多消息隊(duì)列服務(wù)可供選擇,例如 RabbitMQ、Kafka、RocketMQ 等。
- 然后,需要?jiǎng)?chuàng)建一個(gè)隊(duì)列。隊(duì)列是一個(gè)存儲(chǔ)消息的地方,可以將其視為一個(gè)緩沖區(qū),消息可以在其中等待處理。
- 接下來(lái),需要?jiǎng)?chuàng)建一個(gè)生產(chǎn)者服務(wù)。生產(chǎn)者服務(wù)負(fù)責(zé)將消息發(fā)送到隊(duì)列中。生產(chǎn)者將消息發(fā)送到隊(duì)列,然后其他服務(wù)可以從隊(duì)列中接收并處理這些消息。
- 最后,需要?jiǎng)?chuàng)建一個(gè)消費(fèi)者服務(wù)。消費(fèi)者服務(wù)負(fù)責(zé)從隊(duì)列中接收消息并處理它們。當(dāng)消費(fèi)者從隊(duì)列中接收消息時(shí),它們可以進(jìn)行處理,例如將消息轉(zhuǎn)換為其他格式或?qū)⑵浯鎯?chǔ)在數(shù)據(jù)庫(kù)中。
服務(wù)的消息隊(duì)列是一種異步通信機(jī)制,可以用于解耦服務(wù)并提高應(yīng)用程序的可靠性和可擴(kuò)展性。通過(guò)創(chuàng)建隊(duì)列、生產(chǎn)者服務(wù)和消費(fèi)者服務(wù),可以實(shí)現(xiàn)消息隊(duì)列的簡(jiǎn)單實(shí)現(xiàn)。
協(xié)程和進(jìn)程
協(xié)程和進(jìn)程是兩種不同的并發(fā)模型,進(jìn)程是操作系統(tǒng)的基本執(zhí)行單元,而協(xié)程是用戶級(jí)線程。這意味著進(jìn)程由操作系統(tǒng)內(nèi)核管理,而協(xié)程由應(yīng)用程序本身管理,它們都用于實(shí)現(xiàn)并發(fā)編程,但在調(diào)度和管理上有所不同。
- 協(xié)程(Coroutine):協(xié)程是一種用戶態(tài)的輕量級(jí)線程,它的調(diào)度和管理由程序自身控制,而不是由操作系統(tǒng)內(nèi)核完成。協(xié)程之間的切換不需要內(nèi)核態(tài)和用戶態(tài)之間的切換,因此開(kāi)銷(xiāo)較小。協(xié)程的主要優(yōu)點(diǎn)是可以在單個(gè)線程中實(shí)現(xiàn)多任務(wù)的并發(fā)執(zhí)行,從而提高程序的執(zhí)行效率。協(xié)程的調(diào)度策略有多種,如 FCM、Lua 等。
- 進(jìn)程(Process):進(jìn)程是操作系統(tǒng)中資源分配的基本單位,它包括程序代碼、數(shù)據(jù)、堆棧等資源。進(jìn)程之間相互獨(dú)立,由操作系統(tǒng)內(nèi)核進(jìn)行調(diào)度和管理。進(jìn)程之間的切換需要經(jīng)過(guò)內(nèi)核態(tài)和用戶態(tài)之間的切換,因此開(kāi)銷(xiāo)相對(duì)較大。進(jìn)程的主要優(yōu)點(diǎn)是可以在多個(gè)線程之間實(shí)現(xiàn)任務(wù)的分發(fā)和隔離,從而提高程序的穩(wěn)定性和安全性。
總結(jié):協(xié)程和進(jìn)程都是用于實(shí)現(xiàn)并發(fā)編程的概念,但它們?cè)谡{(diào)度和管理上有所不同。協(xié)程更輕量級(jí),由程序自身控制調(diào)度,適用于需要高效執(zhí)行的應(yīng)用;而進(jìn)程更重量級(jí),由操作系統(tǒng)內(nèi)核進(jìn)行調(diào)度,適用于需要任務(wù)分發(fā)和隔離的應(yīng)用。
容器和節(jié)點(diǎn)
服務(wù)容器
服務(wù)容器是一種輕量級(jí)的、可移植的、自包含的軟件打包技術(shù),它將應(yīng)用程序及其依賴項(xiàng)打包在一起,從而實(shí)現(xiàn)應(yīng)用程序的快速部署和運(yùn)行。每個(gè)服務(wù)容器都包含應(yīng)用程序及其所有依賴項(xiàng),但它們共享主機(jī)操作系統(tǒng)的內(nèi)核,因此比傳統(tǒng)的虛擬機(jī)更高效。服務(wù)容器的主要優(yōu)點(diǎn)是可以輕松地在不同環(huán)境中移植應(yīng)用程序,因?yàn)樗械囊蕾図?xiàng)都被包含在容器中。
常見(jiàn)的服務(wù)容器技術(shù)Docker:Docker 是一種流行的開(kāi)源容器技術(shù),它使用輕量級(jí)的虛擬化技術(shù)來(lái)隔離應(yīng)用程序的運(yùn)行環(huán)境。Docker 容器可以在任何支持 Docker 的操作系統(tǒng)上運(yùn)行,從而實(shí)現(xiàn)應(yīng)用程序的跨平臺(tái)部署。
服務(wù)節(jié)點(diǎn)
節(jié)點(diǎn)是指在分布式系統(tǒng)中的一個(gè)計(jì)算單元,它通常包括一個(gè)或多個(gè)處理器、內(nèi)存和磁盤(pán)存儲(chǔ)空間。節(jié)點(diǎn)可以是物理服務(wù)器、虛擬機(jī)或云服務(wù)提供商提供的計(jì)算資源。在分布式系統(tǒng)中,節(jié)點(diǎn)之間通過(guò)網(wǎng)絡(luò)連接進(jìn)行通信和協(xié)作,共同完成系統(tǒng)的任務(wù)。
服務(wù)容器和節(jié)點(diǎn)之間的關(guān)系是多對(duì)多的,這意味著一個(gè)服務(wù)容器可以運(yùn)行在多個(gè)節(jié)點(diǎn)上,一個(gè)節(jié)點(diǎn)也可以運(yùn)行多個(gè)服務(wù)容器。
跨域
跨域指的是瀏覽器的同源策略。同源策略是瀏覽器為了保護(hù)用戶信息安全而設(shè)置的一項(xiàng)安全策略,它規(guī)定了瀏覽器的腳本(例如 JavaScript)只能訪問(wèn)來(lái)自同一源的資源。
常見(jiàn)的跨域策略有以下兩種:
- 簡(jiǎn)單請(qǐng)求:瀏覽器將對(duì)簡(jiǎn)單請(qǐng)求的跨域請(qǐng)求進(jìn)行預(yù)檢請(qǐng)求,預(yù)檢請(qǐng)求的響應(yīng)頭包括:
- Access-Control-Allow-Origin:允許的源
- Access-Control-Allow-Methods:允許的請(qǐng)求方法
- Access-Control-Allow-Headers:允許的請(qǐng)求頭
- Access-Control-Max-Age:緩存此響應(yīng)的時(shí)間(以秒為單位)
- Access-Control-Allow-Credentials:是否允許請(qǐng)求包含憑據(jù)(如 Cookies)
- Access-Control-Allow-Origin:允許的源
- Access-Control-Allow-Methods:允許的請(qǐng)求方法
- Access-Control-Allow-Headers:允許的請(qǐng)求頭
- Access-Control-Max-Age:緩存此響應(yīng)的時(shí)間(以秒為單位)
- Access-Control-Allow-Credentials:是否允許請(qǐng)求包含憑據(jù)(如 Cookies)
通過(guò)這些跨域策略,可以實(shí)現(xiàn)在瀏覽器端和服務(wù)器端安全地進(jìn)行跨域數(shù)據(jù)傳輸。
帶寬
帶寬是指在單位時(shí)間內(nèi)傳送數(shù)據(jù)的能力,通常用每秒傳送的數(shù)據(jù)量來(lái)衡量。在計(jì)算機(jī)網(wǎng)絡(luò)中,帶寬通常以比特率(bit/s)來(lái)表示,也可以用字節(jié)率(byte/s)來(lái)表示。
帶寬的大小決定了網(wǎng)絡(luò)傳輸速度的限制,即可以傳輸?shù)淖畲髷?shù)據(jù)量。帶寬越大,網(wǎng)絡(luò)傳輸速度越快,可以傳輸?shù)臄?shù)據(jù)量也越大。
時(shí)間戳
時(shí)間戳(Timestamp)是一個(gè)表示某個(gè)特定時(shí)間的數(shù)字或字符串,通常是從某個(gè)特定的起點(diǎn)開(kāi)始計(jì)算的秒數(shù)或毫秒數(shù)。它可以用于記錄事件發(fā)生的順序、計(jì)算時(shí)間間隔、生成唯一標(biāo)識(shí)等。常見(jiàn)的時(shí)間戳格式包括Unix時(shí)間戳(以1970年1月1日00:00:00 UTC作為起點(diǎn))和Windows文件時(shí)間戳(以1601年1月1日00:00:00 UTC作為起點(diǎn))。
連接池
連接池是一個(gè)用于存儲(chǔ)和管理數(shù)據(jù)庫(kù)連接管理技術(shù)。在一個(gè)應(yīng)用程序中,多次請(qǐng)求需要使用相同的數(shù)據(jù)庫(kù)連接,連接池負(fù)責(zé)維護(hù)這些連接,確保在整個(gè)應(yīng)用程序執(zhí)行期間,每個(gè)請(qǐng)求都有一個(gè)已建立的連接。它可以提高應(yīng)用程序的性能和效率,以減少建立和關(guān)閉數(shù)據(jù)庫(kù)連接的開(kāi)銷(xiāo),提高系統(tǒng)性能。
私有化
服務(wù)私有化是指將公共或共享的服務(wù)轉(zhuǎn)變?yōu)橛蓡我粚?shí)體擁有和控制的過(guò)程。通常,這種轉(zhuǎn)變涉及到將服務(wù)的運(yùn)營(yíng)、管理和財(cái)務(wù)責(zé)任轉(zhuǎn)移給私人部門(mén)。服務(wù)私有化的目的是提高效率、降低成本和改善服務(wù)質(zhì)量。
集群模式
服務(wù)集群模式是一種分布式系統(tǒng)架構(gòu)模式,用于實(shí)現(xiàn)高可用性和可伸縮性。在這種模式中,一個(gè)服務(wù)被部署到多個(gè)服務(wù)器上,這些服務(wù)器共同組成一個(gè)集群。每個(gè)服務(wù)器都可以處理一部分或全部的請(qǐng)求負(fù)載,從而提高系統(tǒng)的性能和可靠性。
服務(wù)集群模式通常包括以下幾種實(shí)現(xiàn)方式:
- 負(fù)載均衡器:用于將請(qǐng)求均勻地分配給不同的服務(wù)器,從而實(shí)現(xiàn)負(fù)載均衡。
- 服務(wù)注冊(cè)與發(fā)現(xiàn):服務(wù)在啟動(dòng)時(shí)向注冊(cè)中心注冊(cè)自己的信息,例如IP地址、端口和服務(wù)名稱(chēng)等,服務(wù)之間通過(guò)注冊(cè)中心互相發(fā)現(xiàn)和通信。
- 健康檢查:定期檢查服務(wù)的健康狀況,例如服務(wù)是否正常運(yùn)行、是否響應(yīng)請(qǐng)求等。如果服務(wù)出現(xiàn)故障,則會(huì)被標(biāo)記為不可用,從而避免將請(qǐng)求發(fā)送到故障節(jié)點(diǎn)上。
- 數(shù)據(jù)分片:將數(shù)據(jù)分成多個(gè)部分,每個(gè)部分存儲(chǔ)在不同的服務(wù)器上,從而實(shí)現(xiàn)數(shù)據(jù)的分布式管理和訪問(wèn)。
- 容錯(cuò)機(jī)制:當(dāng)某個(gè)服務(wù)節(jié)點(diǎn)發(fā)生故障時(shí),系統(tǒng)可以自動(dòng)將請(qǐng)求轉(zhuǎn)發(fā)到其他可用節(jié)點(diǎn)上,從而保證系統(tǒng)的可用性。
- 服務(wù)注冊(cè)與發(fā)現(xiàn):服務(wù)節(jié)點(diǎn)在啟動(dòng)時(shí)需要向注冊(cè)中心注冊(cè)自己的地址信息,其他節(jié)點(diǎn)可以通過(guò)注冊(cè)中心查詢到可用的服務(wù)節(jié)點(diǎn)列表。
- 配置管理:為了保證所有服務(wù)節(jié)點(diǎn)的配置一致,需要有一個(gè)專(zhuān)門(mén)的配置管理系統(tǒng)來(lái)集中管理和分發(fā)配置信息。
- 數(shù)據(jù)庫(kù)復(fù)制:為了確保數(shù)據(jù)的可用性和一致性,集群中的數(shù)據(jù)庫(kù)可以進(jìn)行復(fù)制。當(dāng)一個(gè)節(jié)點(diǎn)發(fā)生變化時(shí),這些變化可以同步到其他節(jié)點(diǎn),確保整個(gè)集群的數(shù)據(jù)是一致的。
- 分布式計(jì)算:通過(guò)將任務(wù)分解為多個(gè)子任務(wù),并在集群中的多個(gè)節(jié)點(diǎn)上并行處理,可以實(shí)現(xiàn)分布式計(jì)算。這種方式可以提高計(jì)算速度,因?yàn)榇罅康挠?jì)算任務(wù)可以在短時(shí)間內(nèi)完成。
- 高可用性:通過(guò)配置冗余節(jié)點(diǎn)和自動(dòng)故障切換,集群可以實(shí)現(xiàn)高可用性。當(dāng)一個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),其他節(jié)點(diǎn)可以自動(dòng)接管它的任務(wù),確保服務(wù)不會(huì)中斷。
鏈路追蹤
鏈路追蹤(distributed tracing)是分布式系統(tǒng)中跟蹤和分析請(qǐng)求在系統(tǒng)中的運(yùn)行情況和性能問(wèn)題的技術(shù)。在分布式系統(tǒng)中,一次請(qǐng)求可能涉及多個(gè)微服務(wù)的協(xié)同工作,鏈路追蹤能夠幫助我們更好地了解整個(gè)請(qǐng)求的流程,診斷問(wèn)題、優(yōu)化性能。
鏈路追蹤的核心思想是將請(qǐng)求的跟蹤信息在整個(gè)請(qǐng)求鏈路中傳遞,這樣可以將請(qǐng)求的調(diào)用過(guò)程串聯(lián)起來(lái),形成一個(gè)完整的請(qǐng)求鏈路,從而快速定位出問(wèn)題所在。鏈路追蹤的實(shí)現(xiàn)通常分為四個(gè)階段:生成追蹤信息、傳遞追蹤信息、收集追蹤信息、分析追蹤信息。
降級(jí)策略
降級(jí)策略是在系統(tǒng)或服務(wù)面臨壓力或異常情況下,為了保障系統(tǒng)的穩(wěn)定性和可用性,采取的一種降低系統(tǒng)負(fù)載、避免系統(tǒng)崩潰或延遲響應(yīng)的措施。降級(jí)策略通常包括以下幾種:
限流策略
通過(guò)對(duì)系統(tǒng)的訪問(wèn)量進(jìn)行限制,避免系統(tǒng)承受不住大量請(qǐng)求而崩潰。限流可以通過(guò)令牌桶、漏桶等算法實(shí)現(xiàn)。
降級(jí)策略
當(dāng)系統(tǒng)出現(xiàn)異?;驂毫^(guò)大時(shí),降低部分功能或服務(wù)的運(yùn)行級(jí)別,以減輕系統(tǒng)負(fù)擔(dān)。降級(jí)可以是針對(duì)單個(gè)服務(wù)、模塊或者整個(gè)系統(tǒng),可以根據(jù)業(yè)務(wù)需求和優(yōu)先級(jí)進(jìn)行選擇。
熔斷策略
服務(wù)熔斷是指在分布式系統(tǒng)中,當(dāng)某個(gè)服務(wù)出現(xiàn)故障或者超負(fù)荷時(shí),為了防止整個(gè)系統(tǒng)的崩潰,可以暫時(shí)停止對(duì)該服務(wù)的調(diào)用,并返回一個(gè)錯(cuò)誤信息或默認(rèn)值。這樣可以讓其他部分的服務(wù)正常運(yùn)行,并且避免了因該服務(wù)的故障而影響到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性,可以很好地避免因某個(gè)服務(wù)出現(xiàn)故障導(dǎo)致整個(gè)系統(tǒng)崩潰的情況。
資源隔離
將系統(tǒng)中的不同部分進(jìn)行隔離,避免故障傳播和影響。例如,在分布式系統(tǒng)中,可以使用隔離策略將不同服務(wù)的數(shù)據(jù)和資源分開(kāi),以降低故障影響范圍。
負(fù)載均衡
通過(guò)將系統(tǒng)負(fù)載分配到多個(gè)處理單元上,提高系統(tǒng)的處理能力和可用性。負(fù)載均衡可以采用硬件設(shè)備、軟件實(shí)現(xiàn)或分布式系統(tǒng)架構(gòu)等方式。
彈性伸縮
根據(jù)系統(tǒng)的實(shí)時(shí)運(yùn)行狀況,動(dòng)態(tài)調(diào)整系統(tǒng)資源,以滿足業(yè)務(wù)需求。彈性伸縮通常包括自動(dòng)擴(kuò)展和自動(dòng)收縮兩種策略,可以根據(jù)系統(tǒng)的負(fù)載、資源使用率等指標(biāo)進(jìn)行調(diào)整。
數(shù)據(jù)緩存
對(duì)于非實(shí)時(shí)性要求較高的數(shù)據(jù),可以采用緩存的方式提高響應(yīng)速度。
異步處理
對(duì)于一些耗時(shí)的操作,可以采用異步處理的方式,提高系統(tǒng)的響應(yīng)速度。
忽略次要功能
在系統(tǒng)壓力較大時(shí),可以選擇忽略一些次要的功能,關(guān)閉一些不重要的功能或服務(wù),以減輕系統(tǒng)負(fù)擔(dān),保證主要功能的正常運(yùn)行。
手動(dòng)干預(yù)
在必要的情況下,可以通過(guò)手動(dòng)干預(yù)的方式,如人工調(diào)整系統(tǒng)參數(shù)、重啟服務(wù)等,來(lái)恢復(fù)系統(tǒng)的正常運(yùn)行。
CDN基礎(chǔ)知識(shí)
CDN
CDN的全稱(chēng)是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。其實(shí)現(xiàn)是通過(guò)在現(xiàn)有的Internet中增加一層新的網(wǎng)絡(luò)架構(gòu),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)"邊緣",這些“邊緣”一般稱(chēng)為“邊緣節(jié)點(diǎn)”或“CDN節(jié)點(diǎn)”。利用這些節(jié)點(diǎn),使用戶可以就近取得所需的內(nèi)容,解決Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問(wèn)網(wǎng)站的響應(yīng)速度。從技術(shù)層面,解決了網(wǎng)絡(luò)帶寬小,用戶訪問(wèn)量大,網(wǎng)點(diǎn)分布不均等原因所造成的用戶訪問(wèn)網(wǎng)站響應(yīng)速度慢的問(wèn)題。
源站
源站就是“源頭的站點(diǎn)“,也就是CDN上面的資源,最初來(lái)自哪里。對(duì)我們業(yè)務(wù)來(lái)說(shuō),源站一般是指KS3,服務(wù)器(不建議)等。
回源
服務(wù)的回源,一般是指在內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)或者代理服務(wù)器等場(chǎng)景下,當(dāng)用戶請(qǐng)求到達(dá)服務(wù)端時(shí),如果服務(wù)端本身沒(méi)有該請(qǐng)求的內(nèi)容,那么就會(huì)向原始的數(shù)據(jù)源服務(wù)器發(fā)起請(qǐng)求獲取數(shù)據(jù),這個(gè)過(guò)程就叫做回源。回源的目的主要是為了保證用戶能夠獲取到最新的、最準(zhǔn)確的數(shù)據(jù)。
當(dāng)用戶訪問(wèn)CDN一個(gè)圖片時(shí),于是就跑到”源站“去找那張圖片,找到后,就給用戶返回,并在本地緩存住。下次再有訪問(wèn)請(qǐng)求過(guò)來(lái),直接就返回緩存的圖片。
這就是”源站“的作用了,上面的過(guò)程,就是”回源“。大致的流程是 “用戶 --> CDN服務(wù)器 --> 源站”。
?
測(cè)試術(shù)語(yǔ)
斷言
測(cè)試所說(shuō)的斷言是用于驗(yàn)證測(cè)試結(jié)果是否符合預(yù)期的一種技術(shù)或方法。在測(cè)試中,斷言通常用于檢查程序的輸出、行為或狀態(tài)是否滿足預(yù)期的條件。斷言可以通過(guò)比較實(shí)際結(jié)果與預(yù)期結(jié)果來(lái)判斷測(cè)試是否通過(guò)。如果斷言驗(yàn)證失敗,即實(shí)際結(jié)果與預(yù)期結(jié)果不一致,測(cè)試將被標(biāo)記為失敗或錯(cuò)誤。
枚舉
在軟件測(cè)試中,枚舉通常指一種特定類(lèi)型的測(cè)試數(shù)據(jù)。它是一種將所有可能的值列舉出來(lái)并進(jìn)行測(cè)試的方法。在枚舉測(cè)試中,測(cè)試人員會(huì)嘗試所有可能的輸入值或狀態(tài),以確保軟件系統(tǒng)能夠正確地響應(yīng)每個(gè)情況。
冥等
在軟件工程中,冥等(Idempotent)是指一個(gè)操作無(wú)論執(zhí)行多少次,結(jié)果都是一樣的。換句話說(shuō),重復(fù)執(zhí)行一個(gè)冥等操作不會(huì)產(chǎn)生任何額外的影響。在測(cè)試中,"冥等"(Idempotence)是指一個(gè)操作不論執(zhí)行多少次,結(jié)果都是一樣的。比如,如果你有一個(gè)刪除用戶的功能,如果這個(gè)用戶已經(jīng)不存在了,那么無(wú)論你嘗試刪除多少次,結(jié)果都是相同的:用戶仍然不存在。
慢查
慢查是指在數(shù)據(jù)庫(kù)查詢中,查詢速度較慢的情況。這可能是由于多種原因?qū)е碌?,例如查詢的?shù)據(jù)量較大、查詢語(yǔ)句復(fù)雜度高、數(shù)據(jù)庫(kù)性能不足等,包括但不限于以下幾點(diǎn):
- 數(shù)據(jù)庫(kù)索引問(wèn)題:如果數(shù)據(jù)庫(kù)表沒(méi)有正確地創(chuàng)建索引,查詢時(shí)需要遍歷整個(gè)表來(lái)查找匹配的記錄,導(dǎo)致查詢速度變慢。
- 查詢語(yǔ)句問(wèn)題:查詢語(yǔ)句的編寫(xiě)不合理,例如沒(méi)有使用到索引、使用了過(guò)多的JOIN操作等,都會(huì)導(dǎo)致查詢速度下降。
- 數(shù)據(jù)庫(kù)表結(jié)構(gòu)問(wèn)題:如果數(shù)據(jù)庫(kù)表的結(jié)構(gòu)設(shè)計(jì)不合理,例如表中包含過(guò)多的冗余字段、字段類(lèi)型選擇不當(dāng)?shù)龋紩?huì)導(dǎo)致查詢速度降低。
- 數(shù)據(jù)庫(kù)服務(wù)器負(fù)載問(wèn)題:如果數(shù)據(jù)庫(kù)服務(wù)器的負(fù)載過(guò)高,例如同時(shí)有大量的查詢操作,會(huì)導(dǎo)致每個(gè)查詢的響應(yīng)時(shí)間變長(zhǎng)。
解決慢查問(wèn)題可以從以下幾個(gè)方面入手:
- 優(yōu)化查詢語(yǔ)句:通過(guò)合理地編寫(xiě)查詢語(yǔ)句,使用索引、避免不必要的JOIN操作等,提升查詢效率。
- 優(yōu)化數(shù)據(jù)庫(kù)表結(jié)構(gòu):對(duì)于表結(jié)構(gòu)不合理的情況,可以考慮重新設(shè)計(jì)表結(jié)構(gòu),減少冗余字段、選擇適當(dāng)?shù)淖侄晤?lèi)型等。
- 創(chuàng)建合適的索引:根據(jù)查詢需求,創(chuàng)建合適的索引,以加快查詢速度。
- 升級(jí)硬件設(shè)備:如果數(shù)據(jù)庫(kù)服務(wù)器的負(fù)載過(guò)高,可以考慮升級(jí)硬件設(shè)備,提升服務(wù)器的處理能力。
- 數(shù)據(jù)庫(kù)性能監(jiān)控:定期監(jiān)控?cái)?shù)據(jù)庫(kù)性能,及時(shí)發(fā)現(xiàn)慢查詢問(wèn)題,并進(jìn)行相應(yīng)的優(yōu)化處理。
災(zāi)備
服務(wù)災(zāi)備是指通過(guò)構(gòu)建備份系統(tǒng)或備用服務(wù)設(shè)施,在主服務(wù)系統(tǒng)出現(xiàn)故障或網(wǎng)絡(luò)故障、自然災(zāi)害等不可抗力因素導(dǎo)致服務(wù)不可用時(shí),通過(guò)預(yù)先設(shè)定的備用方案,能夠迅速切換到備份系統(tǒng)或備用服務(wù)設(shè)施,保證服務(wù)的連續(xù)性和穩(wěn)定性。
熱更
服務(wù)的熱更新是指在不停止服務(wù)或中斷服務(wù)的情況下,對(duì)正在運(yùn)行的服務(wù)進(jìn)行代碼更新和功能升級(jí)。它可以提高服務(wù)的靈活性、可靠性和可維護(hù)性。
吞吐量
在性能測(cè)試中,吞吐量是指系統(tǒng)或應(yīng)用程序在一定時(shí)間內(nèi)能夠處理的并發(fā)請(qǐng)求或事務(wù)數(shù)量。它是衡量系統(tǒng)性能的重要指標(biāo)之一。
吞吐量可以用來(lái)評(píng)估系統(tǒng)的負(fù)載能力和處理能力。通過(guò)測(cè)試系統(tǒng)在不同負(fù)載下的吞吐量,可以確定系統(tǒng)的承載能力和性能瓶頸。在性能測(cè)試中,吞吐量通常以每秒鐘(TPS)或每分鐘(TPM)處理的事務(wù)數(shù)量來(lái)衡量。較高的吞吐量表示系統(tǒng)能夠處理更多的請(qǐng)求或事務(wù),即具有更高的處理能力。需要關(guān)注的指標(biāo)包括最大吞吐量、平均吞吐量、響應(yīng)時(shí)間、錯(cuò)誤率等。其中,最大吞吐量是指系統(tǒng)在一定壓力下能夠處理的最大請(qǐng)求數(shù)量,平均吞吐量是指系統(tǒng)在一定時(shí)間內(nèi)平均處理的請(qǐng)求數(shù)量。響應(yīng)時(shí)間是指系統(tǒng)對(duì)請(qǐng)求的響應(yīng)時(shí)間,包括請(qǐng)求到達(dá)系統(tǒng)到系統(tǒng)返回結(jié)果的時(shí)間。錯(cuò)誤率是指系統(tǒng)處理請(qǐng)求時(shí)發(fā)生錯(cuò)誤的比率。
單元測(cè)試
單元測(cè)試是對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證。對(duì)于函數(shù)、方法或類(lèi)這樣的程序組件,單元就是它們本身;而對(duì)于整個(gè)模塊,單元可能就是多個(gè)相關(guān)的函數(shù)、方法或類(lèi)。
錄制回放
測(cè)試的錄制回放是指將測(cè)試過(guò)程中的操作步驟和結(jié)果記錄下來(lái),以便在后續(xù)測(cè)試過(guò)程中重放這些操作,以驗(yàn)證應(yīng)用程序或網(wǎng)站的功能和性能是否符合預(yù)期。
越權(quán)訪問(wèn)
如果需要授權(quán)訪問(wèn)的頁(yè)面沒(méi)有做會(huì)話合法判斷和權(quán)限判斷,一但被攻擊者知道訪問(wèn)地址將可以直接訪問(wèn),導(dǎo)致越權(quán)訪問(wèn)。
"對(duì)于每一個(gè)需要鑒權(quán)的接口,檢查用戶是否被授權(quán)執(zhí)行該操作,是否存在越權(quán)校驗(yàn)了會(huì)話的合法性,并不能保證當(dāng)前用戶可以執(zhí)行此操作,還需要確認(rèn)用戶的角色。
縱向越權(quán)
縱向越權(quán)指在安全測(cè)試中,攻擊者通過(guò)利用系統(tǒng)中的漏洞或弱點(diǎn),從一個(gè)權(quán)限級(jí)別跨越到更高的權(quán)限級(jí)別,獲取未授權(quán)的訪問(wèn)權(quán)限或執(zhí)行未授權(quán)的操作。這種攻擊方式通常涉及跳過(guò)或繞過(guò)系統(tǒng)的訪問(wèn)控制機(jī)制,以獲取對(duì)系統(tǒng)資源的未授權(quán)訪問(wèn)。
橫向越權(quán)
橫向越權(quán)指在安全測(cè)試中,攻擊者通過(guò)利用系統(tǒng)中的漏洞或弱點(diǎn),從一個(gè)用戶或角色跨越到另一個(gè)用戶或角色,獲取未授權(quán)的訪問(wèn)權(quán)限或執(zhí)行未授權(quán)的操作。這種攻擊方式通常涉及繞過(guò)系統(tǒng)的身份驗(yàn)證和授權(quán)機(jī)制,以獲取其他用戶或角色的權(quán)限,從而訪問(wèn)其他用戶的數(shù)據(jù)或執(zhí)行其他用戶的操作。橫向越權(quán)攻擊通常發(fā)生在多用戶環(huán)境中,如企業(yè)內(nèi)部網(wǎng)絡(luò)或Web應(yīng)用程序中的用戶角色。
故障演練
服務(wù)故障演練是指在服務(wù)發(fā)生故障時(shí),對(duì)故障進(jìn)行模擬演練,以便在真實(shí)故障發(fā)生時(shí),能夠快速有效地應(yīng)對(duì)。服務(wù)故障演練可以幫助企業(yè)發(fā)現(xiàn)服務(wù)故障的潛在風(fēng)險(xiǎn),并制定相應(yīng)的預(yù)案。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-843697.html
混沌測(cè)試
混沌測(cè)試是一種軟件測(cè)試方法,旨在通過(guò)故意引入系統(tǒng)中的不確定性和混亂,來(lái)評(píng)估系統(tǒng)的穩(wěn)定性和可靠性。這種測(cè)試方法的主要目的是在系統(tǒng)面臨各種異常和故障情況時(shí),觀察系統(tǒng)的反應(yīng)和行為,以便及早發(fā)現(xiàn)系統(tǒng)的潛在問(wèn)題和薄弱環(huán)節(jié)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-843697.html
到了這里,關(guān)于服務(wù)端常用概念/術(shù)語(yǔ)匯總的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!