beego

beego、nginx性能测试

你离开我真会死。 提交于 2020-01-01 08:58:33
测试工具:ab(apacheBench) 硬件环境: Intel xeon cpu E5-2682 v4 2.50GHz 4 core 8GBytes 内存 软件环境: ubuntu16 nginx 静态文件 3Kbytes 26000次响应/秒(平均值) 吞吐量:111Mbytes/秒(平均值) 并发数:300 每次请求响应时间:10.8[ms](平均值) ------------------------------------------------ 58Kbytes 20000次响应/秒(平均值) 吞吐量:1165Mbytes/秒(平均值) 并发数:300 每次请求响应时间:14.2[ms](平均值) ------------------------------------------------------- beego 动态文件 3Kbytes 16000次响应/秒(平均值) 吞吐量:52Mbytes/秒(平均值) 并发数:330 每次请求响应时间:20.2[ms](平均值) 性能测试结果分析: 从以上结果可以看出,nginx对静态文件的处理性能,不论是是吞吐量、并发量、单位请求处理时间上,都很强大。而且cpu占用只有50%。整个性能表现受到ab单进程的限制,并没有完全发挥。 而beego的动态文件处理,性能也很强大。同样的文件(3Kbytes)

GoLang系列-beego框架的安装(一)

送分小仙女□ 提交于 2019-12-30 04:56:43
GoLang系列-beego框架的安装(一) 前言:到这里相信大家应该对Go语言有了大概的了解,作为一个快速增长的开源编程语言,构建简单、快速并且可靠,那么在Go语言下有哪些Web开发框架呢?先放一张人气图如下: 当然上图仅供参考,但是可以说明的是Go下Web框架用的最多的还是Gin 和 Beego ;Gin作为一个Go语言写的HTTP Web框架,它提供了Martini风格的API并有更好的性能,而Beego同样作为Go语言下开源的,高性能Web框架他的性能虽不敌Gin,但是从各个功能完善角度讲,它是有非常大的优势的, 此篇博客将主要针对于Beego框架的使用进行介绍 Beego安装 (我这里主要以window为操作系统,其他操作系统安装原理一样) 1.首先安装Go https://golang.org/dl/ 上图为不同操作系统下的安装文件,我这里环境为Windows,下载完成之后在系统变量里配置环境变量,我这里安装到D盘Golang目录下,所以在path下添加: D:\Golang\bin 配置完成之后检查是否安装成功,如下可以看到已经成功安装Go,版本为1.13.5 C:\Users\Administrator>go version go version go1.13.5 windows/amd64 接下来我们配置GOPATH,也就是工作空间目录

beego框架开发投票网站(1) beego基础之运行逻辑

青春壹個敷衍的年華 提交于 2019-12-26 06:26:36
本文档需结合beego官方文档食用 博主也仅仅是边学边记录,不保证内容的正确性,请当做通俗读物来看待 首先 beego是一个基于go语言的框架 其次 beego是一个mvc框架 框架可以理解为对底层又封装了一次 mvc的意思是models(模型)views(视图)controllers(控制器) model 可以理解为数据库相关 view 可以理解为前端相关 controller可以理解为控制器 beego项目运行流程 我对这部分理解十分浅显 beego文档感觉还是不太友好 首先运行的是main.go的bee.run 在main函数之前init()总是优先运行的这是基础知识 bee.run所做的工作beego文档讲述的十分清晰 在这里我们只需要知道做了什么工作即可,不认识的名词都没关系,用到了回头看即可 beego文档 bee.run bee.run做了很多的准备工作,准备好了后开始监听端口,对内的监听在写文档时我也不知道是干嘛的。 一旦 run 起来之后,我们的服务就监听在两个端口了,一个服务端口 8080 作为对外服务,另一个 8088 端口实行对内监控 监听端口发现用户请求发生变化后 1.首先查找main中所注册的路由 2.找到对应的控制器 3.运行控制器中的处理逻辑,对数据库进行操作,如需返回模板则返回模板 举例 点击登录按钮,你的地址栏变成了8080/login

Windows安装beego框架环境

不打扰是莪最后的温柔 提交于 2019-12-25 18:32:33
1、到官网下载安装包,地址是:https://golang.org/dl/ ,自选对应环境; 2、在任意目录,新建文件夹E:\work\code\go,cmd进入该目录,执行 go env 查看环境配置; 3、设置golang的GOPATH环境 set GOARCH=amd64 set GOBIN= set GOCACHE=C:\Users\Administrator\AppData\Local\go-build set GOEXE=.exe set GOFLAGS= set GOHOSTARCH=amd64 set GOHOSTOS=windows set GOOS=windows set GOPATH=C:\Users\Administrator\go set GOPROXY= set GORACE= set GOROOT=C:\Go set GOTMPDIR= set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64 set GCCGO=gccgo set CC=gcc set CXX=g++ set CGO_ENABLED=1 set GOMOD= set CGO_CFLAGS=-g -O2 set CGO_CPPFLAGS= set CGO_CXXFLAGS=-g -O2 set CGO_FFLAGS=-g -O2 set CGO

beego配置文件

 ̄綄美尐妖づ 提交于 2019-12-24 01:27:13
