主頁 > 軟體設計 > OpenStack

OpenStack

2020-12-12 12:25:17 軟體設計

文章目錄

什么是云計算
基于互聯網的相關服務的增加、使用和交付模式

這種模式提供可用的、便捷的、按需的網路訪問,迚入可配置的計算資源共享池
這些資源能夠被快速提供,只需投入很少的管理作業,戒不服務供應商迚行很少的互動
通常涉及通過互聯網來提供勱態易擴展且經常是虛擬化的資源

云計算服務模型
一、IaaS
IaaS是Infrastructure as a server的縮寫,意思是基礎設施即服務,云端公司把IT環境的基礎設施建設好,然后直接對外出租硬體服務器或者虛擬機,消費者可以利用所有計算基礎設施,包括處理CPU、記憶體、存盤、網路和其它基本的計算資源,用戶能夠部署和運行任意軟體,包括作業系統和應用程式,消費者不管理或控制任何云計算基礎設施,但能控制作業系統的選擇、存盤空間、部署的應用,也有可能獲得有限制的網路組件(例如路由器、防火墻、負載均衡器等)的控制,如下圖所示:
在這里插入圖片描述
云端公司一般都會有一個自助網站,用戶可以向云端公司簽訂租賃協議以獲取一個賬號,登錄之后可以管理自己的計算設備:開關機、安裝作業系統、安裝應用軟體等,

Iaas優缺點:
IaaS型租用方式對用戶來說優點很明顯,就是非常靈活,也是自由度最大的一種型別,用戶可以決定安裝什么作業系統,以及是否需要安裝或者安裝什么型別的資料庫,安裝什么軟體等等,就像自己買了臺電腦,如何使用是你全權做主,
不過缺陷也很明顯,除了管理維護量大之外,還有一個缺陷就是:計算資源嚴重浪費,作業系統、資料庫以及中間件本身就要消耗大量的計算資源,而這些消耗對于租戶而已是必須的但是又是無用的,因為用戶只是想要運行軟體,

二、PaaS
PaaS是Platform as a Server的縮寫,意思是平臺即服務,即把運行用戶所需的軟體的平臺作為服務出租,如下圖所示:
在這里插入圖片描述
云端公司要做事情就是運行軟體所需要的下7層部署完畢,然后再PssS上劃分小塊(習慣稱之為容器)對外出租,租戶只需要安裝和使用軟體就可以了,
平臺軟體層包括作業系統、資料庫、中間件和運行庫,但是并不是每一個軟體都需要這4部分的支持,需要什么是由軟體決定的,所以PaaS又分為2種,半平臺PaaS和全平臺PaaS,
1、半平臺PaaS:只安裝作業系統,其他的租戶自己去解決,這樣會比較麻煩,因為你需要有較強的技術實力,而且需要耗費部分資源去安裝軟體運行需要的、的中間件、運行庫、資料庫,
2、全平臺PaaS:安裝應用軟體依賴的全部平臺軟體,也就是4部分全部準備完畢,不過大家也知道,世界上的應用軟體如此龐大,支撐他們的語言、資料庫、中間件、運行庫可能都不一樣,PaaS云端公司不可能全部都去安裝,所以他們支持的軟體是有限的,
相對于IaaS來說,PaaS租戶的靈活性降低了,只能在云端提供的有限平臺范圍內做軟體,但是優點也很明顯,能夠最大化利用租用的資源和不需要租戶有高深的IT技術,

三、SaaS
SaaS是Software as a Server的縮寫,意思是軟體即服務,把軟體租出去,用戶連安裝都不需要了,同樣來看圖:
在這里插入圖片描述
對比PaaS略微有一點不同,應用軟體是云端公司來安裝、運維的,租戶使用軟體,需要管理的是這些軟體產生的資料資訊,
一般來說SaaS適用的軟體都有如下的特點:
(1)復雜:軟體龐大、安裝復雜、使用復雜、運維復雜,單獨購買架構昂貴,例如ERP、CRM、BI等,
(2)模塊化:按功能模塊劃分,需要什么功能就組什么模塊,
(3)多租戶:多個企業用戶同時操作,使用同一個軟體而不是互相干擾,當然,資料是邏輯隔離的,不同用戶的資料檢索欄位之一必然是用戶身份資訊,
(4)多幣種多語言多時區的支持

