微服務知識小結

1. SOA、分布式、微服務之間有什么關系和區別?

1.分布式架構指將單體架構中的各個部分拆分,然后部署到不同的機器或進程中去,SOA和微服務基本上都是分布式架構的
2. SOA是一種面向服務的架構,系統的所有服務都注冊在總線上,當調用服務時,從總線上查找服務信息,然后調用
3.微服務是一種更徹底的面向服務的架構,將系統中各個功能個體抽成一個個小的應用程序,基本保持一個應用對應的一個服務的架構
SpringCloudAlibaba架構
在這里插入圖片描述

2.微服務間的通信方式

1.同步通信:微服務之間通過請求-響應的方式進行通信,例如RESTful API和RPC。通信過程中,請求方需要等待響應方的返回結果,因此可靠性較高,但可能會出現請求排隊、線程阻塞等問題,從而影響系統的響應速度和并發性能。
2.異步通信:微服務之間通過消息隊列進行異步通信,例如Kafka和RabbitMQ。通信過程中,發送方向消息隊列發送消息,接收方從消息隊列中消費消息,消息傳輸以異步的方式進行,不需要等待接收方的響應。由于解耦性高,消息隊列還可以支持發布-訂閱模式,消息得以廣播到多個服務中,助于構建高可伸縮的系統。不過異步通信也可能導致延遲較高,以及可靠性和容錯性較差等問題。
3.事件驅動架構(EDA):微服務之間通過發布-訂閱模式進行通信,例如Apache Kafka和AWS SNS/SQS。通信過程中,發布者發布事件,訂閱者訂閱事件,事件傳遞以異步的方式進行。通過EDA,不同服務之間可以實現松耦合通信,提高系統的可伸縮性和彈性,但需要謹慎處理網絡分區等極端情況,以避免出現一致性等問題。

3.微服務架構常用組件

在這里插入圖片描述
在這里插入圖片描述

Spring Cloud常用組件及其簡要介紹:

Eureka:服務注冊與發現組件,可以通過RESTFUL接口來實現服務注冊與發現,并提供心跳檢測機制來保證服務可用性。

Ribbon:客戶端的負載均衡組件,可以集成到RestTemplate、Feign等HTTP客戶端中使用。

Feign:基于Ribbon和Hystrix的聲明式服務調用組件,可以讓我們更方便地實現服務之間的調用。

Hystrix:熔斷器組件,可以在服務出現故障或異常時進行自動熔斷,避免服務雪崩問題。

Zuul:API網關組件,可以對外部請求進行統一的路由、過濾和轉發。

Config:分布式配置中心組件,可以將應用程序的配置信息集中管理,并支持動態刷新配置。

Bus:消息總線組件,可以用于在分布式系統中傳遞事件消息,如配置更新事件、狀態變更事件等。

Stream:數據流處理組件,可以幫助我們從消息中間件中讀取、處理和發送消息。

Sleuth:分布式跟蹤組件,可以追蹤請求在微服務架構中的傳遞過程,幫助我們快速定位問題根源。

Zipkin:分布式跟蹤系統,可以用于聚合、可視化和分析分布式系統中的調用鏈路信息。

以上是Spring Cloud的一些常用組件,每個組件都有其獨特的特點和功能,可以根據具體業務場景選擇使用。

Spring Cloud Alibaba常用組件及其簡要介紹:

Nacos:服務注冊與發現、配置管理、流量管理平臺,可以替代Eureka、Config、Ribbon等組件。

Sentinel:流量控制、熔斷降級、系統負載保護等組件,可以替代Hystrix。

Dubbo:高性能Java RPC框架,可以用于實現微服務之間的遠程調用。

RocketMQ:分布式消息中間件,支持消息的廣播、點對點傳輸、順序傳輸等模式。

Seata:分布式事務解決方案,可以保證跨多個數據庫或跨多個服務的操作的一致性和完整性。