关于App配置: #App配置 for Api AppName = ApiService RunMode = dev RouterCaseSensitive = true ServerName = ApiService RecoverPanic = true CopyRequestBody = true EnableGzip = false MaxMemory = 1 << 26 EnableErrorsShow = true EnableErrorsRender = false AppName 应用名称,通过 bee new 创建的项目名 AppName = beego beego.BConfig.AppName = "beego" RunMode 可选 prod 、 dev 、 test 。默认 dev 为开发模式有日志打印, prod 会关闭日志的打印, test 测试模式还没用过 RunMode = dev beego.BConfig.RunMode = "dev" RouterCaseSensitive 路由忽略大小写匹配,默认为true,意思是不需要刻意配置 RouterCaseSensitive = true beego.BConfig.RouterCaseSensitive = true ServerName beego 服务器默认在请求的时候输出 server 为

bee

a 夏天 提交于 2019-12-20 09:57:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 入门咯 官网 新建项目 beego 的项目基本都是通过 bee 命令来创建的,那我们就先拉取代码吧。 bee框架 go get -u github.com/astaxie/beego bee命令行工具 go get -u github.com/beego/bee 创建一个api 首先我们看命令行,一般是 -h 或者help bee help 果不其然 Bee is a Fast and Flexible tool for managing your Beego Web Application. USAGE bee command [arguments] AVAILABLE COMMANDS version Prints the current Bee version migrate Runs database migrations api Creates a Beego API application bale Transforms non-Go files to Go source files fix Fixes your application by making it compatible with newer versions of Beego dlv Start a debugging session

Output to csv file dumps the data to browser but not dump to file

こ雲淡風輕ζ 提交于 2019-12-20 02:12:35
问题 I tried to ouput some data to csv file in golang beego framework, here is my code records := make([][]string,len(devicesData)) for k,v := range devicesData{ records[k] = []string{v.Fields.Country,v.Fields.Imei[0],v.Fields.Number[0]} } writer := csv.NewWriter(this.Controller.Ctx.ResponseWriter) for _, record := range records { err := writer.Write(record) if err != nil { fmt.Println("Error:", err) return } } this.Ctx.Output.Header("Content-Type", "application/csv") this.Ctx.Output.Header(

CentOS部署beego REST api 要点:

余生颓废 提交于 2019-12-19 00:03:59
1、环境说明 centos版本:CentOS Linux release 7.3.1611 (Core) (可用命令查询:cat /etc/redhat-release) golang版本:go version go1.13.5 linux/amd64 freetds版本:freetds-1.1.24 (linux下odbc连接sqlserver2008) redis版本:redis-2.6.14 2、golang环境安装 (1)下载go1.13.5.linux-amd64.tar.gz( linux可用wget命令) PS:如果网络环境限制,可以在其它地方下载,用xftp工具上传至linux环境 (2)解压 tar -zxvf go1.13.5.linux-amd64.tar.gz -C /usr/local 解压到目录/usr/local, 可以看到go目录 (3) 工作目录 新建一个工作目录,比如:mkdir -p /home/torch/soft/go-work (4)设置环境变量 vim /etc/profile 在最后添加如下内容: export GOROOT=/usr/local/go export GOPATH=/home/torch/soft/go-work export PATH=$PATH:$GOROOT/bin:$GOPATH/bin 环境变量生效

beego模板语法 go语言模版语法

落花浮王杯 提交于 2019-12-18 10:15:08
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Go 语言的默认模板采用了 {{ 和 }} 作为左右标签,但是我们有时候在开发中可能界面是采用了 AngularJS 开发,他的模板也是这个标签,故而引起了冲突。在 beego 中你可以通过配置文件或者直接设置配置变量修改: beego.TemplateLeft = "<<<" beego.TemplateRight = ">>>" 使用 . 来访问当前位置的上下文 使用 $ 来引用当前模板根级的上下文 使用 $var 来访问创建的变量 模板中支持的 go 语言符号 {{"string"}} // 一般 string {{`raw string`}} // 原始 string {{'c'}} // byte {{print nil}} // nil 也被支持 其他的基本语法我也不在这里写了,大家去查看beego的 官方文档 我只写一下我遇到的问题, 一、默认路径问题 我的模板中有很多文件都是在一个统一的目录下,这个目录的名称有可能会变化,所以我选择在baseController的Prepare中 self.Data["viewpath"] = "/static" 在index.tpl中 <script src="{{.viewpath}}/Js/jquery-1.8.0.min.js"></script> 二

Beego-Go语言在开发过程遇到一些小问题汇总

☆樱花仙子☆ 提交于 2019-12-18 10:13:40
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在开发过程中经常会遇见一些问题,现把汇总和解决方法记录一下。 1、session设置的问题 在设置session的时候,有整型,有字符串类型,在连接的时候要用到: fmt.Sprintf() + 连接字符串,不格式一下,直接拼接会报错 this.SetSession("userLogin", fmt.Sprintf("%d", users.Id)+"||"+users.Username+"||"+users.Avatar) 2、session获取问题 在设置好session后,获取的是通过 this.GetSession("userLogin") 如果userLogin的值是整型的话,不会报错;如果按上面的(第一条),整型与字符串拼接,会报错 可以采用: this.GetSession("userLogin").(string) .(string)有多种类型,如果获取session报错的时候,根据自己的实际情况换成.(int)等 在非Controller中操作Session import ( "github.com/astaxie/beego/context" ) var FilterAdmin = func(ctx *context.Context) { ctx.Input.CruSession.Get(