成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

go語言遠(yuǎn)程監(jiān)測網(wǎng)站 golang 遠(yuǎn)程控制

一學(xué)就會,手把手教你用Go語言調(diào)用智能合約

智能合約調(diào)用是實(shí)現(xiàn)一個(gè) DApp 的關(guān)鍵,一個(gè)完整的 DApp 包括前端、后端、智能合約及區(qū)塊 鏈系統(tǒng),智能合約的調(diào)用是連接區(qū)塊鏈與前后端的關(guān)鍵。

成都創(chuàng)新互聯(lián)公司專注于深圳網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供深圳營銷型網(wǎng)站建設(shè),深圳網(wǎng)站制作、深圳網(wǎng)頁設(shè)計(jì)、深圳網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造深圳網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供深圳網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

我們先來了解一下智能合約調(diào)用的基礎(chǔ)原理。智能合約運(yùn)行在以太坊節(jié)點(diǎn)的 EVM 中。因此要 想調(diào)用合約必須要訪問某個(gè)節(jié)點(diǎn)。

以后端程序?yàn)槔?,后端服?wù)若想連接節(jié)點(diǎn)有兩種可能,一種是雙 方在同一主機(jī),此時(shí)后端連接節(jié)點(diǎn)可以采用 本地 IPC(Inter-Process Communication,進(jìn) 程間通信)機(jī)制,也可以采用 RPC(Remote Procedure Call,遠(yuǎn)程過程調(diào)用)機(jī)制;另 一種情況是雙方不在同一臺主機(jī),此時(shí)只能采用 RPC 機(jī)制進(jìn)行通信。

提到 RPC, 讀者應(yīng)該對 Geth 啟動(dòng)參數(shù)有點(diǎn)印象,Geth 啟動(dòng)時(shí)可以選擇開啟 RPC 服務(wù),對應(yīng)的 默認(rèn)服務(wù)端口是 8545。。

接著,我們來了解一下智能合約運(yùn)行的過程。

智能合約的運(yùn)行過程是后端服務(wù)連接某節(jié)點(diǎn),將 智能合約的調(diào)用(交易)發(fā)送給節(jié)點(diǎn),節(jié)點(diǎn)在驗(yàn)證了交易的合法性后進(jìn)行全網(wǎng)廣播,被礦工打包到 區(qū)塊中代表此交易得到確認(rèn),至此交易才算完成。

就像數(shù)據(jù)庫一樣,每個(gè)區(qū)塊鏈平臺都會提供主流 開發(fā)語言的 SDK(Software Development Kit,軟件開發(fā)工具包),由于 Geth 本身就是用 Go 語言 編寫的,因此若想使用 Go 語言連接節(jié)點(diǎn)、發(fā)交易,直接在工程內(nèi)導(dǎo)入 go-ethereum(Geth 源碼) 包就可以了,剩下的問題就是流程和 API 的事情了。

總結(jié)一下,智能合約被調(diào)用的兩個(gè)關(guān)鍵點(diǎn)是節(jié)點(diǎn)和 SDK。

由于 IPC 要求后端與節(jié)點(diǎn)必須在同一主機(jī),所以很多時(shí)候開發(fā)者都會采用 RPC 模式。除了 RPC,以太坊也為開發(fā)者提供了 json- rpc 接口,本文就不展開討論了。

接下來介紹如何使用 Go 語言,借助 go-ethereum 源碼庫來實(shí)現(xiàn)智能合約的調(diào)用。這是有固定 步驟的,我們先來說一下總體步驟,以下面的合約為例。

步驟 01:編譯合約,獲取合約 ABI(Application Binary Interface,應(yīng)用二進(jìn)制接口)。 單擊【ABI】按鈕拷貝合約 ABI 信息,將其粘貼到文件 calldemo.abi 中(可使用 Go 語言IDE 創(chuàng)建該文件,文件名可自定義,后綴最好使用 abi)。

最好能將 calldemo.abi 單獨(dú)保存在一個(gè)目錄下,輸入“l(fā)s”命令只能看到 calldemo.abi 文件,參 考效果如下:

步驟 02:獲得合約地址。注意要將合約部署到 Geth 節(jié)點(diǎn)。因此 Environment 選擇為 Web3 Provider。

在【Environment】選項(xiàng)框中選擇“Web3 Provider”,然后單擊【Deploy】按鈕。

部署后,獲得合約地址為:0xa09209c28AEf59a4653b905792a9a910E78E7407。