四、DaaS
DaaS是Date as a Server的縮寫,意思是資料即服務,云端公司負責建立全部的IT環境,收集用戶需要的基礎資料并且做資料分析,最后對分析結構或者演算法提供編程介面,讓資料成為服務,
如圖:
在這里插入圖片描述
DaaS是大資料時代的象征,能做DaaS服務的云端公司需要從資料積累、資料分析和資料交付三方面積累自身的核心競爭力,

OpenStack概述
OpenStack是一個開源的云計算管理平臺專案,是一系列軟體開源專案的組合,由NASA(美國國家航空航天局)和Rackspace合作研發并發起,以Apache許可證(Apache軟體基金會發布的一個自由軟體許可證)授權的開源代碼專案,

OpenStack簡介
Openstack是一個云平臺管理的專案,它不是一個軟體,這個專案由幾個主要的組件組合起來完成一些具體的作業,Openstack是一個旨在為公共及私有云的建設與管理提供軟體的開源專案,它的社區擁有超過130家企業及1350位開發者,這些機構與個人將 Openstack作為基礎設施即服務資源的通用前端,Openstack專案的首要任務是簡化云的部署程序并為其帶來良好的可擴展性,本文希望通過提供必要的指導資訊,幫助大家利用 Openstack前端來設定及管理自己的公共云或私有云,

Openstack是由 Rackspace和NASA共同開發的云計算平臺,幫助服務商和企業內部實作類似于 Amazon ec2和S3的云基礎架構服務( Infrastructure as a Service), Openstack包括兩個主要模塊:Nova和 Swift,前者是NASA開發的虛擬服務器部署和業務計算模塊;后者是 Backpack開發的分布式云存盤模塊,兩者可以一起用,也可以分開單獨用, Openstack是開源專案,除了有 Rackspace和NASA的大力支持外,后面還有包括Dell、 Citrix、 Cisco Canonical這些重量級公司的貢獻和支持,發展速度非常快,有取代另一個業界領先開源云臺 Eucalyptus的態勢,

OpenStack發展歷程
Openstack專案雖然誕生時間不長,但其發展之迅速,在云計算領域的影響力擴展,使得這個年輕的專案成為業內所有人都不得不關注的焦點,

2010年 Openstack專案成立,該專案由美國國家航空航天局(NASA)和 Rackspace合作研發, Apache許可證開源目前為止共有以下版本:
1.Austin——Openstack發布的第一個版本,這是第一個開源的云計算平臺,
2.Bexar——Openstack發布的第二個版本,添加了IPv6的支持、影像傳遞技術,以及Hyper-V和Xen等虛擬服務器功能,
3. Catus——Openstack發布的第三個版本,添加了虛擬化功能、自動化功能以及一個服務目錄,
4. Diablo——Openstack發布的第四個版本,增加了新的圖形化用戶界面和統一身份識別管理系統,
5. Essex——Openstack發布的第五個版本,完善了 Keystone認證,洗掉了對 Windows Hyper-V支持的相關代碼,
6.Folsom——2012年9月 Open Stack發布的第六版, Folsom包括了 Nova swift、 Horizon Keystone、 Glance原有的五個子專案之外,又多增 Quantum和 Cinder兩項, Quantum支持了數個現有的虛擬網路套件,如 Open vSwitch、Ryu網路作業系統( Network Operation System,NOS)等,也包括了 Cisco、 Nicira和NEC等廠商提供的虛擬網路套件等, Quantun可以讓Open Stack的IaS平臺能采用軟體定義網路( Software Defined network,SDN)的技術,如OrperFlow,Cinder則加強了區塊( Block)與磁盤區( Volume)的儲存能力,
7.Grizly——2013年4月Open Stack基金會發布的第七個版本, Grizzly新增近230個新功能,涉及計算、存盤、網路和共享服務等方面,例如 Open Stack計算虛擬化-計算使用“Cells”管理分布式集群,使用“NoDB”主機架構,以減少對中央資料庫的依賴,
8.Havana——2013年10月 Open Stack基金會發布的第八個版本, Havana除了增加Open Stack Metering( Ceilometer)和 Open Stack Orchestration(Heat)兩個新組件外,還完成了400多個特性計劃,修補了3000多補丁,
9. Icehouse——2014年4月 Open Stack基金會發布的第九個版本,新版本提高了專案的穩定性與成熟度,提升用戶體驗的一致性,特別是針對存盤方面,聯合身份驗證將允許用戶通過相同認證資訊同時訪問 Open Stack私有云與共有云,新專案 Trove( DB as a service)現在已經成為版本中的組成部分,它允許用戶在 Open Stack環境中管理關系資料庫服務,
10.Juno——2014年10月 OpenStack基金會發布的第十個版本,新增包括圍繞 Hadoop和 Spark集群管理和監控的自動化服務和支持軟體開發、大資料分析和大規模應用架構在內的342個功能點,標志著 Open Stack正向大范圍支持的成熟云平臺快速前進,自 Openstack專案成立以來,超過200個公司加入了該專案,其中包括AT&T、AMD、 Cisco、Dell、IBM、 Intel、 Red hat等,目前參與 Openstack專案的開發人員有17000,來自139個國家,這一數字還在不斷增長中,來自咨詢機構 Forrester的分析表示, OpenStack已經逐步成為事實上( de facto)的基礎架構云(IaaS)標準,