Alibaba Cloud SDK:阿里云服務API的封裝,包括云服務器、對象存儲、關系型數據庫等。

Alibaba Cloud OSS:阿里云對象存儲服務,可以用于存儲靜態資源文件。

Alibaba Cloud RDS:阿里云關系型數據庫服務,可以提供MySQL、SQL Server、PostgreSQL等數據庫實例。

Alibaba Cloud ACM:阿里云配置管理服務,可以實現應用程序的動態配置。

以上是Spring Cloud Alibaba的一些常用組件,每個組件都有其獨特的特點和功能,可以根據具體業務場景選擇使用。同時,Spring Cloud Alibaba也與Spring Cloud組件進行了無縫集成,提供了更加完備的微服務解決方案。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166523.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166523.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166523.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

讓工作效率提升10倍:十大AIGC工具評測【建議收藏】

AI技術的普及已經在近年來不斷增長。這種技術已經改變了我們與電腦的互動方式,讓我們能夠更高效、更自然地完成任務。本文將展示10個基于ChatGPT、GPT-3.5和 GPT-4.0 AI模型構建的最強大的資源,使您更容易充分利用它們的潛力。因此,如果您想利…

詳解深度學習中的圖神經網絡GNN

引言 圖神經網絡GNN是深度學習的一個分支。 深度學習的四個分支對應了四種常見的數據格式,前饋神經網絡FNN處理表格數據,表格數據可以是特征向量,卷積神經網絡CNN處理圖像數據,循環神經網絡RNN處理時序數據,圖神經網…

android的canvas的clipRegion廢棄替代代碼

由于clipRegion的一些問題,導致他被廢棄了,但又有時候會用到,所以寫了一個工具類來替代它 代碼如下 package com.example;import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; import android.g…

c++|類和對象(上)

目錄 一、面向過程和面向對象初步認識 二、類的引入和定義 2.1類的引入 2.2類的定義 三、類的訪問限定符及封裝 3.1訪問限定符 3.2封裝 四、類的作用域 五、類的實例化 六、類的對象大小的計算 6.1如何計算對象的大小 6.2類對象的存儲方式 七、類成員函數的thi…

【Docker】從零開始:7.Docker命令:容器命令及參數詳解

【Docker】從零開始:7.幫助啟動類命令 一、幫助啟動類命令啟動Docker停止Docker重啟Docker查看Docker狀態開機啟動查看docker概要信息查看docker總體幫助文檔查看docker命令幫助文檔 二、鏡像命令列出本地主機上的鏡像運行示例返回說明操作參數 搜索倉庫里的某個鏡像…

Python-Django的“日志功能-日志模塊(logging模塊)-日志輸出”的功能詳解

01-綜述 可以使用Python內置的logging模塊來實現Django項目的日志記錄。 所以與其說這篇文章在講Django的“日志功能-日志模塊-日志輸出”,不如說是在講Pthon的“日志功能-日志模塊-日志輸出”,即Python的logging模塊。 下面用一個實例來進行講解。 …

2023年亞太杯數學建模A題水果采摘機器人的圖像識別功能(免費思路)

中國是世界上最大的蘋果生產國,年產量約為 3500 萬噸。同時,中國也是世界上最大的蘋果出口國,世界上每兩個蘋果中就有一個出口到國。世界上每兩個蘋果中就有一個來自中國,中國出口的蘋果占全球出口量的六分之一以上。來自中國。中…

保護服務器免受攻擊:解析攻擊情境與解決之道

在數字化時代,服務器安全問題日益突出,因為它們是企業和個人網絡活動的核心。服務器被攻擊可能引發一系列問題,理解攻擊的不同情境以及采取相應的解決方法變得至關重要。 DDoS 攻擊(分布式拒絕服務攻擊) 情境&#xff…

基于51單片機超聲波測距汽車避障系統