步驟 03:利用 abigen 工具(Geth 工具包內(nèi)的可執(zhí)行程序)編譯智能合約為 Go 代碼。abigen 工具的作用是將 abi 文件轉(zhuǎn)換為 Go 代碼,命令如下:

其中各參數(shù)的含義如下。 (1)abi:是指定傳入的 abi 文件。 (2)type:是指定輸出文件中的基本結(jié)構(gòu)類型。 (3)pkg:指定輸出文件 package 名稱。 (4)out:指定輸出文件名。 執(zhí)行后,將在代碼目錄下看到 funcdemo.go 文件,讀者可以打開該文件欣賞一下,注意不要修改它。

步驟 04:創(chuàng)建 main.go,填入如下代碼。 注意代碼中 HexToAddress 函數(shù)內(nèi)要傳入該合約部署后的地址,此地址在步驟 01 中獲得。

步驟 04:設(shè)置 go mod,以便工程自動(dòng)識別。

前面有所提及,若要使用 Go 語言調(diào)用智能合約,需要下載 go-ethereum 工程,可以使用下面 的指令:

該指令會自動(dòng)將 go-ethereum 下載到“$GOPATH/src/github.com/ethereum/go-ethereum”,這樣還算 不錯(cuò)。不過,Go 語言自 1.11 版本后,增加了 module 管理工程的模式。只要設(shè)置好了 go mod,下載 依賴工程的事情就不必關(guān)心了。

接下來設(shè)置 module 生效和 GOPROXY,命令如下:

在項(xiàng)目工程內(nèi),執(zhí)行初始化,calldemo 可以自定義名稱。

步驟 05:運(yùn)行代碼。執(zhí)行代碼,將看到下面的效果,以及最終輸出的 2020。

上述輸出信息中,可以看到 Go 語言會自動(dòng)下載依賴文件,這就是 go mod 的神奇之處??吹?2020,相信讀者也知道運(yùn)行結(jié)果是正確的了。

普羅米修斯監(jiān)控主機(jī)數(shù)量不超過

