栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Gin、Go HTTP库、ReverseProxy、Nginx代理性能压测

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Gin、Go HTTP库、ReverseProxy、Nginx代理性能压测

笔记本(英特尔 i7 8700HQ),分配内存4G, 4核CPU虚拟机进行试验

1、Gin
func main() {
	router := gin.New()
	router.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{"message": "pong"})
	})
	server := &http.Server{
		Addr:         addr,
		WriteTimeout: time.Second * 3,
		Handler:      router,
	}
	log.Fatal(server.ListenAndServe())
}

c10k+100w

2、Go HTTP库
var addr = "127.0.0.1:2003"
func main() {
	log.Println("Starting httpserver at " + addr)
	mux := http.NewServeMux()
	mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
		upath := fmt.Sprintf("http://%s%sn", r.Addr, req.URL.Path)
		realIP := fmt.Sprintf("RemoteAddr=%s,X-Forwarded-For=%v,X-Real-Ip=%vn", req.RemoteAddr, req.Header.Get("X-Forwarded-For"), req.Header.Get("X-Real-Ip"))
		header := fmt.Sprintf("headers =%vn", req.Header)
		io.WriteString(w, upath)
		io.WriteString(w, realIP)
		io.WriteString(w, header)
	})
	server := &http.Server{
		Addr:         addr,
		WriteTimeout: time.Second * 3,
		Handler:      mux,
	}
	log.Fatal(server.ListenAndServe())
}

3、ReverseProxy
var realAddr, proxyAddr = "http://127.0.0.1:2003", "127.0.0.1:8080"
func main() {
	backend, _ := url.Parse(realAddr)
	server := http.Server{
		Addr:         proxyAddr,
		WriteTimeout: time.Second * 3,
		Handler:      httputil.NewSingleHostReverseProxy(backend),
	}
	log.Fatal(server.ListenAndServe())
}

4、Nginx代理
user  root;
worker_processes  16;
events {
    worker_connections 65535 ;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       20030;
        server_name  localhost;

        location / {
            proxy_pass http://127.0.0.1:2003/;
        }
    }
}

5、汇总表格
方式类别QPStotaltime
http服务c10k+100wgin10444100w95.741s
http服务线程30、600个连接持续30秒gin60684183w30.10s
http服务线程30、600个连接持续30秒go http44583134w30.10s
http代理线程30、600个连接持续30秒ReverseProxy2731382.2w30.10s
http代理线程30、600个连接持续30秒Nginx1516245.6w30.10s
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909415.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号