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

go語(yǔ)言實(shí)現(xiàn)rpc編程 go語(yǔ)言編程實(shí)戰(zhàn)

GoLang -- gRPC框架四大服務(wù)

在 gRPC 里客戶端應(yīng)用可以像調(diào)用本地對(duì)象一樣直接調(diào)用另一臺(tái)不同的機(jī)器上服務(wù)端 應(yīng)用的方法,使得您能夠更容易地創(chuàng)建分布式應(yīng)用和服務(wù)。與許多 RPC 系統(tǒng)類似,gRPC 也是基于以下理念:定義一個(gè)服務(wù),指定其能夠被遠(yuǎn)程調(diào)用的方法(包含參數(shù)和返回類型)。在服務(wù)端實(shí)現(xiàn)這個(gè)接口,并運(yùn)行一個(gè) gRPC 服務(wù)器來(lái)處理客戶端調(diào)用。在客戶端擁有一個(gè)存根能夠像服務(wù)端一樣的方法。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、慶城網(wǎng)站維護(hù)、網(wǎng)站推廣。

gRPC 客戶端和服務(wù)端可以在多種環(huán)境中運(yùn)行和交互 - 從 google 內(nèi)部的服務(wù)器到你自己的筆記本,并且可以用任何 gRPC 支持的語(yǔ)言來(lái)編寫。所以,你可以很容易地用 Java 創(chuàng)建一個(gè) gRPC 服務(wù)端,用 Go、Python、Ruby 來(lái)創(chuàng)建客戶端。此外,Google 最新 API 將有 gRPC 版本的接口,使你很容易地將 Google 的功能集成到你的應(yīng)用里。

gRPC 默認(rèn)使用 protocol buffers,這是 Google 開(kāi)源的一套成熟的結(jié)構(gòu)數(shù)據(jù)序列化機(jī)制(當(dāng)然也可以使用其他數(shù)據(jù)格式如 JSON)。名叫 proto3 的新風(fēng)格的 protocol buffers,它擁有輕量簡(jiǎn)化的語(yǔ)法、一些有用的新功能,并且支持更多新語(yǔ)言。當(dāng)前針對(duì) Java 和 C++ 發(fā)布了 beta 版本,針對(duì) JavaNano(即 Android Java)發(fā)布 alpha 版本,在protocol buffers Github 源碼庫(kù)里有 Ruby 支持, 在golang/protobuf Github 源碼庫(kù)里還有針對(duì) Go 語(yǔ)言的生成器, 對(duì)更多語(yǔ)言的支持正在開(kāi)發(fā)中。

有了 gRPC, 我們可以一次性的在一個(gè) .proto 文件中定義服務(wù)并使用任何支持它的語(yǔ)言去實(shí)現(xiàn)客戶端和服務(wù)器,反過(guò)來(lái),它們可以在各種環(huán)境中,從Google的服務(wù)器到你自己的平板電腦—— gRPC 幫你解決了不同語(yǔ)言及環(huán)境間通信的復(fù)雜性.使用 protocol buffers 還能獲得其他好處,包括高效的序列號(hào),簡(jiǎn)單的 IDL 以及容易進(jìn)行接口更新。

現(xiàn)在讓我們來(lái)仔細(xì)了解一下當(dāng) gRPC 客戶端調(diào)用 gRPC 服務(wù)端的方法時(shí)到底發(fā)生了什么。我們不究其實(shí)現(xiàn)細(xì)節(jié),關(guān)于實(shí)現(xiàn)細(xì)節(jié)的部分,你可以在我們的特定語(yǔ)言頁(yè)面里找到更為詳盡的內(nèi)容。

首先我們來(lái)了解一下最簡(jiǎn)單的 RPC 形式:客戶端發(fā)出單個(gè)請(qǐng)求,獲得單個(gè)響應(yīng)。

服務(wù)端流式 RPC 除了在得到客戶端請(qǐng)求信息后發(fā)送回一個(gè)應(yīng)答流之外,與我們的簡(jiǎn)單例子一樣。在發(fā)送完所有應(yīng)答后,服務(wù)端的狀態(tài)詳情(狀態(tài)碼和可選的狀態(tài)信息)和可選的跟蹤元數(shù)據(jù)被發(fā)送回客戶端,以此來(lái)完成服務(wù)端的工作。客戶端在接收到所有服務(wù)端的應(yīng)答后也完成了工作。