OpenStack發展趨勢
盡管 Open Stack從誕生到現在已經變得日漸成熟,基本上已經能夠滿足云計算用戶的大部分的需求,但隨著云計算技術的發展, Open Stack必然也需要不斷地完善,Open Stack已經逐漸成為市場上主流的一個云計算平臺解決方案,結合業界的一般觀點和調查中關于 Open Stack用戶的意見, Open Stack需要完善的部分大體上可以歸納為以下幾個方面:
(1)增強動態遷移:雖然 Open Stack的Nova組件支持動態遷移,但實質上 Open Stack尚未實作真正意義上的動態遷移,在 Open Stack中因為沒有共存盤只能做塊遷移,共享遷移只能在有共享存盤的情況下才被使用,
(2)資料安全:安全問題一直是整個云計算行業的問題,盡管 Open Stack中存在對用戶身份資訊的驗證等安全措施,甚至劃分出可以單獨或合并表征安全信任等級的域,但隨著用戶需求的變化和發展,安全問題仍然不可小覷,
計費和資料監控:隨著 Open Stack在公有云平臺中的進一步部署,計費和監控成為公有云運營中的一個重要環節,云平臺的管理者和云計算服務的提供者必然會進一步開發Open Stack的商業價值,盡管 Open Stack中已經有 Ceilometer計量組件,通過它提供的API介面可以實作收集云計算里面的基本資料和其他資訊,但這項工程目前尚處于完善和測驗階段,還需要大量的技術人員予以維護和支持,

OpenStack作業流程
Open Stack的各個服務之間通過統一的REST風格的API呼叫,實作系統的松耦合,它內部組件的作業程序是一個有序的整體,諸如計算資源分配、控制調度、網路通信等都通過AMQP實作, Open Stack的上層用戶是程式員、一般用戶和 Horizon界面等模塊,這三者都是采用 Open Stack各個組件提供的API介面進行互動,而它們之間則是通過AMQP進行互相呼叫,它們共同利用底層的虛擬資源為上層用戶和程式提供云計算服務,

OpenStack管理流程
OpenStack既然是一個開源的云平臺專案,它的主要任務是給用戶提供IaaS服務,
QEMU
QEMU是一個純軟體的計算機硬體仿真器,通過單獨運行QEMU來模擬物理計算機,具有非常靈活和可移植的特點,利用它能夠達到使用軟體取代硬體的效果,
一般情況下,OpenStack可以部署在Ubuntu的Linux作業系統上,為了進一步提高QEMU的運行效率,往往會增加一個KVM硬體加速模塊,KVM內嵌在Linux作業系統內核之中,能夠直接參與計算機硬體的調度,這一點是QEMU所不具備的,一般的QEMU程式的執行必然要經程序式從用戶態向內核態的轉變,這必然會在一定程度上降低效率,所以QEMU雖然能夠通過轉換對硬體進行訪問,但在OpenStack中往往采用KVM進行輔助,使得OpenStack的性能表現得更為良好,
但需要說明的是KVM需要良好的硬體支持,有些硬體本身如果不支持虛擬化的時候,KVM則不能使用,

