真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語言項目上線 go語言項目上線了嗎

dockerip包不分片

docker為什么會出現(xiàn)

成都創(chuàng)新互聯(lián)專注于曹縣企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設公司,商城網(wǎng)站制作。曹縣網(wǎng)站建設公司,為曹縣等地區(qū)提供建站服務。全流程按需制作網(wǎng)站,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務

一款產(chǎn)品從開發(fā)到上線,一般都會有開發(fā)環(huán)境,測試環(huán)境,運行環(huán)境。

如果有一個環(huán)境中某個軟件或者依賴版本不同了,可能產(chǎn)品就會出現(xiàn)一些錯誤,甚至無法運行。比如開發(fā)人員在windows系統(tǒng),但是最終要把項目部署到linux。如果存在不支持跨平臺的軟件,那項目肯定也無法部署成功。

這就產(chǎn)生了開發(fā)和運維人員之間的矛盾。開發(fā)人員在開發(fā)環(huán)境將代碼跑通,但是到了上線的時候就崩了。還要重新檢查操作系統(tǒng),軟件,依賴等版本,這大大降低了效率。造成了搭環(huán)境一兩天,部署項目兩分鐘的事件。

docker的出現(xiàn)就能解決以上問題:

開發(fā)人員把環(huán)境配置好,將需要運行的程序包運行成功,然后把程序包和環(huán)境一起打包給運維人員,讓運維人員部署就可以了。這大大提高了項目上線的效率。

2.docker簡介

Docker是基于Go語言實現(xiàn)的云開源項目。

Docker的主要目標是“Build,Ship and Run Any App,Anywhere”,也就是通過對應用組件的封裝、分發(fā)、部署、運行等生命周期的管理,使用戶的APP(可以是一個WEB應用或數(shù)據(jù)庫應用等等)及其運行環(huán)境能夠做到“一次鏡像,處處運行”

?

Linux容器技術(shù)的出現(xiàn)就解決了這樣一個問題,而 Docker 就是在它的基礎上發(fā)展過來的。將應用打成鏡像,通過鏡像成為運行在Docker容器上面的實例,而 Docker容器在任何操作系統(tǒng)上都是一致的,這就實現(xiàn)了跨平臺、跨服務器。只需要一次配置好環(huán)境,換到別的機器上就可以一鍵部署好,大大簡化了操作。

docker簡介總結(jié):

解決了運行環(huán)境和配置問題的軟件容器,方便做持續(xù)集成并有助于整體發(fā)布的容器虛擬化技術(shù)。docker基于Linux內(nèi)核,僅包含業(yè)務運行所需的runtime環(huán)境。

3.傳統(tǒng)虛擬機和容器的對比

3.1虛擬機

虛擬機是可以在一種操作系統(tǒng)里面運行另一種操作系統(tǒng),比如在Windows10系統(tǒng)里面運行Linux系統(tǒng)CentOS7。應用程序?qū)Υ撕翢o感知,因為虛擬機看上去跟真實系統(tǒng)一模一樣,而對于底層系統(tǒng)來說,虛擬機就是一個普通文件。這類虛擬機完美的運行了另一套系統(tǒng),能夠使應用程序,操作系統(tǒng)和硬件三者之間的邏輯不變。

?

虛擬機的缺點:

啟動慢

資源占用多

冗余步驟多

3.2容器虛擬化技術(shù)

由于前面虛擬機存在某些缺點,Linux發(fā)展出了另一種虛擬化技術(shù):

Linux容器(Linux Containers,縮寫為 LXC)

Linux容器是與系統(tǒng)其他部分隔離開的一系列進程,從另一個鏡像運行,并由該鏡像提供支持進程所需的全部文件。容器提供的鏡像包含了應用的所有依賴項,因而在從開發(fā)到測試再到生產(chǎn)的整個過程中,它都具有可移植性和一致性。

