首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏歪歪梯Club

    Go开源游戏服务器框架——Pitaya

    简介 Pitaya是一款由国外游戏公司topfreegames使用golang进行编写,易于使用,快速且轻量级的开源分布式游戏服务器框架 Pitaya使用etcd作为默认的服务发现组件,提供使用nats { Wrap(acceptor.Acceptor) acceptor.Acceptor } Agent Agent是一个服务端的应用层连接对象,包含了: Session信息 服务器预发送消息队列 services注册了处理客户端的服务 内部聚合一个RemoteService对象,专门负责处理服务器间的数据包 type ( HandlerService struct { } pipelineAfterChannel struct { Handlers []AfterHandlerTempl } ) 框架流程 app.go是系统启动的入口 创建HandlerService 并根据启动模式如果是集群模式创建RemoteService 开启服务端事件监听 开启监听服务器关闭信号的Chan var (

    9.4K40发布于 2020-09-24
  • 来自专栏Golang语言社区

    Go语言异步服务器框架原理和实现

    Go语言类库中,有两个官方的服务器框架,一个HTTP,一个是RPC。 使用这个两个框架,已经能解决大部分的问题,但是,也有一些需求,这些框架是不够的,这篇文章,我们先分析一下HTTP 和 RPC服务器的特点, 然后结合这两个服务器的特点,我实现了一个新的服务器,这个服务器非常适合客户端和服务器端有大量交互的情况 后面是消息的参数,可以是任何的go的结构,变量。 比如,一个用户写错程序了,错误的发起了10万个请求,服务器端不能开个10万个go进行处理,这样的话,会直接拖垮服务器,我们给每个用户设置了一个并发处理数目,最多这个用户可以并发处理多少个请求。 当然,服务器框架本身提供了心跳机制,对消息广播系统,实时性是非常重要的,即时的检查出网络异常,才能保证实时性。 以上是对我们的异步消息服务器框架的一个简单的介绍。

    2.7K70发布于 2018-03-22
  • 来自专栏流媒体技术

    Go语言实现的流媒体服务器开发框架

    综上所述,本人在吸收了以上诸多流媒体服务器的设计后,完成了Monibuca这款golang编写的流媒体开发框架的编写 受到vue渐进式思想的影响 vue渐进式框架的设计思想非常棒,那么是否可以用来设计流媒体服务器 ,使得流媒体服务器不只是一个服务器,而是一个开发框架,让开发者可以定制化自己的流媒体服务器呢? 如何实现可扩展——插件化 许多IDE和编辑器都依靠插件化技术得以拓展其功能,并形成其生态,例如vs、vs code、eclipse、jetbrains系列,当然vue作为一个前端框架也是设计了很不错的插件机制 ::: tip 源码位置 订阅者定义位于monica/room.go中 ::: 流媒体服务器的核心是转发二字。当你去研究一款流媒体服务器的时候,会有海量的代码阻碍你看清其核心逻辑。 ::: tip 源码位置 该核心逻辑位于monica/room.go中的Run函数内 ::: 如何实现高性能 流媒体服务器对性能要求极为苛刻。

    2.3K21编辑于 2022-07-28
  • 来自专栏Go开发框架

    Go语言实战框架GoFly全栈开发社区的Go快速开发框架简介与腾讯云服务器部署说明

    一、前言 今天为大家推荐的Go框架,比较适合企业和个人用于实战项目,框架前后端质量比较注重实际应用。 社区团队们更加多年积累经验打磨出Go快速开发应用框架。同比其他框架开发速度更快,扩展性更强,资源复用性更高,框架约束开发规则更简单,特别是数据库操作更简单。 例如 1. 2.安装Go环境,建议使用宝塔面板(安装方法区参考宝塔面板文档) 3.上传项目文件到服务器 上传文件有:config/settings.yml、runtime(空文件夹)、resource(资源文件), 5.在宝塔面板Go项目管理配置域名,最后启动项目,就OK了! 图片 三、优势简介 基于优秀成熟框架集成,保证系统文档可靠。 四、在线体验 1 GoFly全栈开发社区 2 Go快速后台系统开发框架完整代码包下载 3 Go快速后台系统开发文档 4 A端Demo在线预览 5 B端Demo在线预览 五、图片预览 图片 图片

    1.1K160编辑于 2023-08-16
  • 来自专栏软件

    go的xorm框架

    xorm框架 xorm框架和Spring Data Jpa有点相似,可以对比学习,对于这个框架感觉还不错,闲暇时间学习一下 一、创建数据库连接 xorm支持单引擎和多引擎,多引擎的场景对于初学者来说,没有必要考虑 AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; struct结构体 student.go int `orm:"age" json:"age"` Gradeid int `orm:"gradeid" json:"gradeid"` } grade.go Primary Key,如果在一个struct中有多个字段都使用了此标记,则这多个字段构成了复合主键,单主键当前支持int32,int,int64,uint32,uint,uint64,string这7种Go 的数据类型,复合主键支持这7种Go的数据类型的组合。

    1.6K50发布于 2021-08-10
  • 来自专栏TIGERB的技术博客

    Go框架解析:echo

    关于golang框架生命周期源码阅读下面是我的计划: 计划 状态 Go框架解析:beego ✅done Go框架解析:iris ✅done Go框架解析:gin ✅done Go框架解析:echo ✅done Go框架解析:revel ✈️doing Go框架解析:Martini ️️✈️doing 再完成各个golang框架生命周期的解析之后,我会计划对这几个框架的优略进行一个系列分析,由于业内大多都是性能分析的比较多 安装 使用go mod安装: // 初始化go.mod文件 go mod init echo-code-read // 安装echo go get github.com/labstack/echo/ / / touch main.go 创建main.go文件贴如下面的示例 // 复制依赖到vendor目录 go mod vendor 启动一个简单的echo http服务: package main import ---- 《Go框架解析》系列文章链接如下: Go框架解析:echo Go框架解析:gin Go框架解析:iris Go框架解析:beego

    1.9K20发布于 2020-10-29
  • 来自专栏TIGERB的技术博客

    Go框架解析-Gin

    关于golang框架生命周期源码阅读下面是我的计划: 计划 状态 Go框架解析-beego done Go框架解析-iris done Go框架解析-gin done Go框架解析-echo doing Go框架解析-revel doing Go框架解析-Martini doing 再完成各个golang框架生命周期的解析之后,我会计划对这几个框架的优略进行一个系列分析,由于业内大多都是性能分析的比较多 使用go mod安装: // 初始化go.mod文件 go mod init gin-code-read // 安装gin go get github.com/gin-gonic/gin // 复制依赖到 gin的生命周期 看完gin框架流程我有大致如下几个感触: gin是我目前看过的这三个go框架里最简洁的框架 gin和iris在框架设计存在风格一致的地方,例如注册中间件、handle的执行 总之,目前就一个感受 : Gin是我认为的一个GO框架应该有的样子 下图就是我对整个Gin框架生命周期的输出,由于图片过大存在平台压缩的可能,建议大家直接查看原图链接。

    1.5K30发布于 2020-10-29
  • 来自专栏酒楼

    go语言Modules框架

    Go语言中,Go Modules是与Java的Maven类似的构建和依赖管理工具。 Go Modules 是Go语言从 Go 1.11 版本开始引入的官方包管理系统。 go.mod:Go Modules 的配置文件,它包含了模块路径和依赖项的信息。 go.sum:Go Modules 的校验和文件,用于记录依赖项的校验和。 | |- file1.go | | |- file2.go | |- package2/ | |- file1.go | |- file2.go |- cmd / | | |- file1.go | | |- file2.go | |- module2/ | |- file1.go | |- file2.go 以下是一些常用的 Go Modules 命令: go mod init <module>:初始化一个新的 Go 模块(module),创建一个新的 go.mod 文件。

    68040编辑于 2023-05-30
  • 来自专栏sktj

    Go http服务器

    image.png sync.Mutex锁 image.png image.png 返回更详细的信息 image.png

    2.1K20发布于 2019-07-17
  • 来自专栏golang从入门到进阶

    使用 Go现代化为框架 Huma 框架构建 Go REST API

    Huma是一个现代化的GoWeb框架,专注于OpenAPI规范和开发者体验[[1]]。 returnresp,nil})//启动服务器log.Println("服务器启动在http://localhost:8888")http.ListenAndServe(":8888",router)} 测试API展开代码语言:BashAI代码解释#启动服务器gorunmain.go#测试APIcurl-XPOSThttp://localhost:8888/greeting\-H"Content-Type ✅API优先项目-需要高质量API文档✅团队协作-前后端契约明确✅类型安全-编译时捕获错误✅快速原型-文档和代码同步生成何时选择其他框架? #主程序├──models/│└──user.go#数据模型├──handlers/│└──user_handlers.go#处理器├──db/│└──surreal.go#数据库连接└──go.mod

    15210编辑于 2026-02-14
  • 来自专栏Golang语言社区

    go实现一个简单的游戏服务器框架(lotou)起源

    最近一直想学习一些关于游戏服务器的知识,显示看了一下云风的skynet框架,从而对于一个游戏服务器框架有了一个基本概要了解。先来说说我对于skynet的一些理解吧。 消息分发 skynet中有一个消息队列的队列,这个队列保存了每一个服务的消息队列,当发送消息的时候,将消息放入指定服务器的消息队列中,然后有1-N个工作线程,负责从队列中取出一个服务器的消息,然后在这个线程中对这些消息进行处理 当然,针对服务器,云风还在lua层做了很多重要的处理,这里就不细说了。 就是在这样一种心态下,我开始接触了go语言,一个静态类型、编译、类C的语言,并且支持高并发和一样很好的封装了通信和网络接口。 通过几天的go语言学习,我决定用它来实现自己的第一个游戏服务器框架,因为以前没有怎么接触过游戏服务器编程,所以就只好模拟一下skynet的行为了。

    1.9K120发布于 2018-03-27
  • 来自专栏DevOps

    Go:微服务框架介绍

    golang 常见微服务框架有 按starts数排列 1 go-kit go-kit是一个分布式的开发工具集,在大型的组织(业务)中可以用来构建微服务,其解决了分布式系统中大多数常见问题,因此,使用者可以将精力集中在业务逻辑上 ,go-kit不是一个框架,他只是一个工具集,他里面有用来帮助我们实现微服务的一些工具包 地址:https://github.com/go-kit/kit 文档:https://gokit.io/ star数:23k 2 go-micro Go Micro是一个插件化的基础框架,基于此可以构建微服务,Micro的设计哲学是可插拔的插件化架构,在架构之外,它默认实现了consul作为服务发现,通过 3 go-kratos 哔哩哔哩(B站)开源的一套Go微服务框架,Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关功能及工具,协议通信以 HTTP/gRPC 为基础,通过 Protobuf KiteX 是字节跳动框架组研发的下一代高性能、强可扩展性的 Go RPC 框架

    1K10编辑于 2024-03-29
  • 来自专栏写代码和思考

    Go web 开发框架 Iris

    背景 掌握了 Go 语言的基础后就该开始实践了,编写Web应用首先需要一个 web 开发框架。做框架选型时,处理web请求是基本功能,至于MVC是更进一步需要。 Iris简介 它是用Go编写的一个相当新的web框架。它是精心编写的最快的HTTP/2 web 框架。 跨域资源共享( CORS )机制允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。 Iris 的一个社区框架可以帮助解决跨域问题,分几个步骤: 配置 crs 对象的参数,AllowedOrigins 参数设定服务器地址 为你的 Party 加入允许。 ")) } 详细见:https://github.com/iris-contrib/middleware/tree/master/cors 了解更多 更多请参考官方文档:https://iris-go.com

    2K20发布于 2020-03-20
  • Go 语言的主流框架

    一、Web 框架1. 全能型框架 Gin 特点:高性能(比标准库快40x)、极简设计适用场景:RESTful API 开发(高频调用场景)生态: 中间件生态丰富(JWT/CORS等)企业用户:字节跳动、腾讯示例: go 体验 /Server-Sent Events二、微服务框架1. RPC 框架 gRPC-Go 核心价值:云原生标准通信协议,支持多语言性能:HTTP/2 + Protobuf 二进制编码工具链: protoc-gen-go:Proto 文件生成 Go 代码grpc-gateway Gin 开始适配 WebAssembly 边缘计算Go 框架生态的核心理念是 "简单性 > 魔法性",大多数工具都保持轻量级设计,通过组合而非继承扩展功能。

    50110编辑于 2025-07-29
  • 来自专栏程序技术知识

    go之web框架 iris

    最近开始学习GO的WEB框架,IRIS号称是Go最快的后端Web框架,目前发展最快的Go Web框架。提供完整的MVC功能并且面向未来。所以先从它开始。 github地址https://github.com/kataras/iris文档https://docs.iris-go.com/安装go get -u github.com/kataras/iris http://localhost:8080/ping // http://localhost:8080/hello app.Run(iris.Addr(":8080")) }运行go run main.go新打开个窗口执行curl http://localhost:8080结果 Hello world!

    88620编辑于 2022-06-30
  • 来自专栏FunTester

    etcd框架实践【Go版】

    总之,etcd作为一个可靠的分布式键值存储框架,为构建分布式系统提供了很好的基础支持。 特点与使用场景 etcd作为一个分布式的键值存储系统,具有以下一些显著的特点: 简单的数据模型。 go get go.etcd.io/etcd/client/v3 执行完之后,mod文件增加了一下内容: go.etcd.io/etcd/api/v3 v3.5.14 // indirect go.etcd.io client, err := clientv3.New(clientv3.Config{ Endpoints: []string{"localhost:2379"}, // etcd 服务器地址 = nil { panic("连接服务器失败!!!") INFO test/etcd_test.go:86 删除结果: 0 --- PASS: TestEtcd (0.04s) PASS 锁 etcd框架一个主要特征就是分布式,可以用来进行分布式锁的实现,

    54910编辑于 2024-07-05
  • 来自专栏GopherCoder

    『项目结构与框架Go

    objects.go infra utils.go main main.go parse github 好,上面的例子是我借鉴之后形成的专门给爬虫定下的框架。 这个例子可能没有说服力。 再举个例子:beego 是著名的 HTTP 框架。 整体设计架构分为八大独立的模块构成,高度解耦。 所以,我们需要打造属于自己的项目框架(项目组织结构)。当然需要按场景来,比如,这是一个 web 项目,你还傻乎乎的按照上文提的爬虫的项目组织进行组织代码。 在此还是分享下提供restful api 服务的项目组织结构,希望对大家有帮助,而且这个项目结构会是我今后主推的代码框架。直到能够熟练的使用。 以上就是我想本节分享的关于项目结构和组织的两个框架:1. 一个适用于爬虫 2. 一个适用restful api 服务 再会,我是谢伟。

    97730发布于 2018-06-06
  • 来自专栏全栈程序员必看

    ubuntu安装go语言_go语言web服务器

    大家好,又见面了,我是你们的朋友全栈君 来源:微信公众号「编程学习基地」 文章目录 简介 下载go安装包 环境配置 添加环境变量 第一个go语言程序 go入门学习 简介 go语言是一种开源的 可以用于系统监控、容器技术(Docker)、大数据、存储技术、分布式系统(Hyperledger Fabric)、消息系统(Kafka客户端)、服务器管理、安全工具、Web工具等。 这里介绍在Linux上安装并配置go。 下载go安装包 到GoLang中国,下载Go语言安装包。 go1.10.4 linux/amd64 第一个go语言程序 编辑hello.go文件,编辑如下 package main import ( "fmt" ) func main() { } 编译go项目,生成可执行程序 go build hello.go 直接运行go go run hello.go go入门学习 C语言中文网:http://c.biancheng.net/golang

    1.2K20编辑于 2022-11-04
  • 来自专栏JackieZheng

    Go组件学习——Web框架Gin

    因为你只要知道,你用的是一个Web开发框架就行了。 相比于Spring在Java一家独大的局面,Go生态中的Web框架还在百家争鸣的阶段。从今天开始学习一款基于Go语言开发的Web开发框架Gin。 依赖管理工具:go mod IDE:Goland 因为我使用了go mod,所以引用gin的依赖算是很方便了。 有以下三种方式 直接新建一个基于gin的example程序文件,然后执行 go build xxx.go或者 go run xxx.go命令,go mod就会自动帮你下载gin依赖并更新go.mod文件 一个极简的Web服务器就这样搭建完成并对外访问了。 上面的代码中 通过 r:=gin.Default()声明一个gin的引擎,后续的操作都是基于这个引擎的。 这个问题,本周我们服务端在和客户端对接的时候还遇到了,因为框架返回的JSON串就是经过编码的,但是单独请求放到浏览器是没有问题的,客户端收到的却是经过编码的,最后排查发现是浏览器插件解码了。

    1.4K10发布于 2019-11-18
  • 来自专栏FunTester

    Go语言gorm框架MySQL实践

    gorm是一个使用Go语言编写的ORM框架。文档齐全,对开发者友好,支持主流数据库。 我最近在补齐Go语言各类基础的框架和操作库的知识,终于进展到了数据库阶段,搜资料的时候基本都是推荐这个框架,可见其之流行程度。在不断尝试练习之后,总结了一些经验和使用方式,供初学者参考。 但是在gorm框架中几乎看不到完整的SQL语句,都是通过方法和参数 go.mod github.com/jinzhu/gorm v1.9.16 在执行Go Mod Tidy的时候会把相关需要的依赖(这个用词可能不准 go.mod我现在也不是很熟悉,我也是抄能力发动+IDE提示完成的,通常来说比较顺利。 这里可以很明显看出gorm拼接查询条件的思路,就是把查询条件分类然后单独写不同的条件,由gorm框架做SQL语句的拼接。

    2.2K20编辑于 2022-02-08
领券