自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zlyGOGOGO的博客

博客迁移至:https://www.cnblogs.com/zly-go

  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 go语言并发编程

go语言并发编程引言说到go语言最厉害的是什么就不得不提到并发,并发是什么?,与并发相关的并行又是什么?并发:同一时间段内执行多个任务并行:同一时刻执行多个任务进程、线程与协程进程:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟内存、文件句柄等)比较大,但相对比较稳定安全。线程:线程是进程

2021-11-24 16:37:24 314

原创 微服务可用性设计

微服务可用性设计

2021-11-16 17:26:38 507

原创 kratos微服务框架使用jwt认证中间件

引言Json web token (JWT) 是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。jwt构成JWT是由三段信息构成的,将这三段信息文本用.链接一起就构成了Jwt字符串,就像这样eyJhbGciOiJIUzI1NiIsInR5cC

2021-11-11 10:26:21 959

原创 kratos微服务框架简单的链路追踪实战

什么是链路追踪借用阿里云链路追踪文档来解释分布式链路追踪(Distributed Tracing),也叫 分布式链路跟踪,分布式跟踪,分布式追踪 等等,它为分布式应用的开发者提供了完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等工具,可以帮助开发者快速分析和诊断分布式应用架构下的性能瓶颈,提高微服务时代下的开发诊断效率。为了应对各种复杂的业务,开发工程师开始采用敏捷开发、持续集成等开发方式。系统架构也从单机大型软件演化成微服务架构。微服务构建在不同的软件集上,这些软件模块可能是由不同团队开

2021-11-04 17:50:34 351

原创 kratos微服务框架使用nacos作为服务注册和服务发现中心

引言上篇介绍了如何使用nacos作为配置管理中心,并使用viper来解析配置官方介绍nacos不仅可以用来做配置中心还支持服务注册、发现以及动态DNS服务功能服务注册与发现使用姿势kratos微服务框架使用nacos作为服务注册和服务发现中心...

2021-11-04 10:14:25 858

原创 kratos微服务框架使用nacos作为远端配置中心

初识nacosnacos是阿里开源的一款用于动态服务发现、配置管理和服务管理的平台。官方介绍,Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。官方文档nacos的安装根据文档启动一个nacosnacos快速开始在nacos中创建一个配置在kr

2021-11-03 14:55:22 653

原创 在kratos微服务中引入GORM框架

在kratos微服务中引入GORM框架介绍GORM是一个使用Go语言编写的ORM框架。中文文档齐全,对开发者友好,支持主流数据库。GORM官方文档安装go get -u github.com/jinzhu/gorm在kratos中引入GORM框架在kratos生成的目录internal/data中找到data.go文件,修改NewData方法并封装数据库客户端// Data .type Data struct { db *gorm.DB}// NewData .//集成gor

2021-11-03 10:29:30 727

原创 kratos微服务框架引入zap日志库

介绍zap日志库是一款高性能的开源日志库,提供了结构化日志记录和printf风格的日志记录安装go get -u go.uber.org/zap如何在kratos框架中使用参考官方文档中描述,为了方便业务自适配不同的 log 接入使用,Logger 只包含了最简单的 Log 接口。当业务需要在 Kratos 框架内部使用自定义的 log 的时候,只需要简单实现 Log 方法即可。日志库较为公用建议放在kit基础库中方便其他微服务引用,可参考Go工程化最佳实践实现log接口并配置zap日志库编

2021-11-03 09:41:04 687

原创 gorm框架表名自动加s问题

查看日志会发现表名自动加了s在model实现以下方法即可解决// TableName 解决gorm表明映射func (UsUser) TableName() string { return "us_user"}

2021-09-10 17:14:04 4614

原创 go微服务框架Kratos入门教程

kratos简介Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关功能及工具本文基于kratos v2.0.3,windows平台,其他系统平台均可借鉴参考环境搭建Golang开发包Protoc编译工具安装Protoc-gen-go插件安装开启module模式 并配置GOPROXY安装kratosgo get -u github.com/go-kratos/kratos/cmd/kratos/v2@latest创建项目# 创建项目模板kratos new <You