Libvirt
Libvirt是一個開源的、支持Linux下虛擬化工具的函式庫,實質上它就是為構建虛擬化管理工具的API函式,Libvirt是為了能夠更方便地管理平臺虛擬化技術而設計的開放源代碼的應用程式介面,它不僅提供了對虛擬化客戶機的管理,也提供了對虛擬化網路和存盤的管理,
最初的 Libvirt是只針對Xen而設計的一系列管理和調度Xen下的虛擬化資源的API函式,目前高版本的 Libvirt可以支持多種虛擬化方案,包括KVM、QEMU、Xen、 VMware、 VirtualBox等在內的平臺虛擬化方案,又支持 Openvz、LXC等 Linux容器虛擬化系統,還支持用戶態Linux(UML)的虛擬化,它能夠對虛擬化方案中的Hypervisor進行適配,讓底層 Hypervisor對上層用戶空間的管理工具可以做到完全透明,

OpenStack優勢
模塊松耦合:與其他開源軟體相比,OpenStack模塊分明,添加獨立功能的組件非常簡單,有時候,不需要通讀整個OpenStack的代碼,只需要了解其介面規范及API使用,就可以輕松地添加一個新的模塊
控制性:完全開源得平臺,提供API介面,方便與第三方技術集成
兼容性:OpenStack兼容其他公有云,方便用戶進行資料遷移
可擴展性:模塊化設計,可以通過橫向擴展,增加節點、添加資源
靈活性:OpenStack也需要不同的組件,但是OpenStack的組件安裝例外靈活,根據自己得需要建立相應基礎設施、增加集群規模,
二次開發容易:OpenStack發布的OpenStack API是Rest-full API,其他所有組件也是采種這種統一的規范,因此,基于OpenStack做二次開發,較為簡單,而其他3個開源軟體則由于耦合性太強,導致添加功能較為困難,
行業標準:眾多IT領軍企業已經加入到OpenStack專案

核心專案
OpenStack覆寫了網路、虛擬化、作業系統、服務器等各個方面,它是一個正在開發中的云計算平臺專案,根據成熟及重要程度的不同,被分解成核心專案、范訓專案,以及支持專案和相關專案,每個專案都有自己的委員會和專案技術主管,而且每個專案都不是一成不變的,范訓專案可以根據發展的成熟度和重要性,轉變為核心專案,以下為各項核心專案的解釋:
1、計算服務(Compute):Nova,一套控制器,用于為單個用戶或使用群組管理虛擬機實體的整個生命周期,根據用戶需求來提供虛擬服務,負責虛擬機創建、開機、關機、掛起、暫停、調整、遷移、重啟、銷毀等操作,配置CPU、記憶體等資訊規格,這是真正的執行部件,接受 DashBoard 發來的命令并完成具體的動作,自Austin版本集成到專案中,但是 Nova 不是虛擬機軟體,所以還需要虛擬機軟體(如 KVM、Xen、Hyper-v 等)配合,
2、物件存盤(Object Storage):Swift,一套用于在大規模可擴展系統中通過內置冗余及高容錯機制實作物件存盤的系統,允許進行存盤或者檢索檔案,可為Glance提供鏡像存盤,為Cinder提供卷備份服務,自Austin版本集成到專案中,是 NoSQL 資料庫,類似 HBase,為虛擬機提供非結構化資料存盤,它把相同的資料存盤在多臺計箅機上,以確保資料不會丟失,用戶可通過 RESTful 和 HTTP 型別的 API 來和它通信,這是實際的存盤專案,類似 Ceph,不過在 OpcnStack 具體實施時,人們更愿意采用 Ceph
3、鏡像服務(Image Service):Glance,一套虛擬機鏡像查找及檢索系統,支持多種虛擬機鏡像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有創建上傳鏡像、洗掉鏡像、編輯鏡像基本資訊的功能,自Bexar版本集成到專案中,
4、身份服務(Identity Service):Keystone,為OpenStack其他服務提供身份驗證、服務規則和服務令牌的功能,管理Domains、Projects、Users、Groups、Roles,自Essex版本集成到專案中,
5、網路&地址管理(Network):Neutron,提供云計算的網路虛擬化技術,為OpenStack其他服務提供網路連接服務,為用戶提供介面,可以定義Network、Subnet、Router,配置DHCP、DNS、負載均衡、L3服務,網路支持GRE、VLAN,插件架構支持許多主流的網路廠家和技術,如OpenvSwitch,自Folsom版本集成到專案中,
6、塊存盤 (Block Storage):Cinder,為運行實體提供穩定的資料塊存盤服務,它的插件驅動架構有利于塊設備的創建和管理,如創建卷、洗掉卷,在實體上掛載和卸載卷,自Folsom版本集成到專案中,
7、UI 界面、控制面板服務 (Dashboard):Horizon,OpenStack中各種服務的Web管理門戶,用于簡化用戶對服務的操作,例如:啟動實體、分配IP地址、配置訪問控制等,自Essex版本集成到專案中,
8、計量測量 (Metering):Ceilometer,像一個漏斗一樣,能把OpenStack內部發生的幾乎所有的事件都收集起來,然后為計費和監控以及其它服務提供資料支撐,自Havana版本集成到專案中,
9、部署編排 (Orchestration):Heat,提供了一種通過模板定義的協同部署方式,實作云基礎設施軟體運行環境(計算、存盤和網路資源)的自動化部署,自Havana版本集成到專案中,
10、資料庫服務(Database Service):Trove,為用戶在OpenStack的環境提供可擴展和可靠的關系和非關系資料庫引擎服務,自Icehouse版本集成到專案中,、

