Golang 语言微服务的服务注册与发现组件 Consul
介绍在 2016 年底,我开始接触 Golang 语言和微服务,在过去的 5 年中,微服务架构变得越来越流行,目前中型及以上规模的公司几乎已经全部抛弃单体架构。本文我们主要介绍 Golang 语言微服务的服务注册与发现组件 consul。在介绍 Consul 之前,我们先简单了解一下服务注册与发现和 CAP 定理。服务注册与发现微服务架构与单体架构不同,微服务架构按照业务需求拆分为多个微服务,每....
Golang 语言怎么使用 go-micro 和 gin 开发微服务?
介绍Go Micro 是一个分布式系统开发框架。Go Micro 提供了分布式系统开发的核心需求,包括 RPC 和事件驱动的通信。Gin 是一个用 Golang 编写的 web 框架。本文首先介绍怎么使用 go-micro 和 go-grpc 构建微服务,然后再介绍怎么集成 gin 和 go-micro。我们使用的 go-micro 版本是 v1.18.0,golang 版本是 v1.13,gi....
Go语言微服务框架 - 13.监控组件Prometheus的引入
作为云原生程序监控的标准组件,Prometheus支持了各类Paas、Saas平台,并提供了一整套采集+存储+展示的解决方案。 今天我们专注于自定义服务中的Prometheus的监控,在框架中引入Prometheus相关的组件。关于更细致的使用方式,我会给出相关的链接,有兴趣进一步学习Prometheus的同学...
Go语言微服务框架 - 12.ORM层的自动抽象与自定义方法的扩展
随着接口参数校验功能的完善,我们能快速定位到接口层面的参数问题;而应用服务的分层代码,也可以通过log的trace-id发现常见的业务逻辑问题。 但在最底层与数据库的操作,也就是对GORM的使用,经常会因为我们不了解ORM的一些细节,导致对数据的CRUD失败,或者没有达到预期效果。这时,...
Go语言微服务框架 - 11.接口的参数校验功能-buf中引入PGV
随着API在线文档的发布,服务的接口将会被开放给各种各样的调用方。 大量开发接口的朋友会经常遇到接口参数校验的问题。举个例子,我们希望将某个字段是必填的,如name,我们经常会需要做两步: 在程序中加一个判断逻辑,当这个字段为空时返回错误给调用方在接口文档中加上注释,告诉调用方这个参数必填 一旦某项...
Go语言微服务框架 - 10.接口文档-openapiv2的在线文档方案
随着项目的迭代,一个服务会开放出越来越多的接口供第三方调用。 虽然protobuf已经是通用性很广的IDL文件了,但对于未接触过这块的程序员来说,还是有很大的学习成本。在综合可读性和维护性之后,我个人比较倾向于使用oepnapiv2的方案,提供在线接口文档。 接下来,我们一起来看看这部分的实现。 v0.7.0&...
Go语言微服务框架 - 9.分布式链路追踪-OpenTracing的初步引入
我们从API层到数据库层的链路已经打通,简单的CRUD功能已经可以快速实现。 随着模块的增加,我们会越发感受到系统的复杂性,开始关注系统的可维护性。这时,有个名词会进入我们的视野:分布式链路追踪。相关的内容可以参考这我的两篇文章: OpenTelemetry https://junedayday.github.i...
Go语言微服务框架 - 8.Gormer迭代-定制专属的ORM代码生成工具
在上一篇,我们写一个gormer工具库,支持了简单的CRUD。但是,在实际的开发场景中,这部分的功能仍显得非常单薄。 例如,我们对比一下GORM库提供的gorm.Model,它在新增、修改时,会自动修改对应的时间,这个可以帮我们减少很多重复性的代码编写。这里,我就针对现有...
Go语言微服务框架 - 7.Gormer-自动生成代码的初体验
CRUD是贯穿整个程序员日常开发的基本工作,占据了我们绝大多数的coding时间。 作为一名程序员,我们总是希望能有更简单的开发方式来解决重复性的工作问题。在这个小版本中,我将结合自己的工作,来给出一套自动生成代码的完整方案,供大家借鉴。 v0.5.1:Gormer-自动生成代码的初体验 项目链接 https:...
Go语言微服务框架 - 6.用Google风格的API接口打通MySQL操作
随着RPC与MySQL的打通,整个框架已经开始打通了数据的出入口。 接下来,我们就尝试着实现通过RPC请求操作MySQL数据库,打通整个链路,真正地让这个平台实现可用。 v0.5.0:用Google风格的API接口打通MySQL操作 项目链接 https://github.com/Junedayday/micro_web_s...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
微服务
构建可靠、高效、易扩展的技术基石
+关注