点击蓝字

关注我们

写在前面

GoCN开源说是GoCN推出的一档分享Go开源好项目的直播栏目,通过开源说希望能够帮助到开源作者们实现以下目标:

第一是去推广他们的开源项目

第二说说背后的设计原理和理念,产品优越性等

第三让我们用户可以了解到更多好玩有用的项目,避免自己造轮子重复发明

第四当然也希望通过这些分享让大家学习到每一个开源项目背后的设计理念,拥抱开源,做出自己的产品。

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

—— 王博锋

本期开源先锋

潘建锋

https://github.com/panjf2000

公司、职位:

腾讯游戏,后端高级工程师

嘉宾简介

Go 协程池 ants 和高性能 Go 网络库 gnet 作者,Golang、redis、istio、fasthttp、gin 等知名开源项目的活跃贡献者,专注于系统底层原理、高性能网络编程、架构设计、云原生、分布式。

关于 gnet 

https://github.com/panjf2000/gnet

Go 语言基于 goroutine 和 GPM 调度器构建了一个简洁而优秀的原生网络模型,让开发者能够用同步的模式去编写异步的逻辑:goroutine-per-connection 模式,极大地降低了开发者编写网络应用时的心智负担,而且借助于 Go Scheduler 对 goroutines 的高效调度,这个原生网络模型足以应对绝大部分的应用场景。

基于同步编程模式的原生 Go 网络库能够满足大部分网络后台系统的开发,且可以有良好的性能。但是,对于某些追求极致性能的场景,如海量连接,原生库会引入庞大的 goroutines 数量,消耗大量的资源,从而影响性能表现,Go 原生网络库在这一类场景下会变得力不从心,在不考虑更换编程语言的前提下,基于 Reactor 模式开发网络服务是主流的解决方案,gnet 正是为此而生。

核心亮点:

高性能:极高的网络通信性能、极低的系统资源损耗;轻量级:API 精简专注,不引入过度复杂且不实用的特性,保证框架的易用性。

功能特性:

  • 高性能 的基于多线程/Go程网络模型的 event-loop 事件驱动

  • 内置 goroutine 池,由开源库 ants 提供支持

  • 内置 bytes 内存池,由开源库 bytebufferpool 提供支持

  • 整个生命周期是无锁的

  • 简单易用的 APIs

  • 高效、可重用而且自动伸缩的环形内存 buffer

  • 支持多种网络协议/IPC 机制:TCP、UDP 和 Unix Domain Socket

  • 支持多种负载均衡算法:Round-Robin(轮询)、Source-Addr-Hash(源地址哈希) 和 Least-Connections(最少连接数)

  • 支持两种事件驱动机制:Linux 里的 epoll 以及 FreeBSD/DragonFly/Darwin 里的 kqueue

  • 支持异步写操作

  • 灵活的事件定时器

  • SO_REUSEPORT 端口重用

  • 内置多种编解码器,支持对 TCP 数据流分包:LineBasedFrameCodec, DelimiterBasedFrameCodec, FixedLengthFrameCodec 和 LengthFieldBasedFrameCodec,参考自 netty codec,而且支持自定制编解码器

  • 实现 gnet 客户端(测试中)

发展状况:

目前 gnet 是性能最高的第三方 Go 语言开源网络库,且应用广泛,目前已经在腾讯、腾讯游戏、爱奇艺、百度、小米等大型互联网公司的生产环境上部署运行,经过大厂们的线上流量考验,gnet 在稳定性方面是有保障的,可以放心试用。

本期精彩看点

  • GMP 调度器精要

    讲解 Go 的 GMP 调度器的基本运行原理,使读者对 Go 语言的并发调度有一个整体且较为准确的理解。

  • Go 网络并发模型

    进一步讲解 Go 语言的网络并发模型,理解基于 Go 构建的网络服务在底层是如何运转的。

  • 优化 Go 网络开发

    讲解 gnet 是如何直接基于多路复用技术提升网络通信性能的,以及 gnet 在 Go 原生网络库之外的定位的目标。

如何提前互动

请在评论区留下你对于 gnet  项目感兴趣的问题,我们会统一收集在直播中进行答疑~

如何报名

查看下列截图你是否在任意的Gopher群里,如果已经加入任一Gopher群,只要在 29 日关注群内动向,我们会在晚上 20:00 准时开启直播

如果还没找到组织,请扫码入群,届时我们会在群内开启直播,如果群满了请加微信:gopherWang。

直播时间:10 月 14 日晚 20:00