可選組件
Heat :如果要在成千上萬個虛擬機里安裝和配置同一個軟體,該怎么辦?采用 Orchestrates 是一個不錯的主意,它向每個虛擬機里注人一個名叫 heat-cfntools 的客戶端工具,然后就能同時操作很多虛擬機
Sahana:使用戶能夠在 OpenStack 平臺上(利用虛擬機)一鍵式創建和管理 Hadoop 集群,實作類似 AWS 的 EMR(Amazon Elastic MapReduce Service)功能,用戶只需要提供簡單的配置引數和模板,如版本資訊(CDH 版本)、集群拓撲(幾個 Slave、幾個 Datanode)、節點配置資訊(CPU、記憶體)等,Sahara 服務就能夠在幾分鐘內根據提供的模板快速 部署 Hadoop、Spark 及 Storm 集群,Sahana 是一個大資料分析專案
Ironic:把裸金屬機器(與虛擬機相對)加人到資源池中
Zaqar:Zaqar 為 Web 和移動開發者提供多租戶云訊息和通知服務,開發人員可以通過 REST API 在其云應用的不同組件中通過不同的通信模式(如 生產者/消費者或發布者/訂閱者)來傳遞訊息
Barbican:是 OpenStack 的密鑰管理組件,其他組件可以呼叫 Barbican 對外暴露的 REST API 來存盤和訪問密鑰
Manila:為虛擬機提供檔案共享服務,不過需要存盤后端的配合

其他組件:Congress(策略服務)、Designate(DNS 服務)、Freezer(備份及還原服務)、Magnum(容器支持)、Mistral(作業流服務)、Monasca(監控服務)、Searchlight(索引和搜索)、Senlin(集群服務)、Solum(APP集成開發平臺)、Tacker(網路功能 虛擬化)、Trove(資料庫服務)

OpenStack核心組件——nova-計算服務
nova介紹:
Nova 是 OpenStack 最核心的服務,負責維護和管理云環境的計算資源,OpenStack 作為 IaaS 的云作業系統,虛擬機生命周期管理也就是通過 Nova 來實作的,
用途與功能:
1 實體生命周期管理
2 管理計算資源
3 網路和認證管理
4 REST 風格的 API
5 異步的一致性通信
6 Hypervisor 透明:支持Xen,XenServer/XCP,KVM, UML, VMware vSphere and Hyper-V

在這里插入圖片描述
在上圖中可以看到,Nova 處于 Openstak 架構的中心,其他組件都為 Nova 提供支持: Glance 為 VM 提供 image Cinder 和 Swift 分別為 VM 提供塊存盤和物件存盤 Neutron 為 VM 提供網路連接,

