服务计算 - 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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Design and Analysis of Distributed Algorithms (Wiley Series on P

Design and Analysis of Distributed Algorithms (Wiley Series on P

Nicola Santoro / Wiley-Interscience / 2006-10-27 / USD 140.95

This text is based on a simple and fully reactive computational model that allows for intuitive comprehension and logical designs. The principles and techniques presented can be applied to any distrib......一起来看看 《Design and Analysis of Distributed Algorithms (Wiley Series on P》 这本书的介绍吧!

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

在线压缩/解压 CSS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

html转js在线工具
html转js在线工具

html转js在线工具