Cacti(英文含義為仙人掌〉是一套基于 PHP、MySQL、SNMP和 RRDtool開發(fā)的網(wǎng)絡(luò)流量監(jiān)測圖形分析工具。

它通過snmpget來獲取數(shù)據(jù),使用RRDTool繪圖,但使用者無須了解RRDTool復(fù)雜的參數(shù)。它提供了非常強(qiáng)大的數(shù)據(jù)和用戶管理功能,可以指定每一個(gè)用戶能查看樹狀結(jié)構(gòu)、主機(jī)設(shè)備以及任何一張圖,還可以與LDAP 結(jié)合進(jìn)行用戶認(rèn)證,同時(shí)也能自定義模板,在歷史數(shù)據(jù)的展示監(jiān)控方面,其功能相當(dāng)不錯(cuò)。

Cacti通過添加模板,使不同設(shè)備的監(jiān)控添加具有可復(fù)用性,并且具備可自定義繪圖的功能,具有強(qiáng)大的運(yùn)算能力(數(shù)據(jù)的疊加功能)

1.2Nagios

Nagios是一款開源的免費(fèi)網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控windows、Linux和Unix的主機(jī)狀態(tài),交換機(jī)、打印機(jī)、路由器等網(wǎng)絡(luò)設(shè)備。在系統(tǒng)或服務(wù)狀態(tài)異常時(shí)發(fā)出郵件或短信報(bào)警第一時(shí)間通知網(wǎng)站運(yùn)維人員,在狀態(tài)恢復(fù)后發(fā)出正常的郵件或短信通知。

nagios主要的特征是監(jiān)控告警,最強(qiáng)大的就是告警功能,可支持多種告警方式,但缺點(diǎn)是沒有強(qiáng)大的數(shù)據(jù)收集機(jī)制,并且數(shù)據(jù)出圖也很簡陋,當(dāng)監(jiān)控的主機(jī)越來越多時(shí),添加主機(jī)也非常麻煩,配置文件都是基于文本配置的,不支持web方式管理和配置,這樣很容易出錯(cuò),不宜維護(hù)。

1.3Zabbix

zabbix是一個(gè)基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級的開源解決方案。zabbix能監(jiān)視各種網(wǎng)絡(luò)參數(shù),保證服務(wù)器系統(tǒng)的安全運(yùn)營;并提供強(qiáng)大的通知機(jī)制以讓系統(tǒng)運(yùn)維人員快速定位/解決存在的各種問題。

zabbix由2部分構(gòu)成,zabbix server與可選組件zabbix agent。zabbix server可以通過SNMP,zabbix,agent,ping,端口監(jiān)視等方法提供對遠(yuǎn)程服務(wù)器/網(wǎng)絡(luò)狀態(tài)的監(jiān)視,數(shù)據(jù)收集等功能,它可以運(yùn)行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,os x等平臺上。

zabbix解決了cacti沒有告警的不足,也解決了nagios不能通過web配置的缺點(diǎn),同時(shí)還支持分布式部署,這使得它迅速流行起來,zabbix也成為目前中小企業(yè)監(jiān)控最流行的運(yùn)維監(jiān)控平臺。當(dāng)然,zabbix也有不足之處,它消耗的資源比較多,如果監(jiān)控的主機(jī)非常多時(shí)(服務(wù)器數(shù)量超過500臺),可能會出現(xiàn)監(jiān)控超時(shí)、告警超時(shí)、告警系統(tǒng)單點(diǎn)故障等現(xiàn)象,不過也有很多解決辦法,比如提高硬件性能、改變zabbix監(jiān)控模式等。

① agent代理:專門的代理服務(wù)方式進(jìn)行監(jiān)控,專屬的協(xié)議,裝有zabbix-agent的主機(jī)就可以被zabbix-server監(jiān)控,主

動(dòng)或被動(dòng)的方式,把數(shù)據(jù)給到server進(jìn)行處理。

② ssh/telent:linux主機(jī)支持ssh/telent協(xié)議

③ snmp:網(wǎng)絡(luò)設(shè)備路由器、交換機(jī)不能安裝第三方程序(agent),使用簡單網(wǎng)絡(luò)協(xié)議。大多數(shù)的路由器設(shè)備支持SNMP協(xié)議

④ ipmi:通過ipmi接口進(jìn)行監(jiān)控,我們可以通過標(biāo)準(zhǔn)的ipmi硬件接口,監(jiān)控被監(jiān)控對象的物理特征,比如電壓,溫度,

風(fēng)扇狀態(tài)電源情況,被廣泛使用服務(wù)監(jiān)控中,包括采集cpu溫度,風(fēng)扇轉(zhuǎn)速,主板溫度,及遠(yuǎn)程開關(guān)機(jī)等等,而且ipmi獨(dú)立于硬件和操作系統(tǒng),無論是cpu,bios還是os出現(xiàn)故障,都不會影響ipmi的工作,因?yàn)閕pmi的硬件設(shè)備BMC(bashboard management controller)是獨(dú)立的板卡,獨(dú)立供電

⑤ zabbix核心組件介紹

Zabbix Server:

Zabbix軟件實(shí)現(xiàn)監(jiān)控的核心程序,主要功能是與Zabbixproxies和Agents進(jìn)行交互、觸發(fā)器計(jì)算、發(fā)送告警通知;并將數(shù)據(jù)集中保存。與prometheus的類似可以保存收集到的數(shù)據(jù),但是prometheus告警需要使用altermanager組件

Database storage:

存儲配置信息以及收集到的數(shù)據(jù)

web Interface:

Zabbix的GUI接口,通常與server運(yùn)行在同一臺機(jī)器上

Proxy:

可選組件,常用于分布式監(jiān)控環(huán)境中,一個(gè)幫助zabbix Server收集數(shù)據(jù),分擔(dān)zabbix Server的負(fù)載的程序

Agent:

部署在被監(jiān)控主機(jī)上,負(fù)責(zé)收集數(shù)據(jù)發(fā)送給server

1.5Prometheus

borg.kubernetes

borgmon(監(jiān)控系統(tǒng)) 對應(yīng)克隆的版本:prometheus(go語言)

所以prometheus 特別適合K8S 的架構(gòu)上

而作為一個(gè)數(shù)據(jù)監(jiān)控解決方案,它由一個(gè)大型社區(qū)支持,有來自700多家公司的6300個(gè)貢獻(xiàn)者,13500個(gè)代碼提交和7200個(gè)拉取請求

Prometheus具有以下特性:

① 多維的數(shù)據(jù)模型(基于時(shí)間序列的Key、value鍵值對)

② 靈活的查詢和聚合語言PromQL(難)

③ 提供本地存儲和分布式存儲

