Apollo配置中心
摘要:Apollo(阿波罗)是携程开源的一款可靠的分布式配置管理中心,它能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 Apollo(阿波罗)是携程开源的一款可靠的分布式配置管理中心,它能够集中化管理应用不同环境、
阅读全文
posted @
2024-11-04 17:24
AtlasLapetos
阅读(29)
推荐(0) 编辑
基于consul实现服务注册与发现
摘要:Consul是一个分布式、高可用性和数据中心感知的解决方案,用于跨动态、分布式基础设施连接和配置应用程序。 Consul介绍 Consul是一个分布式、高可用性和数据中心感知的解决方案,用于跨动态、分布式基础设施连接和配置应用程序。 控制平面(control plane) Consul 提供了一个控
阅读全文
posted @
2024-11-04 17:23
AtlasLapetos
阅读(82)
推荐(0) 编辑
gRPC教程
摘要:RPC算是近些年比较火热的概念了,随着微服务架构的兴起,RPC的应用越来越广泛。本文介绍了RPC和gRPC的相关概念,并且通过详细的代码示例介绍了gRPC的基本使用。 gRPC是什么 gRPC是一种现代化开源的高性能RPC框架,能够运行于任意环境之中。最初由谷歌进行开发。它使用HTTP/2作为传输协
阅读全文
posted @
2024-11-04 17:21
AtlasLapetos
阅读(57)
推荐(0) 编辑
RPC原理与Go RPC
摘要:本文介绍了RPC的概念以及Go语言中标准库rpc的基本使用。 什么是RPC RPC(Remote Procedure Call),即远程过程调用。它允许像调用本地服务一样调用远程服务。 RPC是一种服务器-客户端(Client/Server)模式,经典实现是一个通过发送请求-接受回应进行信息交互的系
阅读全文
posted @
2024-11-04 17:20
AtlasLapetos
阅读(11)
推荐(0) 编辑
使用zap接收gin框架默认的日志并配置日志归档
摘要:本文介绍了在基于gin框架开发的项目中如何配置并使用zap来接收并记录gin框架默认的日志和如何配置日志归档。 我们在基于gin框架开发项目时通常都会选择使用专业的日志库来记录项目中的日志,go语言常用的日志库有zap、logrus等。网上也有很多类似的教程,我之前也翻译过一篇《在Go语言项目中使用
阅读全文
posted @
2024-11-04 17:20
AtlasLapetos
阅读(60)
推荐(0) 编辑
在Go语言项目中使用Zap日志库
摘要:本文先介绍了Go语言原生的日志库的使用,然后详细介绍了非常流行的Uber开源的zap日志库,同时介绍了如何搭配Lumberjack实现日志的切割和归档。 在Go语言项目中使用Zap日志库 介绍 在许多Go语言项目中,我们需要一个好的日志记录器能够提供下面这些功能: 能够将事件记录到文件中,而不是应用
阅读全文
posted @
2024-11-04 17:19
AtlasLapetos
阅读(140)
推荐(0) 编辑
在gin框架中使用JWT
摘要:JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,目前多用于前后端分离项目和OAuth2.0业务场景下。 什么是JWT? JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,
阅读全文
posted @
2024-11-04 17:18
AtlasLapetos
阅读(34)
推荐(0) 编辑
gin框架源码解析
摘要:通过阅读gin框架的源码来探究gin框架路由与中间件的秘密。 gin框架路由详解 gin框架使用的是定制版本的httprouter,其路由的原理是大量使用公共前缀的树结构,它基本上是一个紧凑的Trie tree(或者只是Radix Tree)。具有公共前缀的节点也共享一个公共父节点。 Radix T
阅读全文
posted @
2024-11-04 17:17
AtlasLapetos
阅读(51)
推荐(0) 编辑
Gin框架介绍及使用
摘要:Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin。 Gin框架介绍 Go世界里最流行的Web框架,Github上有32K+star。 基于httprou
阅读全文
posted @
2024-11-04 17:16
AtlasLapetos
阅读(69)
推荐(0) 编辑
Go语言操作Redis
摘要:Redis介绍 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。除此之外,通过复制、持久化和客户端分片等特性,我们可以很方便地将Redis扩展成一个能够包含数百GB数据、每秒处理上百万次请求的系统。 Redis支持的数
阅读全文
posted @
2024-11-04 17:16
AtlasLapetos
阅读(138)
推荐(0) 编辑
处理并发错误
摘要:我们可以在Go语言中十分便捷地开启goroutine去并发地执行任务,但是如何有效的处理并发过程中的错误则是一个很棘手的问题,本文介绍了一些处理并发错误的方法。 recover goroutine中的panic 我们知道可以在代码中使用 recover 来会恢复程序中意想不到的 panic,而 pa
阅读全文
posted @
2024-11-04 17:14
AtlasLapetos
阅读(9)
推荐(0) 编辑
Go语言基础之单元测试
摘要:不写测试的开发不是好程序员。我个人非常崇尚TDD(Test Driven Development)的,然而可惜的是国内的程序员都不太关注测试这一部分。 这篇文章主要介绍下在Go语言中如何做单元测试和基准测试。 go test工具 Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代
阅读全文
posted @
2024-11-04 17:13
AtlasLapetos
阅读(25)
推荐(0) 编辑
Go语言基础之网络编程
摘要:现在我们几乎每天都在使用互联网,我们前面已经学习了如何编写Go语言程序,但是如何才能让我们的程序通过网络互相通信呢?本章我们就一起来学习下Go语言中的网络编程。 关于网络编程其实是一个很庞大的领域,本文只是简单的演示了如何使用net包进行TCP和UDP通信。如需了解更详细的网络编程请自行检索和阅读专
阅读全文
posted @
2024-11-04 17:12
AtlasLapetos
阅读(13)
推荐(0) 编辑
Go语言基础之并发
摘要:并发编程在当前软件领域是一个非常重要的概念,随着CPU等硬件的发展,我们无一例外的想让我们的程序运行的快一点、再快一点。Go语言在语言层面天生支持并发,充分利用现代CPU的多核优势,这也是Go语言能够大范围流行的一个很重要的原因。 基本概念 首先我们先来了解几个与并发编程相关的基本概念。 串行、并发
阅读全文
posted @
2024-11-04 17:11
AtlasLapetos
阅读(31)
推荐(0) 编辑
Go语言基础之time包
摘要:我们在编程中经常会用到时间和日期数据,本文主要介绍了Go语言内置的time包的基本用法。 time包 时间和日期是我们编程中经常会用到的,本文主要介绍了 Go 语言内置的 time 包的基本用法。time 包提供了一些关于时间显示和测量用的函数。time 包中日历的计算采用的是公历,不考虑润秒。 时
阅读全文
posted @
2024-11-04 17:11
AtlasLapetos
阅读(33)
推荐(0) 编辑
Go语言基础之反射
摘要:本文介绍了Go语言反射的意义和基本使用。 变量的内在机制 Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息。 值信息:程序运行过程中可动态变化的。 反射介绍 反射是指在程序运行期间对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在
阅读全文
posted @
2024-11-04 17:10
AtlasLapetos
阅读(3)
推荐(0) 编辑
Error接口和错误处理
摘要:Go 语言中的错误处理与其他语言不太一样,它把错误当成一种值来处理,更强调判断错误、处理错误,而不是一股脑的 catch 捕获异常。 Error接口和错误处理 Error 接口 Go 语言中把错误当成一种特殊的值来处理,不支持其他语言中使用try/catch捕获异常的方式。 Error 接口 Go
阅读全文
posted @
2024-11-04 17:09
AtlasLapetos
阅读(29)
推荐(0) 编辑
Go语言基础之包
摘要:在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的。本文介绍了Go语言中如何定义包、如何导出包的内容及如何导入其他包。 包与依赖管理 本章学习目标 掌握包的定义和使用 掌握init初始化函数的使用 掌握依赖管理工具go module的使用 在工程化的Go语言开发项
阅读全文
posted @
2024-11-04 17:07
AtlasLapetos
阅读(17)
推荐(0) 编辑
Go语言基础之接口
摘要:接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。 接口 本章学习目标 了解为什么需要接口以及接口的特点 掌握接口的声明和使用 掌握接口值的概念 掌握空接口的特点及其使用场景 在Go语言中接口(interface)是一种类型,一种抽象的类型。相较于之
阅读全文
posted @
2024-11-04 17:07
AtlasLapetos
阅读(17)
推荐(0) 编辑
Go语言文件操作
摘要:打开和关闭文件 os.Open()函数能够打开一个文件,返回一个*File和一个err。对得到的文件实例调用close()方法能够关闭文件。 package main import ( "fmt" "os" ) func main() { // 只读方式打开当前目录下的main.go文件 file,
阅读全文
posted @
2024-11-04 17:06
AtlasLapetos
阅读(7)
推荐(0) 编辑