2021-09-06 14:26:15 1289

原创 Import “google/api/annotations.proto“ was not found or had errors.问题;proto 中外部引入proto文件问题解决方案

问题在proto 中引入了一些其他 proto 文件的情况下会出现was not found or had errors.问题在使用Kratos框架时proto文件引入annotations.proto文件,在生成 client 源码时会报错因其找不到google/api/annotations.proto此文件而无法编译解决方案将缺失的文件引入到项目中即可解决此问题google/api/annotations.proto地址...

2021-09-03 14:49:48 9382

原创 微服务架构以及服务治理

微服务架构以及服务治理什么是微服务微服务定义微服务架构直连模式BFF架构什么是微服务微服务是一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,将应用程序构造为一组松散耦合的服务。在微服务体系结构中,服务是细粒度的,协议是轻量级的。可以说微服务是SOA(面向服务架构)的一种最佳实践微服务定义围绕业务功能构建的,服务关注单一业务,服务间采用轻量级的通信机制,可以全自动独立部署,可以使用不同的编程语言和数据存储技术。微服务架构通过业务拆分实现服务组件化,通过组件组合快速开发系统,业务

2021-08-30 18:02:37 1502 1

原创 GO语言数据结构之链表

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。单向链表单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以节点来表示的,每个结点的构成:数据+ 后续元素位置指针。代码实现package mainimport "fmt"..

2021-08-18 16:35:47 434

原创 GO语言数据结构之队列

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。顺序队列在顺序队列中,为了降低运算的复杂度,元素入队时,只修改队尾指针;元素出对时,只修改队头指针。由于顺序队列的存储空间是提前设定的,因此队尾指针会有一个上限值,当队尾指针达到其上限时,就不能只通过修改队尾指针来实现新元素的入队操作了。代码实现//定义队列结构type queue struct {

2021-08-16 14:02:18 730

原创 GO语言数据结构之稀疏数组

稀疏数组可以看做是普通数组的压缩当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式是:记录数组一共有几行几列,有多少个不同值;把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模借用解释稀疏数组最多的例子五子棋来说如何将五子棋盘上的黑白子保存下来用计算机来看将五子棋的棋盘15×15总共225个交点转化为二维数组[0 0 0 1 0 0 0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 ..

2021-08-11 18:06:41 147

原创 Harbor配置https

harbor是不附带任何证书的,因此默认情况下使用http来进行访问K8S在使用harbor作为私有仓库时或生产环境下强烈建议使用https生成证书生产环境下,需要从CA获取证书,测试或者开发可以使用OpenSSL自己生成证书生成私钥# 创建证书的存储目录mkdir /home/sslcd /home/sslopenssl genrsa -out ca.key 4096生成证书openssl req -x509 -new -nodes -sha512 -days 36

2021-08-10 11:04:05 1176

原创 centos安装docekr

系统版本centos7.7注意:centos8以及stream版本默认安装Podman如果想安装docker需提前卸载podman yum remove podman卸载旧版docekrsudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ ..

2021-08-09 17:46:13 110

原创 如何搭建Harbor镜像仓库并开启HTTPS

相关环境centos7.7.1908安装相关插件# 前置安装完docker# 安装epel源yum install -y epel-release# 安装docker-composeyum install docker-compose -y

2021-08-09 17:26:18 162

原创 GoFrame框架使用jwt认证

GoFrame官方有关于jwt插件的介绍过于简略,对新手不是很友好,本文就介绍此插件在GoFrame项目中的使用方法。gf-jwt插件地址:https://github.com/gogf/gf-jwtGoFrame框架地址:https://goframe.org/display/gf首先引入gf-jwt下载安装$ go get github.com/gogf/gf-jwt导入import "github.com/gogf/gf-jwt"定义自己的登录鉴权以及jwt相关配置需

2021-07-12 15:51:38 905

proto外部引入资源包

proto外部引入包

2021-09-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除