分类: Go

71 篇文章

GORM 框架:2 一对多表
2 一对多表 https://gorm.io/zh_CN/docs/has_many.html GORM 定义一个 gorm.Model 结构体,其包括字段 ID、CreatedAt、UpdatedAt、DeletedAt // gorm.Model 的定义,因为在 gorm.Model 中的这几个字段都是数据库中常用字段 type Model s…
namespace delete 操作触发告警 Exporter 开发
1 前言 由于现在云原生场景愈发的多所以必不可少的就需要 Prometheus 等开源监控工具来进行对监控,虽然很多第三方的 exporter 都能对大部分组件进行更好的监控,但是由于最近公司误删除了一个 NS 却没有及时的告警,导致近 10 小时数据丢失(因为 etcd 的数据备份有近 10 小时的空档期),所以为了及时避免损失我们需要做出尽快的…
HTTP 框架 — Hertz 之源码解读:① Engine 才是核心
HTTP 框架 — Hertz 前言 在这个以云原生为技术支撑的背景下,各个公司都开源了自己的微服务框架或者产品,如耳熟能详的 istio、envoy 、kratos、go-zero 等。 当然字节跳动也不会落下对微服务领域的探索与研究,这不前段时间就开源了 超大规模的企业级微服务 HTTP 框架 — Hertz 1 什么是 Hertz 官方 Gi…
GORM 框架:1 GORM-v3 基本使用
1 GORM 入门 当我们学习一个新东西的时候如何快熟入门有以下几个步骤 1.1 什么是 ORM orm 是一种理念而不是软件 orm英文全称object relational mapping ,就是 对象映射关系 程序 简单来说类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的 为了保证一致的使用习惯,通过 or…
gin 框架:2 Gin 基本使用-基础篇
2 Gin 基本使用-基础篇 2.1 路由与传参 2.1.1 无参路由 所谓的无参路由最主要的区别就是将处理函数单独拿出来 package main import ( "fmt" "github.com/gin-gonic/gin" ) // 将处理函数 handler 单独拆分开 // 无参数路由 func…
gin 框架:1 框架介绍以及部分源码介绍
gin 框架 1 简介 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错 借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范 1.1…
GO 从 0 到 1 系列:17 web 开发
[TOC] web 开发 HTTP(超文本传输协议) 规定了客户端和服务器端的请求和响应,所有的服务器端接收的数据和响应都是 HTTP 协议。和语言没有关系 HTTP 协议是访问互联网使用的核心通信协议,也是所有 web 应用程序使用的通信协议 对于 HTTP 协议的消息模型:客户端发送请求消息,服务器端返回响应消息。传输层使用的是 TCP 协议,…
GO 从 0 到 1 系列:16 网络编程
[TOC] Go 网络编程 网络是用来解决数据传输问题的不同电脑间的通讯 ◆网络编程 ➢TCP服务器/客户端开发 ➢UDP服务器/客户端开发 ➢命令行聊天室 ◆web开发 ➢HTTP协议 ➢web应用开发 ➢客户端开发 ◆Web爬虫 ➢HTML结构 ➢Goquery ◆RPC 服务器端: 监听服务(打电话) 接收客户端链接(等待电话) 交换数据(通…
GO 从 0 到 1 系列:15 管道channel
1.6管道(异步) 数据处理者处理完数据后将数据放入缓冲区中,数据接收者从缓冲区中获取数据,处理者不用等待接收者是否准备好处理数据 为什么需要 channel: 前面使用全局变量加锁同步来解决 goroutine 得通讯,但是不够完美。 主线程在等待所有 goroutine 全部完成的时间很难确定。 如果主线程休眠时间长了,会加长等待时间,如果等待…
GO 从 0 到 1 系列:14 并发编程
并发编程 并发编程开发将一个执行的过程按照并行算法拆分为多个可以独立执行的代码块,从而充分利用多核和多处理器提高系统吞吐率 goroutine(协程) 和 channel(管道) goroutine 可以做并发和并行的处理,可以将一个任务分解为多个 goroutine 去完成,让多个 cpu 去处理 需求: 要求统计 1-20000 的数字中,那些…