Nova 架構如下:
在這里插入圖片描述
nova-api: 發出請求給 openstack 來操作一個服務,呼叫該服務來啟動一個新的 nova 實體,
nova-scheduler:nova 調度器 , 用于選擇某個服務器相應運行實體的請求,
nova-compute :管理虛機的核心服務,通過呼叫 Hypervisor API 實作虛機生命周期管理
nova-conductor :nova-compute 經常需要更新資料庫,比如更新虛機的狀態,出于安全性和伸縮性的考慮,
nova-compute 并不會直接訪問資料庫,而是將這個任務委托給 nova-conductor
nova-novncproxy:基于 Web 瀏覽器的 VNC 訪問
nova-consoleauth :負責對訪問虛機控制臺請求提供 Token 認證
Nova 的架構比較復雜,包含很多組件, 這些組件以子服務(后臺 deamon 行程)的形式運行,可以分為以下幾類:
api-nova-api
是整個 Nova 組件的門戶,接收和回應客戶的 API 呼叫,所有對 Nova 的請求都首先由 nova-api 處理,nova-api 向外界暴露若干 HTTP REST API 介面 在 keystone 中我們可以查詢 nova-api 的 endponits,
客戶端就可以將請求發送到 endponits 指定的地址,向 nova-api 請求操作, 當然,作為最終用戶的我們不會直接發送 Rest AP I請求, OpenStack CLI,Dashboard 和其他需要跟 Nova 交換的組件會使用這些 API,
Nova-api 對接收到的 HTTP API 請求會做如下處理:
1.檢查客戶端傳入的引數是否合法有效
2.呼叫 Nova 其他子服務的處理客戶端 HTTP 請求
3.格式化 Nova 其他子服務回傳的結果并回傳給客戶端

nova-api 接收哪些請求?
簡單的說,只要是跟虛擬機生命周期相關的操作,nova-api 都可以回應, 大部分操作都可以在 Dashboard 上找到,打開Instance管理界面,出現以下接收請求
系結浮動IP;連接介面;分離介面;編輯實體;連接卷;分離卷;更新元資料;編輯安全組;控制臺;查看日志;暫停實體;掛起實體;廢棄實體;調整實體大小;鎖定實體;解鎖實體;軟重啟實體;硬重啟實體;關閉實體;重建實體;洗掉實體 等等

nova-compute
nova-compute 是管理虛機的核心服務,在計算節點上運行,通過呼叫Hypervisor API實作節點上的 instance的生命周期管理, OpenStack 對 instance 的操作,最后都是交給 nova-compute 來完成的, nova-compute 與 Hypervisor 一起實作 OpenStack 對 instance 生命周期的管理,

通過Driver架構支持多種Hypervisor
Hypervisor是計算節點上跑的虛擬化管理程式,虛機管理最底層的程式, 不同虛擬化技術提供自己的 Hypervisor, 常用的 Hypervisor 有 KVM,Xen, VMWare 等,nova-compute 為這些 Hypervisor 定義了統一的介面,Hypervisor 只需要實作這些介面,就可以 Driver 的形式即插即用到 OpenStack 系統中, 下面是Nova Driver的架構示意圖:
在這里插入圖片描述
nova-conductor:
nova-compute 經常需要更新資料庫,比如更新和獲取虛機的狀態, 出于安全性和伸縮性的考慮,nova-compute 并不會直接訪問資料庫,而是將這個任務委托給 nova-conductor,
在這里插入圖片描述
這樣做有兩個顯著好處:1.更高的系統安全性 2.更好的系統伸縮性

Console Interface
nova-console: 用戶可以通過多種方式訪問虛機的控制臺
nova-novncproxy: 基于 Web 瀏覽器的 VNC 訪問
nova-spicehtml5proxy: 基于 HTML5 瀏覽器的 SPICE 訪問
nova-xvpnvncproxy: 基于 Java 客戶端的 VNC 訪問
nova-consoleauth: 負責對訪問虛機控制臺請求提供 Token 認證
nova-cert: 提供 x509 證書支持

Database
Nova 會有一些資料需要存放到資料庫中,一般使用 MySQL,資料庫安裝在控制節點上, Nova 使用命名為 “nova” 的資料庫,

Message Queue
在前面我們了解到 Nova 包含眾多的子服務,這些子服務之間需要相互協調和通信,為解耦各個子服務,Nova 通過 Message Queue 作為子服務的資訊中轉站, 所以在架構圖上我們看到了子服務之間沒有直接的連線,是通過 Message Queue 聯系的,
附加:OpenStack 默認是用 RabbitMQ 作為 Message Queue, MQ 是 OpenStack 的核心基礎組件
在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/233619.html

標籤:其他

上一篇:SpringBoot重點知識及深度理解

下一篇:一個簡單的SDN實驗

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more