Prometheus
B站视频
Prometheus 是一个生态。
1. 概述
Prometheus Server,主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。
client libraries,用于检测应用程序代码的客户端库。
push gateway,用于批量,短期的监控数据的汇总节点,主要用于业务数据汇报等。
exporters,收集监控样本数据,并以标准格式向Prometheus 提供。例如:收集服务器系统数据的node_exporter,收集MySQL监控样本数据的是MySQL exporter 等等。
alertmanager,用于告警通知管理。
Pushgateway 是Prometheus 生态中一个重要工具,使用它的原因主要是:
Prometheus 采用pull模式,可能由于不在一个子网或者防火墙原因,导致Prometheus 无法直接拉取各个target 数据。
在监控业务数据的时候,需要将不同数据汇总,由Prometheus 统一收集。
当exporter不能满足需要时,也可以通过自定义(python、shell、java)监控我们想要 ...
go包管理
https://cnblogs.com/songhaibin/articles/15512953.html
1. 三种包管理方式
使用go path问题
代码开发必须在go path src目录下,不然,就有问题。
依赖手动管理
依赖包没有版本可言
从这个看, go path不算包管理工具
govendor
解决了包依赖,一个配置文件就管理
依赖包全都下载到项目vendor下,每个项目都把有一份。拉取项目时,开始怀疑人生。
go mod介绍
go modules 是 golang 1.11 新加的特性。现在1.12 已经发布了,是时候用起来了。Modules官方定义为:
模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。
2. go mod基本说明
下面设置go mod和go proxy
12go env -w GO111MODULE=ongo env -w GOPROXY=https:// ...
Gin
pending
Go‘s 数据结构
教程
Go实现栈与队列
一、链表
单链表:
1234type LinkNode struct { val int next *LinkNode }
循环链表:
1234type Ring struct { next, prev *Ring // 前驱和后驱节点 Value interface{} // 数据}
初始化循环链表:
123456// 初始化空的循环链表,前驱和后驱都指向自己,因为是循环的func (r *Ring) init() *Ring { r.next = r r.prev = r return r}
数组实现链表:【静态链表】
12345678910111213141516171819type Value struct { Data string NextIndex int64}var array [5]Value // 五个节点的数组array[0] ...
SQLBoiler
SQLBoiler入门指导1-最好用的Go ORM框架
SQLBoiler官方文档翻译–最好用的Go ORM框架
SQLBoiler 是一个根据数据库表生成对应的 Go ORM 代码的工具。
它是一个数据库先行的 ORM 框架,也就是说你需要先设计你的数据库,而不是像 gorm 那样先设计 struct。
1. 环境
这里使用 MySQL 作为数据库,其他数据库配置和依赖可能会有所不同。
环境要求:
Go 1.13以上
表名列名使用蛇形命名法snake_case
蛇形命名法
特点
全部小写:所有字母都使用小写。
单词间隔:单词之间使用下划线(_)来分隔。
数据库表结构
123456789CREATE TABLE `user` ( `id` bigint(0) UNSIGNED NOT NULL AUTO_INCREMENT, `username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, `password` varchar(64) CHARACTE ...
gRPC
官方中文文档
视频教学
什么是gRPC
概念:
序列化:将数据结构或对象转换成二进制串的过程
反序列化:将在序列化过程中所产生的二进制串转换成数据结构或者对象的过程
env:
grpc和protobuf
1go get google.golang.org/grpc
1brew install protobuf
protobuf配套go语言的代码生成工具,因为这些文件在安装grpc的时候已经下载下来了,所以使用install即可。
1go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
1go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
1. proto文件编写
模版:
123456789101112131415syntax = "proto3";option go_package = ".;service";service SayHello { rpc SayHello ...
go基础学习
a tour of go
golang-china/gopl-zh: :books: Go语言圣经中文版 (github.com) → Go语言圣经 - Go语言圣经 (gopl-zh.github.io)
【尚硅谷】Golang入门到实战教程丨一套精通GO语言_哔哩哔哩_bilibili
https://www.alipan.com/s/1YRzZZ8szDX 提取码: 1fw8
Go语言的特点:
Go语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容 Go语言:Go = C + Python,说明 Go语言既有C静态语言程序的运行速度,又能达到 Python动态语言的快速开发。
从C语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型调用参数传值,指针等等,也保留了和C语言一样的编译执行方式及弱化的指针。
引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在。
垃圾回收机制,内存自动回收,不需开发人员管理
天然并发
(1) 从语言层面支持并发,实现简单
(2) goroutine,轻量级 ...
mysql学习笔记
学习资源:
黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括_哔哩哔哩_bilibili 29:57:49
高频 SQL 50 题(基础版) - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台
基础篇
1. 概述
相关概念
名称
全称
简称
数据库
存储数据的仓库,数据是有组织的进行存储
DataBase(DB)
数据库管理系统
操纵和管理数据库的大型软件
DataBase Management System (DBMS)
SQL
操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准
Structured Query Language (SQL)
而目前主流的关系型数据库管理系统的市场占有率排名如下(2022):
Oracle:大型的收费数据库,Oracle公司产品,价格昂贵。
MySQL:开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司。目前Oracle推出了收费版本的MySQL,也提供了免费的社区版本。
SQL Server:Mic ...
C++笔记
万能头:
1#include<bits/stdc++.h>
C++基础知识
1. 常量
在C++中,常量是使用关键字const声明的,意味着一旦被赋值后,它的值就不能被改变。常量提供了一种保护变量不被无意或有意修改的方式,有助于提高程序的可读性和维护性。以下是一些关于C++常量的关键点:
基本常量
使用const关键字创建常量。
必须在声明时初始化。
1const int MAX_USERS = 100;
枚举常量
枚举(Enumeration)是一种用户定义的类型,它包含一组命名的整型常量。
使用enum关键字声明。
1enum Color { RED, GREEN, BLUE };
宏常量
使用预处理器指令#define来定义。
宏在编译之前被处理,替换文本中所有的宏名称。
1#define PI 3.14159
字面量常量
直接出现在代码中的值,如整数10,浮点数3.14,字符'A',字符串"Hello"。
为什么字面量常量是常量? 字面量常量是常量,因为它们表示固定的值,不能被修改 ...
剑指offer
根据这个站刷的:剑指 Offer 题解 | CS-Notes 面试笔记 (cyc2018.xyz)
题目总数76
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('echarts4629'));
// 指定图表的配置项和数据
var option =
option = {
tooltip: {
trigger: 'item'
},
legend: {
top: '5%',
left: 'center'
},
series: [
{
name: 'Access From',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 10,
borderColor: '#fff',
borderWidth: 2
...