摘要:
[TOC] 概述 首先同步下项目概况: 上篇文章分享了,路由中间件 Jaeger 链路追踪(理论篇),这篇文章咱们接着分享:路由中间件 Jaeger 链路追踪(实战篇)。 这篇文章,确实让大家久等了,主要是里面有一些技术点都是刚刚研究的,没有存货。 先看下咱们要实现的东西: API 调用了 5 个服 阅读全文
摘要:
[TOC] 概述 首先同步下项目概况: 上篇文章分享了,路由中间件 捕获异常,这篇文章咱们分享:路由中间件 Jaeger 链路追踪。 啥是链路追踪? 我理解链路追踪其实是为微服务架构提供服务的,当一个请求中,请求了多个服务单元,如果请求出现了错误或异常,很难去定位是哪个服务出了问题,这时就需要链路追 阅读全文
摘要:
[TOC] 概述 首先同步下项目概况: 上篇文章分享了,路由中间件 日志记录,这篇文章咱们分享:路由中间件 捕获异常。当系统发生异常时,提示 “系统异常,请联系管理员!”,同时并发送 panic 告警邮件。 什么是异常? 在 Go 中异常就是 panic,它是在程序运行的时候抛出的,当 panic 阅读全文
摘要:
[TOC] 概述 首先同步下项目概况: 上篇文章分享了,规划项目目录和参数验证,其中参数验证使用的是 validator.v8 版本,现已更新到 validator.v9 版本,最新代码查看 github 即可。 这篇文章咱们分享:路由中间件 日志记录。 日志是特别重要的一个东西,方便我们对问题进行 阅读全文
摘要:
[TOC] 概述 首先同步下项目概况: 上篇文章分享了,使用 go modules 初始化项目,这篇文章咱们分享: 规划目录结构 模型绑定和验证 自定义验证器 制定 API 返回结构 废话不多说,咱们开始吧。 规划目录结构 上面的目录结构是我自定义的,大家也可以根据自己的习惯去定义。 control 阅读全文
摘要:
[TOC] 概述 我想实现一个开箱即用的 API 框架的轮子,这个轮子是基于 Gin 基础上开发的。 为什么是开箱即用,它会集成哪些功能? 以上功能点,都是常用的,后期可能还会增加。 废话不多说,咱们开始吧。 创建一个项目,咱们首先要考虑一个依赖包的管理工具。 常见的包管理有,dep、go vend 阅读全文
摘要:
[TOC] 概述 原来分享基础语法的时候,还未分享过 chan 通道,这次把它补上。 chan 可以理解为队列,遵循先进先出的规则。 在说 chan 之前,咱们先说一下 go 关键字。 在 go 关键字后面加一个函数,就可以创建一个线程,函数可以为已经写好的函数,也可以是匿名函数。 举个例子: 输出 阅读全文
摘要:
[TOC] 概述 开始 gRPC 了,这篇文章学习使用 gRPC,输出一个 Hello World。 用 Go 实现 gRPC 的服务端。 用 Go 实现 gRPC 的客户端。 gRPC 支持 4 类服务方法,咱们这次实现 单项 RPC 和 服务端流式 RPC。 四类服务方法 单项 RPC 服务端发 阅读全文
摘要:
[TOC] 概述 很多读者在后台向我要 Gin 框架实战系列的 Demo 源码,在这里再说明一下,源码我都更新到 GitHub 上,地址:https://github.com/xinliangnote/Go 开始今天的文章,为什么要自定义错误处理?默认的错误处理方式是什么? 那好,咱们就先说下默认的 阅读全文
摘要:
[TOC] 概述 上篇文章分享了 Gin 框架使用 Logrus 进行日志记录,这篇文章分享 Gin 框架的数据绑定与验证。 有读者咨询我一个问题,如何让框架的运行日志不输出控制台? 解决方案: 我是怎么知道的?看框架代码。 : 代码我就不贴了。 我们看到 使用了两个中间件 ,如果不想使用,那就直接 阅读全文