Go 开源说第十八期预告:基于 Reactor 模式开发网络服务——gnet相关推荐

  1. Go 开源说第十五期预告: Erda ——新一代企业级云原生 PaaS 平台

    点击蓝字 关注我们 写在前面 GoCN开源说是GoCN推出的一档分享Go开源好项目的直播栏目,通过开源说希望能够帮助到开源作者们实现以下目标: 第一是去推广他们的开源项目 第二说说背后的设计原理和理念 ...

  2. Go 开源说第十六期预告:跨语言的分布式事务方案——DTM

    点击蓝字 关注我们 写在前面 GoCN开源说是GoCN推出的一档分享Go开源好项目的直播栏目,通过开源说希望能够帮助到开源作者们实现以下目标: 第一是去推广他们的开源项目 第二说说背后的设计原理和理念 ...

  3. COS访谈第十八期:陈天奇

    COS访谈第十八期:陈天奇 [COS编辑部按] 受访者:陈天奇      采访者:何通   编辑:王小宁 简介:陈天奇,华盛顿大学计算机系博士生,研究方向为大规模机器学习.他曾获得KDD CUP 20 ...

  4. 发布 项目_第十八期科创基金项目发布会圆满结束

    第十八期科创基金项目发布会圆满结束 贺电!贺电! 电子信息工程学院发来贺电:第十八届科创基金项目发布会圆满结束啦!感谢导师们的支持.现场同学的热情参与和科协朋友后勤服务! NUAA 即使是寒冷的冬天也 ...

  5. 鲁大师电动车智能化测评报告第十八期:加量降价,九号完成产品破圈?

    鲁大师第十八期智能化电动车测评排行榜数据来源于鲁大师智慧实验室,测评的车型均为市面上主流品牌的主流车型.截止目前,鲁大师智能化电动车测评的车型高达90余种,且还在不断增加和丰富中. 1. 测评依据 鲁 ...

  6. CSDN 编程竞赛二十八期题解

    竞赛总览 CSDN 编程竞赛二十八期:比赛详情 (csdn.net) 本期竞赛的题目都很简单,但是非常考验读题和编码速度.这一次没有遇到bug,竞赛体验较好. 竞赛题解 题目1.小Q的鲜榨柠檬汁 团建 ...

  7. FME模板兴趣班第十八期(面遮挡处理) 任务小结

    班长欣欣 一.题目说明 对面进行遮挡处理,处理要求如下: 多个面之间存在压盖,要求压盖区域用Level高的遮挡Level低的,并将压盖区域从Level低的面中擦除.如下图所示: 面1.面2.面3 的L ...

  8. 第十八期基金定投-全民抗疫

    5请阅读本计划之前,仔细阅读以下内容: 1. 本计划仅供参考,市场有风险,投资需谨慎 2. 此计划的预计年限是2-3年,因此投资的钱是稳定而不用的钱 3. 请打算按此计划购买的朋友,再三考虑,是否熬得 ...

  9. 《区块链改变生活》第十八期 大白话聊井通——井通人

    <区块链改变生活>第十八期 大白话聊井通--井通人https://www.ximalaya.com/thirdparty/player/sound/player.html?id=19477 ...

最新文章

  1. 如何在centos安装python-mysql
  2. 百度自从取消餐补,公司同事天天七点多就跑了,八点基本工位都空了。
  3. mysql行级锁测试
  4. 项目开发中的自我总结
  5. 5G发展是绵绵秋雨 应循序渐进
  6. python 常用代码
  7. 安装Bootstrap3编译版本
  8. SpringBoot 简单实现仿CAS单点登录系统
  9. verilog实现多周期处理器之——(一)基本概念以及总体框架
  10. C#2.0 泛型学习(入门)
  11. 【C语言】16-预处理指令2-条件编译
  12. php挂机源码,织音QQ助手QQ互赞挂机开源版源码
  13. iOS公司开发者账号申请 营业执照
  14. 网络测速一原理及实例
  15. C++//变量和基本类型
  16. VC++ 如何让 MessageBox或AfxMessageBox 按钮显示英文或其他语言
  17. (转)Sync Renderer与画面撕裂
  18. GPT-4.0人工智能的下载
  19. 【转】使用DevExpress的WebChartControl控件绘制图表(柱状图、折线图、饼图)
  20. 美国网红python微博_利用Python对微博网红进行对比

热门文章

  1. 电子计算机没电了,电脑没电关机有损害吗
  2. 7.3 从被动到主动
  3. 永磁直驱风力发电机结构图_直驱式风力发电机概述
  4. iOS6之后 NSAttributedString 的福利
  5. SVN使用中的经验浅谈
  6. Android 下载库 TigerDownload Rxjava2,retrofit2
  7. vue ui组件muse-ui的使用
  8. php中文乱码问号,解决PHP中文乱码问题
  9. Certbot命令行工具使用说明
  10. 程序员在家办公007