<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Go 開(kāi)源說(shuō)第十八期預(yù)告:基于 Reactor 模式開(kāi)發(fā)網(wǎng)絡(luò)服務(wù)——gnet

          共 2019字,需瀏覽 5分鐘

           ·

          2021-10-17 11:19


          點(diǎn)擊藍(lán)字

          關(guān)注我們


          寫在前面


          GoCN開(kāi)源說(shuō)是GoCN推出的一檔分享Go開(kāi)源好項(xiàng)目的直播欄目,通過(guò)開(kāi)源說(shuō)希望能夠幫助到開(kāi)源作者們實(shí)現(xiàn)以下目標(biāo):

          第一是去推廣他們的開(kāi)源項(xiàng)目

          第二說(shuō)說(shuō)背后的設(shè)計(jì)原理和理念,產(chǎn)品優(yōu)越性等

          第三讓我們用戶可以了解到更多好玩有用的項(xiàng)目,避免自己造輪子重復(fù)發(fā)明

          第四當(dāng)然也希望通過(guò)這些分享讓大家學(xué)習(xí)到每一個(gè)開(kāi)源項(xiàng)目背后的設(shè)計(jì)理念,擁抱開(kāi)源,做出自己的產(chǎn)品。


          回顧地址:https://github.com/gocn/opentalk

          —— 王博鋒


          本期開(kāi)源先鋒


          潘建鋒

          ?https://github.com/panjf2000



          公司、職位:


          騰訊游戲,后端高級(jí)工程師


          嘉賓簡(jiǎn)介


          Go 協(xié)程池 ants 和高性能 Go 網(wǎng)絡(luò)庫(kù) gnet 作者,Golang、redis、istio、fasthttp、gin 等知名開(kāi)源項(xiàng)目的活躍貢獻(xiàn)者,專注于系統(tǒng)底層原理、高性能網(wǎng)絡(luò)編程、架構(gòu)設(shè)計(jì)、云原生、分布式。


          關(guān)于 gnet?

          https://github.com/panjf2000/gnet




          Go 語(yǔ)言基于 goroutine 和 GPM 調(diào)度器構(gòu)建了一個(gè)簡(jiǎn)潔而優(yōu)秀的原生網(wǎng)絡(luò)模型,讓開(kāi)發(fā)者能夠用同步的模式去編寫異步的邏輯:goroutine-per-connection 模式,極大地降低了開(kāi)發(fā)者編寫網(wǎng)絡(luò)應(yīng)用時(shí)的心智負(fù)擔(dān),而且借助于 Go Scheduler 對(duì) goroutines 的高效調(diào)度,這個(gè)原生網(wǎng)絡(luò)模型足以應(yīng)對(duì)絕大部分的應(yīng)用場(chǎng)景。


          基于同步編程模式的原生 Go 網(wǎng)絡(luò)庫(kù)能夠滿足大部分網(wǎng)絡(luò)后臺(tái)系統(tǒng)的開(kāi)發(fā),且可以有良好的性能。但是,對(duì)于某些追求極致性能的場(chǎng)景,如海量連接,原生庫(kù)會(huì)引入龐大的 goroutines 數(shù)量,消耗大量的資源,從而影響性能表現(xiàn),Go 原生網(wǎng)絡(luò)庫(kù)在這一類場(chǎng)景下會(huì)變得力不從心,在不考慮更換編程語(yǔ)言的前提下,基于 Reactor 模式開(kāi)發(fā)網(wǎng)絡(luò)服務(wù)是主流的解決方案,gnet 正是為此而生。


          核心亮點(diǎn):

          高性能:極高的網(wǎng)絡(luò)通信性能、極低的系統(tǒng)資源損耗;輕量級(jí):API 精簡(jiǎn)專注,不引入過(guò)度復(fù)雜且不實(shí)用的特性,保證框架的易用性。


          功能特性:

          • 高性能 的基于多線程/Go程網(wǎng)絡(luò)模型的 event-loop 事件驅(qū)動(dòng)

          • 內(nèi)置 goroutine 池,由開(kāi)源庫(kù) ants 提供支持

          • 內(nèi)置 bytes 內(nèi)存池,由開(kāi)源庫(kù) bytebufferpool 提供支持

          • 整個(gè)生命周期是無(wú)鎖的

          • 簡(jiǎn)單易用的 APIs

          • 高效、可重用而且自動(dòng)伸縮的環(huán)形內(nèi)存 buffer

          • 支持多種網(wǎng)絡(luò)協(xié)議/IPC 機(jī)制:TCP、UDP 和 Unix Domain Socket

          • 支持多種負(fù)載均衡算法:Round-Robin(輪詢)、Source-Addr-Hash(源地址哈希) 和 Least-Connections(最少連接數(shù))

          • 支持兩種事件驅(qū)動(dòng)機(jī)制:Linux 里的 epoll 以及 FreeBSD/DragonFly/Darwin 里的 kqueue

          • 支持異步寫操作

          • 靈活的事件定時(shí)器

          • SO_REUSEPORT 端口重用

          • 內(nèi)置多種編解碼器,支持對(duì) TCP 數(shù)據(jù)流分包:LineBasedFrameCodec, DelimiterBasedFrameCodec, FixedLengthFrameCodec 和 LengthFieldBasedFrameCodec,參考自 netty codec,而且支持自定制編解碼器

          • 實(shí)現(xiàn) gnet 客戶端(測(cè)試中)


          發(fā)展?fàn)顩r:

          目前 gnet 是性能最高的第三方 Go 語(yǔ)言開(kāi)源網(wǎng)絡(luò)庫(kù),且應(yīng)用廣泛,目前已經(jīng)在騰訊、騰訊游戲、愛(ài)奇藝、百度、小米等大型互聯(lián)網(wǎng)公司的生產(chǎn)環(huán)境上部署運(yùn)行,經(jīng)過(guò)大廠們的線上流量考驗(yàn),gnet 在穩(wěn)定性方面是有保障的,可以放心試用。


          本期精彩看點(diǎn)


          • GMP 調(diào)度器精要

            講解 Go 的 GMP 調(diào)度器的基本運(yùn)行原理,使讀者對(duì) Go 語(yǔ)言的并發(fā)調(diào)度有一個(gè)整體且較為準(zhǔn)確的理解。

          • Go 網(wǎng)絡(luò)并發(fā)模型

            進(jìn)一步講解 Go 語(yǔ)言的網(wǎng)絡(luò)并發(fā)模型,理解基于 Go 構(gòu)建的網(wǎng)絡(luò)服務(wù)在底層是如何運(yùn)轉(zhuǎn)的。

          • 優(yōu)化 Go 網(wǎng)絡(luò)開(kāi)發(fā)

            講解 gnet 是如何直接基于多路復(fù)用技術(shù)提升網(wǎng)絡(luò)通信性能的,以及 gnet 在 Go 原生網(wǎng)絡(luò)庫(kù)之外的定位的目標(biāo)。


          如何提前互動(dòng)


          請(qǐng)?jiān)?span style="max-width: 100%;color: rgb(255, 104, 39);box-sizing: border-box !important;overflow-wrap: break-word !important;">評(píng)論區(qū)留下你對(duì)于?gnet? 項(xiàng)目感興趣的問(wèn)題,我們會(huì)統(tǒng)一收集在直播中進(jìn)行答疑~

          如何報(bào)名


          查看下列截圖你是否在任意的Gopher群里,如果已經(jīng)加入任一Gopher群,只要在 29?日關(guān)注群內(nèi)動(dòng)向,我們會(huì)在晚上 20:00 準(zhǔn)時(shí)開(kāi)啟直播。


          如果還沒(méi)找到組織,請(qǐng)掃碼入群,屆時(shí)我們會(huì)在群內(nèi)開(kāi)啟直播,如果群滿了請(qǐng)加微信:gopherWang。


          直播時(shí)間:10 月 14 日晚 20:00



          瀏覽 103
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  xjgggyxgs.com高价收liang,请涟系@qdd2000 | 伊人久久香 | 最近最新中文字幕无码 | 好叼操| 人妻露脸边干边接电话 |