客戶端流式 RPC 也基本與我們的簡(jiǎn)單例子一樣,區(qū)別在于客戶端通過(guò)發(fā)送一個(gè)請(qǐng)求流給服務(wù)端,取代了原先發(fā)送的單個(gè)請(qǐng)求。服務(wù)端通常(但并不必須)會(huì)在接收到客戶端所有的請(qǐng)求后發(fā)送回一個(gè)應(yīng)答,其中附帶有它的狀態(tài)詳情和可選的跟蹤數(shù)據(jù)。

雙向流式 RPC ,調(diào)用由客戶端調(diào)用方法來(lái)初始化,而服務(wù)端則接收到客戶端的元數(shù)據(jù),方法名和截止時(shí)間。服務(wù)端可以選擇發(fā)送回它的初始元數(shù)據(jù)或等待客戶端發(fā)送請(qǐng)求。 下一步怎樣發(fā)展取決于應(yīng)用,因?yàn)榭蛻舳撕头?wù)端能在任意順序上讀寫 - 這些流的操作是完全獨(dú)立的。例如服務(wù)端可以一直等直到它接收到所有客戶端的消息才寫應(yīng)答,或者服務(wù)端和客戶端可以像"乒乓球"一樣:服務(wù)端后得到一個(gè)請(qǐng)求就回送一個(gè)應(yīng)答,接著客戶端根據(jù)應(yīng)答來(lái)發(fā)送另一個(gè)請(qǐng)求,以此類推。

通過(guò)運(yùn)行下面的命令克隆并安裝grpc-go代碼庫(kù):

下載protobuf源碼包

安裝golang-protobuf

第一步使用 protocol buffers去定義 gRPC service 和方法 request 以及 response 的類型。

要定義一個(gè)服務(wù),必須在.proto 文件中指定 service:

然后在服務(wù)中定義 rpc 方法,指定請(qǐng)求的和響應(yīng)類型,gRPC 允許定義4種類型的 service 方法。

服務(wù).proto文件如下所示:

區(qū)塊鏈技術(shù)架構(gòu)有些什么課程介紹?

目前市場(chǎng)上區(qū)塊鏈培訓(xùn)課程跨度很大,課程內(nèi)容和授課形式也是五花八門。

區(qū)塊鏈

1、編程基礎(chǔ)入門

計(jì)算機(jī)軟硬件基礎(chǔ)、字符集及字符編碼、HTML+CSS(含HTML5+CSS3)、ECMA + BOM + DOM、jQuery、node.js、Ajax及Express

2、Go編程語(yǔ)言

Go基本語(yǔ)法、流程控制、函數(shù)及數(shù)據(jù)、錯(cuò)誤處理、Go面向?qū)ο缶幊?、Go并發(fā)編程、Go網(wǎng)絡(luò)編程、Go安全編程、Go進(jìn)階編程(goroutine、channel)、數(shù)據(jù)庫(kù)MySQL、LevelDB

3、區(qū)塊鏈1.0——比特幣Bitcoin

比特幣原理、比特幣系統(tǒng)架構(gòu)、密碼算法(Go語(yǔ)言實(shí)現(xiàn))、共識(shí)算法(Go語(yǔ)言實(shí)現(xiàn))、比特幣交易原理及交易腳本、比特幣RPC編程(node.js實(shí)現(xiàn))、比特幣源碼解析

4、區(qū)塊鏈2.0——以太坊Ethereum

以太坊工作原理及基礎(chǔ)架構(gòu)、以太坊基本概念(賬戶、交易、Gas)、以太坊錢包Mist及Metamask、以太坊交易、ERC20標(biāo)準(zhǔn)Token開(kāi)發(fā)部署、以太坊開(kāi)發(fā)IDE——remix-ide、智能合約與Solidity、Solidity部署、備份及調(diào)用、框架技術(shù):truffle及web3、DApp開(kāi)發(fā)實(shí)戰(zhàn)、Geth

5、區(qū)塊鏈3.0——超級(jí)賬本之Fabric

超級(jí)賬本項(xiàng)目介紹、Fabric部署和使用、Fabric配置管理、Fabric架構(gòu)設(shè)計(jì)、Fabric CA應(yīng)用與配置、應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)。