④ 通過基于HTTP和HTTPS的Pull模型采集時(shí)間序列數(shù)據(jù)(pull數(shù)據(jù)的拉取,時(shí)間序列:每段

時(shí)間點(diǎn)的數(shù)據(jù)值指標(biāo),持續(xù)性的產(chǎn)生。橫軸標(biāo)識時(shí)間,縱軸為數(shù)據(jù)值,一段時(shí)間內(nèi)數(shù)值的動(dòng)態(tài)變化,所有的點(diǎn)連線形成大盤式的折線圖)

⑤ 可利用Pushgateway (Prometheus的可選中間件)實(shí)現(xiàn)Push模式

⑥ 可通過動(dòng)態(tài)服務(wù)發(fā)現(xiàn)或靜態(tài)配置發(fā)現(xiàn)目標(biāo)機(jī)器(通過consul自動(dòng)發(fā)現(xiàn)和收縮)

⑦ 支持多種圖表和數(shù)據(jù)大盤

open-Falcaon是小米開源的企業(yè)級監(jiān)控工具,用GO語言開發(fā),包括小米、滴滴、美團(tuán)等在內(nèi)的互聯(lián)網(wǎng)公司都在使用它,是一款靈活、可拓展并且高性能的監(jiān)控方案。

如何使用Go語言實(shí)現(xiàn)遠(yuǎn)程執(zhí)行命令

一般命令

所謂一般命令,就是在一定時(shí)間內(nèi)會執(zhí)行完的命令。比如 grep, cat 等等。 執(zhí)行命令的步驟是:連接,執(zhí)行,獲取結(jié)果

連接

連接包含了認(rèn)證,可以使用 password 或者 sshkey 2種方式來認(rèn)證。下面的示例為了簡單,使用了密碼認(rèn)證的方式來完成連接。

import (

"fmt"

"time"

"golang.org/x/crypto/ssh"

)

func connect(user, password, host string, port int) (*ssh.Session, error) {

var (

auth []ssh.AuthMethod

addr string

clientConfig *ssh.ClientConfig

client *ssh.Client

session *ssh.Session

err error

)

// get auth method

auth = make([]ssh.AuthMethod, 0)

auth = append(auth, ssh.Password(password))

clientConfig = ssh.ClientConfig{

User: user,

Auth: auth,

Timeout: 30 * time.Second,

}

// connet to ssh

addr = fmt.Sprintf("%s:%d", host, port)

if client, err = ssh.Dial("tcp", addr, clientConfig); err != nil {

return nil, err

}

// create session

if session, err = client.NewSession(); err != nil {

return nil, err

}

return session, nil

}

連接的方法很簡單,只要提供登錄主機(jī)的 用戶*, *密碼*, *主機(jī)名或者IP*, *SSH端口

執(zhí)行,命令獲取結(jié)果

連接成功后,執(zhí)行命令很簡單

import (

"fmt"

"log"

"os"

"time"

"golang.org/x/crypto/ssh"

)

func main() {

session, err := connect("root", "xxxxx", "127.0.0.1", 22)

if err != nil {

log.Fatal(err)

}

defer session.Close()

session.Run("ls /; ls /abc")

}

上面代碼運(yùn)行之后,雖然命令正常執(zhí)行了,但是沒有正常輸出的結(jié)果,也沒有異常輸出的結(jié)果。 要想顯示結(jié)果,需要將 session 的 Stdout 和 Stderr 重定向 修改 func main 為如下:

func main() {

session, err := connect("root", "xxxxx", "127.0.0.1", 22)

if err != nil {

log.Fatal(err)

}

defer session.Close()

session.Stdout = os.Stdout

session.Stderr = os.Stderr

session.Run("ls /; ls /abc")

}

這樣就能在屏幕上顯示正常,異常的信息了。

交互式命令

上面的方式無法遠(yuǎn)程執(zhí)行交互式命令,比如 top , 遠(yuǎn)程編輯一個(gè)文件,比如 vi /etc/nginx/nginx.conf 如果要支持交互式的命令,需要當(dāng)前的terminal來接管遠(yuǎn)程的 PTY。

