之前介绍过golang中restful api的博客,是使用redis作为持久化,httprouter作为框架: Go实战–通过httprouter和redis框架搭建restful api服务(github.com.../julienschmidt/httprouter) 今天,继续echo框架,这次加入mongodb作为持久化存储,使用jwt进行验证,来搭建一套rest api,类似Twitter。...其中,很多知识点之前都有介绍过: 关于golang中使用mongodb科技参考: Go实战–golang使用ssl连接MongoDB(mgo) Go实战–golang中使用MongoDB(mgo)...关于golang中的使用jwt(JSON Web Token): Go实战–golang中使用JWT(JSON Web Token) 代码结构: .
[up-bb3f55e9018f5b09b6405d97afcbe8f3db0.png] 介绍 通过一个完整例子,在 Echo 框架中开启 TLS/SSL,我就是我们常说的 https。...我们将会使用 rk-boot 来启动 Echo 框架的微服务。...cfssljson -bare server 安装 go get github.com/rookie-ninja/rk-boot go get github.com/rookie-ninja/rk-echo...serverKeyPath: "cert/server-key.pem" # Optional, default: "", path of certificate on local FS echo...package main import ( "context" "github.com/rookie-ninja/rk-boot" _ "github.com/rookie-ninja/rk-echo
[up-0d0aa073725db5f89acacbf6a510edf8b0e.png] 介绍 通过一个完整例子,介绍如何优雅关闭 Echo 微服务。 什么是优雅关闭?...我们将会使用 rk-boot 来启动 Echo 框架微服务。...//rkdocs.netlify.app/cn 安装 go get github.com/rookie-ninja/rk-boot go get github.com/rookie-ninja/rk-echo...快速开始 1.创建 boot.yaml boot.yaml 文件会告诉 rk-boot 如何启动 Echo 服务。...--- echo: - name: greeter # Name of grpc entry port: 8080
[up-545ab2078302badf2496341112fa24d8c6c.png] 介绍 通过一个完整例子,在基于 Echo 框架的微服务中添加 Prometheus 监控。...Echo 框架监控中间件,会在后续的文章中介绍。 我们将会使用 rk-boot 来启动 Echo 基于框架的微服务。...快速开始 1.创建 boot.yaml boot.yaml 文件描述了 Echo 框架启动的原信息,rk-boot 通过读取 boot.yaml 来启动 Echo。...启动 prometheus boolean false echo.prom.path Prometheus Web 路径 string /metrics echo.prom.pusher.enabled...string "" echo.prom.pusher.remoteAddress Pushgateway 远程地址, http://x.x.x.x 或者 x.x.x.x string "" echo.prom.pusher.intervalMs
网络教程的echo程序,在server断开链接的时候,会出现卡死的情况,如何防止这样的问题出现呢?...我自己优化了一把,异步的echo程序,在client端进行容错判断,在server重启的时候能够进行重新链接。 啥也不说了,上代码。...//server.go package main import ( "bufio" "fmt" "net" ) func Echo(c net.Conn) { defer c.Close...to listen: %s\n", err.Error()) } for { if c, err := l.Accept(); err == nil { go Echo...tc.RecvStr <- string("Server close...") } } else { tc.Echo() } } func main()
[up-6a3091c17de98f7e474715f2a34a3a2b431.png] 介绍 通过一个完整例子,在基于 Echo 框架中,为每一个 API 自动添加 RequestId 。...我们将会使用 rk-boot 来启动 Echo 微服务。...//rkdocs.netlify.app/cn 安装 go get github.com/rookie-ninja/rk-boot go get github.com/rookie-ninja/rk-echo...--- echo: - name: greeter # Required port: 8080 # Required...package main import ( "context" "github.com/rookie-ninja/rk-boot" _ "github.com/rookie-ninja/rk-echo
前言 今天是我golang框架阅读系列第四篇文章,今天我们主要看看echo的框架执行流程。...关于golang框架生命周期源码阅读下面是我的计划: 计划 状态 Go框架解析:beego ✅done Go框架解析:iris ✅done Go框架解析:gin ✅done Go框架解析:echo ✅done...Go框架解析:revel ✈️doing Go框架解析:Martini ️️✈️doing 再完成各个golang框架生命周期的解析之后,我会计划对这几个框架的优略进行一个系列分析,由于业内大多都是性能分析的比较多...} echo的生命周期 看完echo的框架流程,再对别iris、gin。...---- 《Go框架解析》系列文章链接如下: Go框架解析:echo Go框架解析:gin Go框架解析:iris Go框架解析:beego
[up-e92fe8c2aa39fff4700e7a3086aaae5fc5a.png] 介绍 本文介绍如何通过 rk-boot 在一个进程里启动多个 Echo 端口。 为什么要启动多个端口?...//rkdocs.netlify.app/cn 安装 go get github.com/rookie-ninja/rk-boot go get github.com/rookie-ninja/rk-echo...--- echo: - name: alice port: 1949 enabled: true commonService: enabled: true -...boot.yaml 里 echo 是一个数组,所以使用 echox 来表示。 1.启动 main.go with --rkset $ go build main.go $ ....类型 例子 Map app.description="This is description" List echo0.name="alice",echo0.port=8081
[up-f19b38fb8d246c169a047b9f78ef7591048.png] 介绍 本文将介绍如何在 Echo 框架之上提供 Swagger UI。...请访问如下地址获取完整 Echo 教程: https://rkdocs.netlify.app/cn 先决条件 Echo 没有自带生成 Swagger UI 配置文件的功能。...框架的微服务。...boot.yaml 文件会告诉 rk-boot 如何启动 Echo 服务,下面的例子中,我们指定了端口,Swagger UI 的 json 文件路径。..." "github.com/rookie-ninja/rk-echo/boot" "net/http" ) // @title RK Swagger for Echo // @version 1.0
这一节的重点会放在如何在Echo和Gin这两个框架中增加对pprof HTTP请求的支持,因为pprof只是提供了对net/http包的ServerMux的路由支持,这些路由想放到Echo和Gin里使用时...在Echo中使用pprof 由于Echo框架使用的复用器ServerMux是自定义的,需要手动注册pprof提供的路由,网上有几个把他们封装成了包可以直接使用, 不过都不是官方提供的包。...后来我看了一下pprof提供的路由Handler的源码,只需要把它转换成Echo框架的路由Handler后即可能正常处理那些pprof相关的请求,具体转换操作很简单我就直接放代码了。...注册好路由后还需要对Echo框架的写响应超时WriteTimeout做一下配置,保证发生写超时的时间设置要大于pprof做数据采集的时间,这个配置对应的是/debug/pprof路由的seconds...和Gin这两个框架里开启对pprof性能采集的支持,具体对程序性能分析的方法和步骤还是和第一篇Golang程序性能分析(一)pprof和go-torch中重点讲的内容一样。
[up-58a544fdbabf0cbe595101a22c96e107df3.png] 介绍 本文通过一个完整的例子,介绍如何在 Echo 框架下设计合理的 API 错误码。...我们将会使用 rk-boot 来启动 Echo 基于框架的微服务。...快速开始 通过 rk-boot ,用户可以轻松搭建 Echo 框架微服务,rk-boot 集成了 Panic 捕捉以及标准错误类型。...完整例子 1.创建 boot.yaml boot.yaml 文件描述了 Echo 框架启动的原信息,rk-boot 通过读取 boot.yaml 来启动 Echo。...--- echo: - name: greeter port: 8080 enabled: true 2.创建 main.go 让 /v1/greeter 返回一个错误。
[up-fc24491338815d0b12a71e5abfed07d4ce5.png] 介绍 通过一个完整例子,在 Echo 框架中合理管理日志。 有什么使用场景?...日志自动滚动 分成多个日志文件 日志格式修改 等等 我们将会使用 rk-boot 来启动 Echo 框架的微服务。...//rkdocs.netlify.app/cn 安装 go get github.com/rookie-ninja/rk-boot go get github.com/rookie-ninja/rk-echo...# Optional, options: console, json outputPaths: ["logs/zap.log"] # Optional echo...github.com/rookie-ninja/rk-boot" "github.com/rookie-ninja/rk-entry/entry" _ "github.com/rookie-ninja/rk-echo
[up-60cfc71159c635f9e59660183edfe0aa460.png] 介绍 通过一个完整例子,在基于 Echo 框架的微服务中添加 Prometheus 监控中间件。...我们将会使用 rk-boot 来启动 Echo 框架的微服务。...例如:module github.com/your-repo/rk-demo 1.创建 boot.yaml boot.yaml 文件描述了 Echo 框架启动的原信息,rk-boot 通过读取 boot.yaml...来启动 Echo。...eg: Echo resCode 返回码, eg: OK
[up-d4d654496226b48128b93fc9276dd8c82c2.png] 介绍 通过一个完整例子,在基于 Echo 框架的微服务中添加 API 日志中间件。...我们将会使用 rk-boot 来启动 Echo 框架的微服务。...1.创建 boot.yaml boot.yaml 文件描述了 Echo 框架启动的原信息,rk-boot 通过读取 boot.yaml 来启动 Echo。...详情: CommonService --- echo: - name: greeter # Required, name of echo entry port...# Required, port of echo entry enabled: true # Required, enable echo entry
跨源资源共享 实例 运行在http://localhost:8082端口的前端服务器express和运行在http://localhost:8080端口的后端服务器golang net/http。...同源检查是浏览器的行为,而且只针对fetch、XMLHttpRequest请求 如果是其他客户端,例如golang net/http client、postman,他们是不做同源检查的。...更多相关知识请参考: MDN:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS 补充: Golang解决跨域的完整代码: 上面给的解决方法...1,只是针对例子的简陋的版本,真正go通过CORS解决跨域问题的完整代码: gin中间件: func Cors(context *gin.Context) { method := context.Request.Method
[up-491f44bc82d87f17ab06cdb280dc904a6dc.png] 介绍 通过一个完整例子,在基于 Echo 框架的微服务中添加 HTTP 基本验证中间件。...我们将会使用 rk-boot 来启动 Echo 框架的微服务。...快速开始 1.创建 boot.yaml boot.yaml 文件描述了 Echo 框架启动的原信息,rk-boot 通过读取 boot.yaml 来启动 Echo。...# Required, port of echo entry enabled: true # Required, enable echo entry...# Required, port of echo entry enabled: true # Required, enable echo entry
[up-2aaa6092a6cb35029331625260af77b3aa9.png] 介绍 通过一个完整例子,在基于 Echo 框架的微服务中实现【超时】中间件。...我们将会使用 rk-boot 来启动 Echo 框架的微服务。...//rkdocs.netlify.app/cn 安装 go get github.com/rookie-ninja/rk-boot go get github.com/rookie-ninja/rk-echo...1.创建 boot.yaml boot.yaml 文件告诉 rk-boot 如何启动 Echo 服务。...package main import ( "context" "github.com/rookie-ninja/rk-boot" _ "github.com/rookie-ninja/rk-echo
[up-fcef8aeb072972c6971190d717032475098.png] 介绍 通过一个完整例子,在 Echo 框架中嵌入 Web UI 获取服务元信息。...信息 | 如果是 Git 工程,会展示 | | Log 信息 | 展示 Log 原信息 | | Metrics | 展示 Prometheus Metrics | 我们将会使用 rk-boot 来启动 Echo...//rkdocs.netlify.app/cn 安装 go get github.com/rookie-ninja/rk-boot go get github.com/rookie-ninja/rk-echo...1.创建 boot.yaml 除了开启 echo.tv.enabled,我们还开启了其他服务,这样就可以验证完整 TV 页面。 请参考专栏里其他文章来获取每个选项的详细信息。...[up-59f45f045eda4653ef23ac91cf4f46a5870.png] 4.3 API 列表 rk-boot 会读取 Echo 内部所有 API 列表。
[up-55f502865c4e0f73917242daf7a5a458605.png] 介绍 通过一个完整例子,基于 Echo 框架实现分布式日志追踪。 什么是 API 日志追踪?...[up-8ead02aa468249e304818f6fd277be88027.png] 我们将会使用 rk-boot 来启动 Echo 框架的微服务。...//rkdocs.netlify.app/cn 安装 go get github.com/rookie-ninja/rk-boot go get github.com/rookie-ninja/rk-echo...--- echo: - name: greeter # Required port: 1949 # Required.../rk-echo/interceptor/context" "net/http" ) // Application entrance. func main() { // Create a new
Golang环境搭建 ——————— Windows平台应先安装 MinGW 一、Windows平台 1.下载官方提供的相应平台的安装包: https://code.google.com.../p/go/downloads/list 2.将下载的安装包解压到自己指定的Golang安装目录下(假设为:D:\Go)。...3.添加如下环境变量: GOROOT Golang安装目录,比如D:\Go GOPATH 用来指定在$GOROOT之外的,包含到项目和他们的二进制文件的源目录。...GOBIN Golang安装目录下的bin目录,D:\Go\bin目录 GOOS 目标平台(编译后的目标平台)的操作系统(darwin、freebsd、linux、windows) GOARCH.../golang.sh 4.在终端执行 go env 验证Golang环境变量 5.在终端执行 go ,出现 go 指令的参数说明信息,表明安装成功。
领取专属 10元无门槛券
手把手带您无忧上云