鏈喬教育在線旗下學(xué)碩創(chuàng)新區(qū)塊鏈技術(shù)工作站是中國(guó)教育部學(xué)校規(guī)劃建設(shè)發(fā)展中心開(kāi)展的“智慧學(xué)習(xí)工場(chǎng)2020-學(xué)碩創(chuàng)新工作站 ”唯一獲準(zhǔn)的“區(qū)塊鏈技術(shù)專業(yè)”試點(diǎn)工作站。專業(yè)站立足為學(xué)生提供多樣化成長(zhǎng)路徑,推進(jìn)專業(yè)學(xué)位研究生產(chǎn)學(xué)研結(jié)合培養(yǎng)模式改革,構(gòu)建應(yīng)用型、復(fù)合型人才培養(yǎng)體系。

Go微服務(wù)--常見(jiàn)的微服務(wù)框架

近幾年誕生了很多微服務(wù)框架,比如JAVA的Spring Cloud、Dubbo;Golang的GoKit和GoMicro以及NodeJs的Seneca。幾乎每種主流語(yǔ)言都有其對(duì)應(yīng)的微服務(wù)框架。

Go在微服務(wù)框架中有其獨(dú)特的優(yōu)勢(shì),至于優(yōu)勢(shì)在哪,自行g(shù)oogle。

1、GoKit框架

這是一個(gè)工具包的集合,可以幫助攻城獅構(gòu)建強(qiáng)大、可靠和可維護(hù)的微服務(wù)。提供了用于實(shí)現(xiàn)系統(tǒng)監(jiān)控和彈性模式組件的庫(kù),例如日志、跟蹤、限流、熔斷等。

基于這個(gè)框架的應(yīng)用程序架構(gòu)由三個(gè)主要的部分組成:

傳輸層:用于網(wǎng)絡(luò)通信,服務(wù)通常使用HTTP或者gRPC等網(wǎng)絡(luò)傳輸協(xié)議,或者使用NATS等發(fā)布訂閱系統(tǒng)相互通信。

接口層:是服務(wù)器和客戶端的基本構(gòu)建塊。每個(gè)對(duì)外提供的接口方法都會(huì)定義為一個(gè)Endpoint,一遍在服務(wù)器和客戶端之間進(jìn)行網(wǎng)絡(luò)通信,每個(gè)端點(diǎn)使用傳輸層通過(guò)HTTP或gRPC等具體通信模式對(duì)外提供服務(wù)

服務(wù)成:具體的業(yè)務(wù)邏輯實(shí)現(xiàn)

2、GoMicro框架

這是一個(gè)基于Go語(yǔ)言實(shí)現(xiàn)的插件化RPC微服務(wù)框架。提供了服務(wù)發(fā)現(xiàn)、負(fù)載均衡、同步傳輸、異步通信以及事件驅(qū)動(dòng)等機(jī)制,嘗試簡(jiǎn)化分布式系統(tǒng)之間的通信,讓開(kāi)發(fā)者更專注于自身業(yè)務(wù)邏輯的開(kāi)發(fā)。

GoMicro的設(shè)計(jì)哲學(xué)是可插拔的架構(gòu)理念,提供了可快速構(gòu)建系統(tǒng)的組件,并且可以根據(jù)自身的需求對(duì)GoMicro提供的默認(rèn)實(shí)現(xiàn)進(jìn)行定制。所有插件都可在倉(cāng)庫(kù)github.com/micro/go-plugins 中找到。

當(dāng)前名稱:go語(yǔ)言實(shí)現(xiàn)rpc編程 go語(yǔ)言編程實(shí)戰(zhàn)
文章地址:http://jinyejixie.com/article22/dosjdjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈、搜索引擎優(yōu)化面包屑導(dǎo)航、電子商務(wù)

廣告

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

綿陽(yáng)服務(wù)器托管
吉安市| 吉水县| 宜阳县| 湖州市| 同德县| 长治市| 新蔡县| 汝州市| 宣恩县| 临沂市| 新兴县| 眉山市| 临湘市| 江川县| 汝州市| 滨海县| 长治市| 兰州市| 桃源县| 邯郸县| 阳江市| 贺兰县| 平南县| 广河县| 建瓯市| 台东市| 菏泽市| 宾川县| 金秀| 定结县| 政和县| 城口县| 三江| 娱乐| 峨山| 灵石县| 通化县| 平阴县| 灵山县| 郴州市| 界首市|