简单web服务程序cloudgo

我用来开发cloudgo的框架是echo,因为它是一种轻量级、简洁、文档详细的web框架。

echo官网:http://go-echo.org

echo下载地址:https://github.com/labstack/echo

echo最大的优点是它的性能,下面是echo和其他web框架的性能对比:

在这里插入图片描述

cloudgo程序

使用echo编写的cloudgo程序如下:

package main

import (
	"net/http"
	"github.com/labstack/echo"
)

func main() {
	e := echo.New()
	e.GET("/users/:name", func(c echo.Context) error { // 设置页面路由
		name := c.Param("name")	// 得到url参数
		return c.String(http.StatusOK, "Welcome, "+name+"!")
	})
	e.Logger.Fatal(e.Start(":8888")) // 设置运行端口
}

可以看到,使用echo开发一个web程序非常简单,只需要寥寥数行代码。这个程序的功能是接收一个后缀为/users/username的url并且返回一个带有username的网页,终端运行程序:
在这里插入图片描述

并在浏览器上访问本地的8888端口,效果如图:

在这里插入图片描述

curl测试

使用curl工具对cloudgo进行测试,打开终端,输入:

$ curl -v http://localhost:8888/users/Peter

得到输出如下:

在这里插入图片描述
可以看到一些请求和相应信息。

ab压力测试

使用Ubuntu上的apache2-utils工具对cloudgo进行压力测试。在终端输入:

ab -n 1000 -c 100 http://localhost:8888/users/Peter

表示对网页发起1000轮请求,每轮请求为并发的100次请求。

输出结果如下:

在这里插入图片描述
在这里插入图片描述

其中重要参数的含义如下:

  • Document Path:请求的资源,这里为/Users/Peter

  • Document Lenght:文档返回的长度,不包括相应头部,这里为15字节

  • Concurrency Level:并发个数,这里为1

  • Complete requests:总请求数,这里为1

  • Failed requests:失败请求数,这里为1

  • Requests per second:平均每秒请求数,这里为1655.67个/s

  • Time per request:平均每个请求消耗的时间(单位ms),这里为0.604ms

  • Time per request:平均每个请求消耗的时间/请求并发数(单位:ms),这里为0.504ms,因为并发个数为1

  • Transfer rate:传输速率(单位KB/s),这里为213.43KB/s

  • Percentage of the requests served within a certain time (ms)

    格式:百分数+数字,比如90% 1表示1ms内完成了90%的请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值