Linux 容器不是模擬一個完整的操作系統(tǒng)而是對進程進行隔離。有了容器,就可以將軟件運行所需的所有資源打包到一個隔離的容器中。容器與虛擬機不同,不需要捆綁一整套操作系統(tǒng),只需要軟件工作所需的庫資源和設置。系統(tǒng)因此而變得高效輕量并保證部署在任何環(huán)境中的軟件都能始終如一地運行。

?=

3.3兩者對比

傳統(tǒng)虛擬機技術(shù)是虛擬出一套硬件后,在其上運行一個完整操作系統(tǒng),在該系統(tǒng)上再運行所需應用進程;

容器內(nèi)的應用進程直接運行于宿主的內(nèi)核,容器內(nèi)沒有自己的內(nèi)核且也沒有進行硬件虛擬。因此容器要比傳統(tǒng)虛擬機更為輕便。

每個容器之間互相隔離,每個容器有自己的文件系統(tǒng) ,容器之間進程不會相互影響,能區(qū)分計算資源。

4.docker的作用

一:更快速的應用交付和部署

傳統(tǒng)的應用開發(fā)完成后,需要提供一堆安裝程序和配置說明文檔,安裝部署后需根據(jù)配置文檔進行繁雜的配置才能正常運行。Docker化之后只需要交付少量容器鏡像文件,在正式生產(chǎn)環(huán)境加載鏡像并運行即可,應用安裝配置在鏡像里已經(jīng)內(nèi)置好,大大節(jié)省部署配置和測試驗證時間。

二:更便捷的升級和擴縮容

隨著微服務架構(gòu)和Docker的發(fā)展,大量的應用會通過微服務方式架構(gòu),應用的開發(fā)構(gòu)建將變成搭樂高積木一樣,每個Docker容器將變成一塊“積木”,應用的升級將變得非常容易。當現(xiàn)有的容器不足以支撐業(yè)務處理時,可通過鏡像運行新的容器進行快速擴容,使應用系統(tǒng)的擴容從原先的天級變成分鐘級甚至秒級。

三:更簡單的系統(tǒng)運維

應用容器化運行后,生產(chǎn)環(huán)境運行的應用可與開發(fā)、測試環(huán)境的應用高度一致,容器會將應用程序相關的環(huán)境和狀態(tài)完全封裝起來,不會因為底層基礎架構(gòu)和操作系統(tǒng)的不一致性給應用帶來影響,產(chǎn)生新的BUG。當出現(xiàn)程序異常時,也可以通過測試環(huán)境的相同容器進行快速定位和修復。

四:更高效的計算資源利用

Docker是內(nèi)核級虛擬化,其不像傳統(tǒng)的虛擬化技術(shù)一樣需要額外的Hypervisor支持,所以在一臺物理機上可以運行很多個容器實例,可大大提升物理服務器的CPU和內(nèi)存的利用率。

6.docker的應用場景

docker借鑒了標準集裝箱的概念。標準集裝箱是將貨物運往世界各地,docker將這個模型運用到自己的設計當中,唯一不同的是:集裝箱運送貨物,而docker運輸軟件。

?

7.docker三要素

?

一:鏡像(Image)

Docker 鏡像(Image)就是一個只讀的模板。鏡像可以用來創(chuàng)建 Docker 容器,一個鏡像可以創(chuàng)建很多容器。

二:容器(Container)

Docker 利用容器(Container)獨立運行的一個或一組應用。容器是用鏡像創(chuàng)建的運行實例。

它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。

可以把容器看做是一個簡易版的 Linux 環(huán)境(包括root用戶權(quán)限、進程空間、用戶空間和網(wǎng)絡空間等)和運行在其中的應用程序。

容器的定義和鏡像幾乎一模一樣,也是一堆層的統(tǒng)一視角,唯一區(qū)別在于容器的最上面那一層是可讀可寫的。

三:倉庫(Repository)

倉庫(Repository)是集中存放鏡像文件的場所。倉庫(Repository)和倉庫注冊服務器(Registry)是有區(qū)別的。倉庫注冊服務器上往往存放著多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標簽(tag)。

倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。最大的公開倉庫是 Docker Hub(),存放了數(shù)量龐大的鏡像供用戶下載。國內(nèi)的公開倉庫包括阿里云 、網(wǎng)易云 等

?

8.docker工作原理

Docker是一個Client-Server結(jié)構(gòu)的系統(tǒng),Docker守護進程運行在主機上, 然后通過Socket連接從客戶端訪問,守護進程從客戶端接受命令并管理運行在主機上的容器。 容器,是一個運行時環(huán)境,就是我們前面說到的集裝箱。

?

9.docker平臺架構(gòu)圖解

Docker 是一個 C/S 模式的架構(gòu),后端是一個松耦合架構(gòu),眾多模塊各司其職。

Docker運行的基本流程為:

用戶是使用Docker Client與Docker Daemon建立通信,并發(fā)送請求給后者。

Docker Daemon作為Docker架構(gòu)中的主體部分,首先提供Docker Server的功能使其可以接受Docker Client的請求。

Docker Engine執(zhí)行Docker內(nèi)部的一系列工作,每一項工作都是以一個Job的形式的存在。

Job的運行過程中,當需要容器鏡像時,則從Docker Registry中下載鏡像,并通過鏡像管理驅(qū)動Graph driver將下載鏡像以Graph的形式存儲。

當需要為Docker創(chuàng)建網(wǎng)絡環(huán)境時,通過網(wǎng)絡管理驅(qū)動Network driver創(chuàng)建并配置Docker容器網(wǎng)絡環(huán)境。

當需要限制Docker容器運行資源或執(zhí)行用戶指令等操作時,則通過Exec driver來完成。

Libcontainer是一項獨立的容器管理包,Network driver以及Exec driver都是通過Libcontainer來實現(xiàn)具體對容器進行的操作。

?

10.docker的安裝

Docker官網(wǎng)

Docker并非是一個通用的容器工具,它依賴于已存在并運行的Linux內(nèi)核環(huán)境。

Docker實質(zhì)上是在已經(jīng)運行的Linux下制造了一個隔離的文件環(huán)境,因此它執(zhí)行的效率幾乎等同于所部署的Linux主機。

因此,Docker必須部署在Linux內(nèi)核的系統(tǒng)上。如果其他系統(tǒng)想部署Docker就必須安裝一個虛擬 Linux環(huán)境。

?

要求系統(tǒng)為64位、Linux系統(tǒng)內(nèi)核版本為 3.8以上

查看自己虛擬機的內(nèi)核:

?

開始安裝:

一:搭建gcc環(huán)境(gcc是編程語言譯器)

yum -y install gcc

yum -y install gcc-c++

二:安裝需要的軟件包

yum install -y yum-utils

Go怎么能做到不需要“對象”就可以完成多態(tài)能做到的事?慕課網(wǎng)上線的新版Go語言有沒有提到這一點?

go嚴格上說沒有多態(tài),但可以利用接口進行,對于都實現(xiàn)了同一接口的兩種對象,可以進行類似地向上轉(zhuǎn)型,并且在此時可以對方法進行多態(tài)路由分發(fā)。慕課網(wǎng)上線的新版Go語言不僅有提到這一點,還提到了Go在不面對對象的情況下是怎么完成封裝和繼承的,老師講得很通透,搭配經(jīng)典算法、典型例題、微型項目深入講授go語言。然后還會教學員從零開始搭建分布式爬蟲系統(tǒng),學會用go語言處理復雜項目。

go項目的部署上線(打包成docker鏡像)

1.在項目根目錄下生成DockerFile.txt文件

2.在根目錄下執(zhí)行 docker build -t chat -f ./DockerFile.txt . 生成docker鏡像,此時執(zhí)行 docker images 會看到有個chat的鏡像

Go語言的開源項目

1.Docker項目

網(wǎng)址為 。