func main() {

session, err := connect("root", "olordjesus", "dockers.iotalabs.io", 2210)

if err != nil {

log.Fatal(err)

}

defer session.Close()

fd := int(os.Stdin.Fd())

oldState, err := terminal.MakeRaw(fd)

if err != nil {

panic(err)

}

defer terminal.Restore(fd, oldState)

// excute command

session.Stdout = os.Stdout

session.Stderr = os.Stderr

session.Stdin = os.Stdin

termWidth, termHeight, err := terminal.GetSize(fd)

if err != nil {

panic(err)

}

// Set up terminal modes

modes := ssh.TerminalModes{

ssh.ECHO: 1, // enable echoing

ssh.TTY_OP_ISPEED: 14400, // input speed = 14.4kbaud

ssh.TTY_OP_OSPEED: 14400, // output speed = 14.4kbaud

}

// Request pseudo terminal

if err := session.RequestPty("xterm-256color", termHeight, termWidth, modes); err != nil {

log.Fatal(err)

}

session.Run("top")

}

golang的線程模型——GMP模型

內(nèi)核線程(Kernel-Level Thread ,KLT)

輕量級進(jìn)程(Light Weight Process,LWP):輕量級進(jìn)程就是我們通常意義上所講的線程,由于每個(gè)輕量級進(jìn)程都由一個(gè)內(nèi)核線程支持,因此只有先支持內(nèi)核線程,才能有輕量級進(jìn)程

用戶線程與系統(tǒng)線程一一對應(yīng),用戶線程執(zhí)行如lo操作的系統(tǒng)調(diào)用時(shí),來回切換操作開銷相對比較大

多個(gè)用戶線程對應(yīng)一個(gè)內(nèi)核線程,當(dāng)內(nèi)核線程對應(yīng)的一個(gè)用戶線程被阻塞掛起時(shí)候,其他用戶線程也阻塞不能執(zhí)行了。

多對多模型是可以充分利用多核CPU提升運(yùn)行效能的

go線程模型包含三個(gè)概念:內(nèi)核線程(M),goroutine(G),G的上下文環(huán)境(P);

GMP模型是goalng特有的。

P與M一般是一一對應(yīng)的。P(上下文)管理著一組G(goroutine)掛載在M(內(nèi)核線程)上運(yùn)行,圖中左邊藍(lán)色為正在執(zhí)行狀態(tài)的goroutine,右邊為待執(zhí)行狀態(tài)的goroutiine隊(duì)列。P的數(shù)量由環(huán)境變量GOMAXPROCS的值或程序運(yùn)行runtime.GOMAXPROCS()進(jìn)行設(shè)置。

當(dāng)一個(gè)os線程在執(zhí)行M1一個(gè)G1發(fā)生阻塞時(shí),調(diào)度器讓M1拋棄P,等待G1返回,然后另起一個(gè)M2接收P來執(zhí)行剩下的goroutine隊(duì)列(G2、G3...),這是golang調(diào)度器厲害的地方,可以保證有足夠的線程來運(yùn)行剩下所有的goroutine。

當(dāng)G1結(jié)束后,M1會重新拿回P來完成,如果拿不到就丟到全局runqueue中,然后自己放到線程池或轉(zhuǎn)入休眠狀態(tài)??臻e的上下文P會周期性的檢查全局runqueue上的goroutine,并且執(zhí)行它。

另一種情況就是當(dāng)有些P1太閑而其他P2很忙碌的時(shí)候,會從其他上下文P2拿一些G來執(zhí)行。

詳細(xì)可以翻看下方第一個(gè)參考鏈接,寫得真好。

最后用大佬的總結(jié)來做最后的收尾————

Go語言運(yùn)行時(shí),通過核心元素G,M,P 和 自己的調(diào)度器,實(shí)現(xiàn)了自己的并發(fā)線程模型。調(diào)度器通過對G,M,P的調(diào)度實(shí)現(xiàn)了兩級線程模型中操作系統(tǒng)內(nèi)核之外的調(diào)度任務(wù)。整個(gè)調(diào)度過程中會在多種時(shí)機(jī)去觸發(fā)最核心的步驟 “一整輪調(diào)度”,而一整輪調(diào)度中最關(guān)鍵的部分在“全力查找可運(yùn)行G”,它保證了M的高效運(yùn)行(換句話說就是充分使用了計(jì)算機(jī)的物理資源),一整輪調(diào)度中還會涉及到M的啟用停止。最后別忘了,還有一個(gè)與Go程序生命周期相同的系統(tǒng)監(jiān)測任務(wù)來進(jìn)行一些輔助性的工作。

淺析Golang的線程模型與調(diào)度器

Golang CSP并發(fā)模型

Golang線程模型

