Go语言微服务框架重磅升级:dubbo-go v3.2.0 -alpha 版本预览
作者:王宇轩, Apache Dubbo Committer随着 Dubbo3 在云原生微服务方向的快速发展,Dubbo 的 go 语言实现迎来了 Dubbo3 版本以来最全面、最大幅度的一次升级,这次升级是全方位的,涉及 API、协议、流量管控、可观测能力等。总的来说,新版本的 dubbo-go:...
Go语言微服务框架 - 13.监控组件Prometheus的引入
作为云原生程序监控的标准组件,Prometheus支持了各类Paas、Saas平台,并提供了一整套采集+存储+展示的解决方案。 今天我们专注于自定义服务中的Prometheus的监控,在框架中引入Prometheus相关的组件。关于更细致的使用方式,我会给出相关的链接,有兴趣进一步学习Prometh...
Go语言微服务框架 - 12.ORM层的自动抽象与自定义方法的扩展
随着接口参数校验功能的完善,我们能快速定位到接口层面的参数问题;而应用服务的分层代码,也可以通过log的trace-id发现常见的业务逻辑问题。 但在最底层与数据库的操作,也就是对GORM的使用,经常会因为我们不了解ORM的一些细节,导致对数据的CRUD失败,或者没有达到预期效果。这时,...
Go语言微服务框架 - 11.接口的参数校验功能-buf中引入PGV
随着API在线文档的发布,服务的接口将会被开放给各种各样的调用方。 大量开发接口的朋友会经常遇到接口参数校验的问题。举个例子,我们希望将某个字段是必填的,如name,我们经常会需要做两步: 在程序中加一个判断逻辑,当这个字段为空时返回错误给调用方在接口文档中加上注释,告诉调用方这个参数必填 一旦某项...
Go语言微服务框架 - 10.接口文档-openapiv2的在线文档方案
随着项目的迭代,一个服务会开放出越来越多的接口供第三方调用。 虽然protobuf已经是通用性很广的IDL文件了,但对于未接触过这块的程序员来说,还是有很大的学习成本。在综合可读性和维护性之后,我个人比较倾向于使用oepnapiv2的方案,提供在线接口文档。 接下来,我们一起来看看这部分的实现。 v...
Go语言微服务框架 - 9.分布式链路追踪-OpenTracing的初步引入
我们从API层到数据库层的链路已经打通,简单的CRUD功能已经可以快速实现。 随着模块的增加,我们会越发感受到系统的复杂性,开始关注系统的可维护性。这时,有个名词会进入我们的视野:分布式链路追踪。相关的内容可以参考这我的两篇文章: OpenTelemetry https://junedayday.g...
Go语言微服务框架 - 8.Gormer迭代-定制专属的ORM代码生成工具
在上一篇,我们写一个gormer工具库,支持了简单的CRUD。但是,在实际的开发场景中,这部分的功能仍显得非常单薄。 例如,我们对比一下GORM库提供的gorm.Model,它在新增、修改时,会自动修改对应的时间,这个可以帮我们减少很多重复性的代码编写。这里,我就针对现有...
Go语言微服务框架 - 7.Gormer-自动生成代码的初体验
CRUD是贯穿整个程序员日常开发的基本工作,占据了我们绝大多数的coding时间。 作为一名程序员,我们总是希望能有更简单的开发方式来解决重复性的工作问题。在这个小版本中,我将结合自己的工作,来给出一套自动生成代码的完整方案,供大家借鉴。 v0.5.1:Gormer-自动生成代码的初体验 项目链接 ...
Go语言微服务框架 - 6.用Google风格的API接口打通MySQL操作
随着RPC与MySQL的打通,整个框架已经开始打通了数据的出入口。 接下来,我们就尝试着实现通过RPC请求操作MySQL数据库,打通整个链路,真正地让这个平台实现可用。 v0.5.0:用Google风格的API接口打通MySQL操作 项目链接 https://github.com/Junedayda...
Go语言微服务框架 - 5.GORM库的适配sqlmock的单元测试
随着GORM库的引入,我们在数据库持久化上已经有了解决方案。但上一篇我们使用的GORM过于简单,应用到实际的项目中局限性很大。 与此同时,我们也缺乏一个有效的手段来验证自己编写的相关代码。如果依靠连接到真实的MySQL去验证功能,那成本实在太高。那么,这里我们就引入一个经典的sqlmock框架,并配...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
社区圈子
最佳实践
Go语言相关内容
- Go语言切片
- 开发语言Go
- 语言Go
- Go语言基础语法
- Go语言range
- Go语言http
- Go语言多重
- Go语言并发
- Go语言接口interface
- Go语言垃圾回收
- Go语言协程
- Go语言应用
- Go语言异常处理
- Go语言python语言
- Go语言工具
- Go语言gc
- Go语言web框架
- Go语言运算符
- Go语言分布式系统
- Go语言优势
- Go语言解析
- 并发Go语言
- Go语言并发模型
- Go语言调度器
- Go语言并发实战
- Go语言优化
- golang Go语言
- Go语言学习笔记
- Go语言panic recover
- Go语言面试题
- Go语言函数定义
- Go语言环境搭建
- Go语言开发小技巧易错点
- Go语言语法
- 世界杯Go语言足球场
- Go语言Context
- Go语言后端系统
- Go语言rpc
- Go语言main函数
- Go语言切片数组
- Go语言引用类型
- Go语言变量常量
- Go语言iota
- Go语言grpc
- Go语言库
- Go语言定时器
- Go语言高级特性
- Go语言sync包
- Go语言安装环境配置
Go更多语言相关
- go语言入门go
- 语言入门Go
- Go语言入门指南
- Go语言初体验
- Go语言基础教程
- Go语言手册
- 学习Go语言
- Go学习笔记语言
- Go语言指针
- Go语言核心手册
- Go语言学习路线
- 语言Go主题
- Go语言编程
- Go语言探索
- Go语言版本
- Go语言数组切片
- Go语言用法
- 快学Go语言
- Go进阶语言值传递引用传递
- Go语言代码
- Go语言基本数据类型
- Go语言报错
- Go语言复合数据类型
- excelize Go语言excel文档库
- Go语言笔记
- Go语言入门包
- Go语言viper
- Go语言wait
- Go语言变量函数
- 入门Go语言
- Go语言flag
- Go语言编译器
- Go语言依赖管理
- Go语言主题
- Go语言编程语言
- Go语言select
- Go语言分析
- Go语言探索原创
- Go语言编程代码
- Go语言区别
- Go语言字符串
- Go语言特性
- Go语言switch
- Go语言开源项目
- Go语言pprof
- Go语言初体验goplus
- Go语言游戏
- Go语言初体验程序员真实体验
- golang入门篇Go语言
- Go语言程序员