介紹:Docker是一種操作系統(tǒng)層面的虛擬化技術(shù),可以在操作系統(tǒng)和應用程序之間進行隔離,也可以稱之為容器。Docker可以在一臺物理服務器上快速運行一個或多個實例。例如,啟動一個Cent OS操作系統(tǒng),并在其內(nèi)部命令行執(zhí)行指令后結(jié)束,整個過程就像自己在操作系統(tǒng)一樣高效。

2.golang項目

網(wǎng)址為 。

介紹:Go語言的早期源碼使用C語言和匯編語言寫成。從Go 1.5版本自舉后,完全使用Go語言自身進行編寫。Go語言的源碼對了解Go語言的底層調(diào)度有極大的參考意義,建議希望對Go語言有深入了解的讀者讀一讀。

3.Kubernetes項目

網(wǎng)址為 。

介紹:Google公司開發(fā)的構(gòu)建于Docker之上的容器調(diào)度服務,用戶可以通過Kubernetes集群進行云端容器集群管理。

4.etcd項目

網(wǎng)址為 。

介紹:一款分布式、可靠的KV存儲系統(tǒng),可以快速進行云配置。

5.beego項目

網(wǎng)址為 。

介紹:beego是一個類似Python的Tornado框架,采用了RESTFul的設計思路,使用Go語言編寫的一個極輕量級、高可伸縮性和高性能的Web應用框架。

6.martini項目

網(wǎng)址為 。

介紹:一款快速構(gòu)建模塊化的Web應用的Web框架。

7.codis項目

網(wǎng)址為 Labs/codis。

介紹:國產(chǎn)的優(yōu)秀分布式Redis解決方案。

8.delve項目

網(wǎng)址為 。

介紹:Go語言強大的調(diào)試器,被很多集成環(huán)境和編輯器整合。

go語言新建項目

一直直接操作的框架 使用vscode 打開就會自動裝包,這次想寫一個簡單應用,確不會怎么建項目,記錄如下。

go1.14 后,以及不再需要把項目寫在GOPATH下,所有不需要再配置。

配置GOPRXY goenv-w GOPROXY=(國內(nèi)無法訪問)

使用go mod方法新建項目。

任意位置新建文件夾。

文件夾下執(zhí)行g(shù)o mod xxx ,生成一個go.mod文件。

新建一個main.go文件,就可以直接運行了。

我開始的時候,先建了main.go文件,再執(zhí)行的go.mod。后面沒法運行。

參考:李文周的博客。

Go語言的應用

Go語言由Google公司開發(fā),并于2009年開源,相比Java/Python/C等語言,Go尤其擅長并發(fā)編程,性能堪比C語言,開發(fā)效率肩比Python,被譽為“21世紀的C語言”。

Go語言在云計算、大數(shù)據(jù)、微服務、高并發(fā)領域應用應用非常廣泛。BAT大廠正在把Go作為新項目開發(fā)的首選語言。

Go語言應用范圍:

1、服務端開發(fā):以前你使用C或者C++做的那些事情,用Go來做很合適,例如日志處理、文件系統(tǒng)、監(jiān)控系統(tǒng)等;

2、DevOps:運維生態(tài)中的Docker、K8s、prometheus、grafana、open-falcon等都是使用Go語言開發(fā);

3、網(wǎng)絡編程:大量優(yōu)秀的Web框架如Echo、Gin、Iris、beego等,而且Go內(nèi)置的 net/http包十分的優(yōu)秀;

4、Paas云平臺領域:Kubernetes和Docker Swarm等;

5、分布式存儲領域:etcd、Groupcache、TiDB、Cockroachdb、Influxdb等;

6、區(qū)塊鏈領域:區(qū)塊鏈里面有兩個明星項目以太坊和fabric都使用Go語言;

7、容器虛擬化:大名鼎鼎的Docker就是使用Go語言實現(xiàn)的;

8、爬蟲及大數(shù)據(jù):Go語言天生支持并發(fā),所以十分適合編寫分布式爬蟲及大數(shù)據(jù)處理。


分享文章:go語言項目上線 go語言項目上線了嗎
本文URL:http://weahome.cn/article/dodpigp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部