知網(wǎng)和Gocheck的論文查重到底有什么區(qū)別

知網(wǎng)和Gocheck的論文查重區(qū)別分為論文查重系統(tǒng)數(shù)據(jù)庫、論文檢測的方式、識別引用的不同。

一、論文查重系統(tǒng)數(shù)據(jù)庫不同

Gocheck論文檢測專家和知網(wǎng)查重的數(shù)據(jù)庫不同,兩個(gè)系統(tǒng)都收錄超過上億的文獻(xiàn)資源庫,并且對互聯(lián)網(wǎng)資源進(jìn)行實(shí)時(shí)監(jiān)測收錄和索引,但不同的是知網(wǎng)論文文獻(xiàn)庫更為豐富。

知網(wǎng)查重檢測系統(tǒng):中國學(xué)術(shù)期刊網(wǎng)絡(luò)出版總庫,中國博士學(xué)位論文全文數(shù)據(jù)庫,中國優(yōu)秀碩士學(xué)位論文全文數(shù)據(jù)庫,中國重要會議論文全文數(shù)據(jù)庫。

大學(xué)生論文聯(lián)合對比庫,中國重要報(bào)紙全文數(shù)據(jù)庫,中國專利全文數(shù)據(jù)庫,互聯(lián)網(wǎng)資源(包含貼吧等論壇資源)。

英文數(shù)據(jù)庫(涵蓋期刊、博碩、會議的英文數(shù)據(jù)以及德國Springer、英國TaylorFrancis 期刊數(shù)據(jù)庫等),港澳臺學(xué)術(shù)文獻(xiàn)庫,優(yōu)先出版文獻(xiàn)庫,互聯(lián)網(wǎng)文檔資源,圖書資源,CNKI大成編客-原創(chuàng)作品庫,個(gè)人比對庫。

gocheck的對比庫:中文期刊庫、TONDA論文庫、互聯(lián)網(wǎng)資源、用戶自建數(shù)據(jù)庫、共享資源庫。

二、論文檢測的方式不同

一般論文寫作者將論文上傳至系統(tǒng),便會開始檢測了。Gocheck和知網(wǎng)的不同之處便是,知網(wǎng)自動(dòng)識別目錄然后一章一章拆分比對,連續(xù)超過一定字?jǐn)?shù)后便會被系統(tǒng)識別出來;而Gocheck則是將句子的主要語義片段同系統(tǒng)的資源比對,超過系統(tǒng)閥值則會被檢測出來,閥值可以由學(xué)校掌控。

三、識別引用的不同

在論文中常常有會有忘記加引用符號,而變成抄襲的情況。而且不了解系統(tǒng)是如何將抄襲和引用分界的,讓人苦惱不已。

知網(wǎng)查重可識別的引用方式有兩種,一種是在文章加“”符號,以及在正文中有來源于參考文獻(xiàn)中文章的內(nèi)容。

Gocheck論文檢測專家的識別方式則有四種,其中兩種和知網(wǎng)一樣。文中的【數(shù)字】的部分以及在Word自帶的插入腳注都可以被識別為引用。

此處有一點(diǎn)切結(jié)不管是在知網(wǎng)還是在Gocheck在引用完一段文獻(xiàn)之前一定不能加句號,因?yàn)槿绻谝梦赐曛坝镁涮杽t代表此段引用完畢,后面的會被系統(tǒng)認(rèn)定為抄襲,這樣可就得不償失了。

擴(kuò)展資料:

知網(wǎng)的概念是國家知識基礎(chǔ)設(shè)施,由世界銀行于1998年提出。CNKI工程是以實(shí)現(xiàn)全社會知識資源傳播共享與增值利用為目標(biāo)的信息化建設(shè)項(xiàng)目,由清華大學(xué)、清華同方發(fā)起。

始建于1999年6月。在黨和國家領(lǐng)導(dǎo)以及教育部、中宣部、科技部、新聞出版總署、國家版權(quán)局、國家發(fā)改委的大力支持下,在全國學(xué)術(shù)界、教育界、出版界、圖書情報(bào)界等社會各界的密切配合和清華大學(xué)的直接領(lǐng)導(dǎo)下。

CNKI工程集團(tuán)經(jīng)過多年努力。采用自主開發(fā)并具有國際領(lǐng)先水平的數(shù)字圖書館技術(shù),建成了世界上全文信息量規(guī)模最大的"CNKI數(shù)字圖書館",并正式啟動(dòng)建設(shè)《中國知識資源總庫》及CNKI網(wǎng)格資源共享平臺。