**單片機設計介紹, 基于51單片機超聲波測距汽車避障系統 文章目錄 一 概要二、功能設計設計思路 三、 軟件設計原理圖 五、 程序六、 文章目錄 一 概要 基于51單片機的超聲波測距汽車避障系統是一種用于幫助汽車避免碰撞和發生事故的設備,以下是一個基本…

Visual Studio 2022安裝教程(千字圖文詳解),手把手帶你安裝運行VS2022以及背景圖設置

VS2022最新最全安裝教程 很高興你打開了這篇博客,接下來我們一起安裝并且使用VS2022吧 文章目錄 VS2022最新最全安裝教程一.官網下載二.安裝啟動三.項目測試1.創建新項目2.選擇我們使用的模板(C空項目),繼續沖!3.進入…

docker的使用方法

文章目錄 為什么要用dockerdocker安裝docker工作原理docker命令docker搭建練習docker可視化docker鏡像docker容器數據卷DockerFiledocker全流程Docker網絡原理docker composedocker swarm 為什么要用docker 官網:https://www.docker.com文檔地址:https:…

Stream流開發常用場景

一、Stream流 1.將某個集合中的金額字段相加 Bigdecimal amount list.stream().map(TransInfoEntity::getAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); 2.將集合中某兩個字段組合成一個map Map<Long, String> map list.stream().collect(Collectors.t…

ImgUtil.scale會在某些圖片壓縮之后自動旋轉90度

需要的jar依賴&#xff1a; <dependency> <groupId>com.drewnoakes</groupId> <artifactId>metadata-extractor</artifactId> <version>2.16.0</version> <!-- 請檢查最新版本 …

ceph編譯報錯解決

1.執行./install-deps.sh提示deb無法安裝 解決方案&#xff1a; 直接使用dpkg -i來安裝deb&#xff0c;會提示缺失3個庫&#xff0c;庫名如下&#xff1a; cython python dh-systemd 其中cython和python手動安裝好后&#xff0c;也會依舊報錯。此時修改debian/control文件&…

系列五、聲明式事務(xml方式)

一、概述 聲明式事務(declarative transaction management)是Spring提供的對程序事務管理的一種方式&#xff0c;Spring的聲明式事務顧名思義就是采用聲明的方式來處理事務。這里所說的聲明&#xff0c;是指在配置文件中聲明&#xff0c;用在Spring配置文件中聲明式的處理事務來…

搞笑的客服日常,今天遇到的曬白客服,你遇到過嗎?

大家看看這個 https://blog.csdn.net/a871923942/article/details/129778391?utm_mediumdistribute.pc_feed_404.none-task-blog-2 今天遇到傻逼審核 開頭第一句就使用快捷話術 客服感覺自己發錯了 然后就撤回消息 第二次繼續發話術&#xff0c;說違規&#xff0c;審核不通過…

案例015:Java+SSM+uniapp基于微信小程序的校園防疫系統

文末獲取源碼 開發語言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 數據庫&#xff1a;mysql 5.7 開發軟件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序開發軟件&#xff1a;HBuilder X 小程序…

互聯網上門洗鞋店小程序

上門洗鞋店小程序門店版是基于原平臺版進行增強的&#xff0c;結合洗鞋行業的線下實際運營經驗和需求&#xff0c;專為洗鞋人和洗鞋店打造的高效、實用、有價值的管理軟件系統。 它能夠幫助洗鞋人建立自己的私域流量&#xff0c;實現會員用戶管理&#xff0c;實現用戶與商家的點…

【SpringCloud】微服務架構設計模式

一、聚合氣微服務設計模式 最常見、最簡單的設計模式&#xff0c;效果如圖所示&#xff1a; 聚合器調用多個服務實現應用程序所需的功能 它可以是一個簡單的 Web 頁面&#xff0c;將檢索到的數據進行處理并展示&#xff0c;也可以是一個更高層次的組合微服務&#xff0c;對…