服务计算 - 3 | CloudGo

栏目: Go · 发布时间: 6年前

内容简介:Iris: 目前发展最快的Go Web框架。提供完整的MVC功能并且面向未来。ris自称是Go语言中所有Web框架最快的,它的特点如下:Iris是目前最优秀的框架之一,提供完整的WEB组件,且拥有较高的运行速度,所以我选择Iris进行此次开发。

服务计算 - 3 | golang web编程学习

CloudGo

框架选择

Iris: 目前发展最快的Go Web框架。提供完整的MVC功能并且面向未来。

ris自称是 Go 语言中所有Web框架最快的,它的特点如下:

  1. 聚焦高性能
  2. 健壮的静态路由支持和通配符子域名支持。
  3. 视图系统支持超过5以上模板
  4. 支持定制事件的高可扩展性Websocket API
  5. 带有GC, 内存 & redis 提供支持的会话
  6. 方便的中间件和插件
  7. 完整 REST API
  8. 能定制 HTTP 错误
  9. Typescript编译器 + 基于浏览器的编辑器
  10. 内容 negotiation & streaming
  11. 传送层安全性
  12. 源码改变后自动加载
  13. OAuth, OAuth2 支持27+ API providers
  14. JSON Web Tokens

Iris是目前最优秀的框架之一,提供完整的WEB组件,且拥有较高的运行速度,所以我选择Iris进行此次开发。

服务器代码

package main

import (
    "github.com/kataras/iris"
    "github.com/kataras/iris/middleware/logger"
    "github.com/kataras/iris/middleware/recover"
)

func main() {
    app := iris.New()
    app.Use(recover.New())
    app.Use(logger.New())
    //输出html
    // 请求方式: GET
    // 访问地址: http://localhost:9090/welcome
    app.Handle("GET", "/welcome", func(ctx iris.Context) {
        ctx.HTML("<h1>Welcome</h1>")
    })
    //输出字符串
    // 类似于 app.Handle("GET", "/ping", [...])
    // 请求方式: GET
    // 请求地址: http://localhost:9090/ping
    app.Get("/ping", func(ctx iris.Context) {
        ctx.WriteString("pong")
    })
    //输出json
    // 请求方式: GET
    // 请求地址: http://localhost:9090/hello
    app.Get("/hello", func(ctx iris.Context) {
        ctx.JSON(iris.Map{"message": "Hello World!"})
    })
    app.Run(iris.Addr(":9090")) //9090 监听端口
}

服务器测试

  1. 运行服务器:
    服务计算 - 3 | CloudGo
  2. 浏览器访问:

    服务计算 - 3 | CloudGo

  3. 使用curl对可以正常访问服务器:

    服务计算 - 3 | CloudGo

AB测试

ab -n 10000 -c 100 http://localhost:9090/welcome

服务计算 - 3 | CloudGo

  • 测试结果重要参数:
字段 含义
Server Hostname 服务器主机名
Server Port 服务器端口
Document Path 文件路径
Document Length 文件大小
Concurrency Level 并发等级
Requst per second 平均每秒的请求个数。服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
吞吐率是基于并发用户数的。这句话代表了两个含义:
a、吞吐率和并发用户数相关。
b、不同的并发用户数下,吞吐率一般是不同的。
计算公式:总请求数/处理完成这些请求数所花费的时间,即:Request per second=Complete requests/Time taken for tests.这个数值表示当前机器的整体性能,值越大越好。
Time per request 用户平均的等待时间。
计算公式:总请求数/处理完成这些请求数所花费的时间,即:Request per second=Complete requests/Time taken for tests.这个数值表示当前机器的整体性能,值越大越好。
Time per request:across all concurrent requests 计算公式:处理完成所有请求数所花费的时间/总请求数,即:Time taken for/testsComplete requests.
可以看到,它是吞吐率的倒数。同时,它也等于用户平均请求等待时间/并发用户数,即Time per request/Concurrency Level。
Connection Times 表内描述了所有的过程中所消耗的最小、中位、最长时间。
Percentage of the requests served within a certain time 每个百分段的请求完成所需的时间

net/http源码阅读

NET/HTTP源码阅读


以上所述就是小编给大家介绍的《服务计算 - 3 | CloudGo》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编程匠艺

编程匠艺

Pete Goodliffe / 韩江、陈玉 / 电子工业出版社 / 2011-11 / 85.00元

如果你可以编写出合格的代码,但是想更进一步、创作出组织良好而且易于理解的代码,并希望成为一名真正的编程专家或提高现有的职业技能,那么Pete Goodliffe编写的这本本书都会为你给出答案。本书的内容涵盖编程的各个要素,如代码风格、变量命名、错误处理和安全性等。此外,本书还对一些更广泛的编程问题进行了探讨,如有效的团队合作、开发过程和文档编写,等等。本书各章的末尾均提供一些思考问题,这些问题回顾......一起来看看 《编程匠艺》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具