通過產(chǎn)業(yè)化運(yùn)作,為全社會知識資源高效共享提供最豐富的知識信息資源和最有效的知識傳播與數(shù)字化學(xué)習(xí)平臺。(一般評定職稱所說的中國期刊網(wǎng),是中國知網(wǎng))。

參考資料:百度百科-中國知網(wǎng)

如何使用Go語言是操作Docker

Docker 提供了一個(gè)與 Docker 守護(hù)進(jìn)程交互的 API (稱為Docker Engine API),我們可以使用官方提供的 Go 語言的 SDK 進(jìn)行構(gòu)建和擴(kuò)展 Docker 應(yīng)用程序和解決方案。

轉(zhuǎn)自:

整理:地鼠文檔

通過下面的命令就可以安裝 SDK 了:

該部分會介紹如何使用 Golang + Docker API 進(jìn)行管理本地的 Docker。

第一個(gè)例子將展示如何運(yùn)行容器,相當(dāng)于 docker run docker.io/library/alpine echo "hello world" :

還可以在后臺運(yùn)行容器,相當(dāng)于 docker run -d bfirsh/reticulate-splines :

列出正在運(yùn)行的容器,就像使用 docker ps 一樣:

如果是 docker ps -a ,我們可以通過修改 types.ContainerListOptions 中的 All 屬性達(dá)到這個(gè)目的:

通過上面的例子,我們可以獲取容器的列表,所以在這個(gè)案例中,我們可以去停止所有正在運(yùn)行的容器。

通過指定容器的 ID,我們可以獲取對應(yīng) ID 的容器的日志:

獲取本地所有的鏡像,相當(dāng)于 docker image ls 或 docker images :

拉取指定鏡像,相當(dāng)于 docker pull alpine :

除了公開的鏡像,我們平時(shí)還會用到一些私有鏡像,可以是 DockerHub 上私有鏡像,也可以是自托管的鏡像倉庫,比如 harbor 。這個(gè)時(shí)候,我們需要提供對應(yīng)的憑證才可以拉取鏡像。

值得注意的是:在使用 Docker API 的 Go SDK 時(shí),憑證是以明文的方式進(jìn)行傳輸?shù)?,所以如果是自建的鏡像倉庫,請務(wù)必使用 HTTPS !

我們可以將一個(gè)已有的容器通過 commit 保存成一個(gè)鏡像:

當(dāng)然,除了可以管理本地的 Docker , 我們同樣也可以通過使用 Golang + Docker API 管理遠(yuǎn)程的 Docker 。

默認(rèn) Docker 是通過非網(wǎng)絡(luò)的 Unix 套接字運(yùn)行的,只能夠進(jìn)行本地通信( /var/run/docker.sock ),是不能夠直接遠(yuǎn)程連接 Docker 的。

我們需要編輯配置文件 /etc/docker/daemon.json ,并修改以下內(nèi)容(把 192.168.59.3 改成你自己的 IP 地址),然后重啟 Docker :

創(chuàng)建 client 的時(shí)候需要指定遠(yuǎn)程 Docker 的地址,這樣就可以像管理本地 Docker 一樣管理遠(yuǎn)程的 Docker 了:

現(xiàn)在已經(jīng)有很多可以管理 Docker 的產(chǎn)品,它們便是這樣進(jìn)行實(shí)現(xiàn)的,比如: portainer 。

分享標(biāo)題:go語言遠(yuǎn)程監(jiān)測網(wǎng)站 golang 遠(yuǎn)程控制
網(wǎng)址分享:http://jinyejixie.com/article36/dodpipg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、虛擬主機(jī)、App設(shè)計(jì)、做網(wǎng)站面包屑導(dǎo)航、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司
阳山县| 宜昌市| 甘孜| 和平区| 丰城市| 日土县| 绥滨县| 尚义县| 屏东市| 绵阳市| 延寿县| 岗巴县| 芮城县| 罗江县| 隆化县| 连平县| 平谷区| 彭泽县| 南充市| 库尔勒市| 奉节县| 隆林| 通许县| 昆明市| 河北省| 虎林市| 黄浦区| 南安市| 浮梁县| 永康市| 翁牛特旗| 三门县| 陈巴尔虎旗| 云浮市| 壤塘县| 水富县| 平舆县| 龙海市| 温泉县| 南部县| 宁武县|