文章
273
标签
62
分类
34
首页
文章
标签
分类
资源
留言
猿码记
搜索
首页
文章
标签
分类
资源
留言
猿码记
RPC编程(一):初步了解RPC
发表于
2022-01-08
|
编程
Go
进阶篇
1. 什么是RPCRPC(Remote Procedure Call,远程过程调用)是一种进程间的通信方式,它是一种技术思想(概念),而不是规范,它允许程序调用另一个地址空间(通常是共享网络的另一台机器)的过程函数,而开发者无需额外地为这个调用过程编写网络通信相关代码细节。 通俗的解释:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。 2.远程调用和本地调用 3. HTTP和RPC区别3.1 从概念区分 一句话概括: RPC是概念,HTTP是协议,RPC通信协议,可以基于HTTP协议,也可以基于TCP、UDP。 RPC调用协议通常包含 ...
Go常用包(三十三):高性能json解析器
发表于
2021-12-30
|
编程
Go
常用包篇
1. 介绍json-iterator是一款快且灵活的JSON解析器,不但100%兼容标准库encoding/json,而且比其更快。虽然官网说比标准包encoding/json快6倍之多,但是随着Go版本的不断迭代,目前平均比encoding/json快2倍。 官网给出的性能对比结果如下: 1.1 官网性能对比图 1.2 自写程序验证➜ go-study-example git:(main) ✗ go test -bench=. test/jsoniter_test.go -benchmemgoos: darwingoarch: amd64cpu: Intel(R) Core(TM) i7- ...
Go常用包(三十二):现代的Go工具库go-funk
发表于
2021-12-25
|
编程
Go
常用包篇
1. 介绍Go-funk 是基于反射(reflect )实现的一个现代Go工具库,封装了对slice/map/struct/string等的操作。 2. 下载# 下载go get github.com/thoas/go-funk# 引入import github.com/thoas/go-funk 3. 切片(slice)操作3.1 判断元素是否存在 funk.Contains: 接收任意类型。 funk.ContainsX: X代表具体类型,如:ContainsInt、ContainsString... func TestExist(t *testing.T) { // 判 ...
Go多版本管理工具(gvm)
发表于
2021-12-17
|
编程
Go
基础篇
1. 什么是GvmGo 语言版本管理器(Gvm)是管理 Go 语言环境的开源工具。Gvm 「pkgsets」 支持安装多个版本的 Go 并管理每个项目的模块。它最初由 Josh Bussdieker 开发,Gvm 与 Ruby RVM 类似,允许你为每个项目或一组项目创建一个开发环境,分离不同的 Go 版本和包依赖关系,来提供更大的灵活性,以防不同版本造成的问题。Gvm 主要有以下几个特性: 管理 Go 的多个版本,包括安装、卸载和指定使用 Go 的某个版本 查看官方所有可用的 Go 版本,同时可以查看本地已安装和默认使用的 Go 版本 管理多个 GOPATH,并可编辑 Go 的环境变量 可 ...
Go常用包(三十一):性能调试利器使用(下)
发表于
2021-11-27
|
编程
Go
常用包篇
1. trace说明在pprof的分析中,能够知道一段时间内的CPU占用、内存分配、协程堆栈信息。这些信息都是一段时间内数据的汇总,但是它们并没有提供整个周期内发生的事件,例如指定的Goroutines何时执行、执行了多长时间、什么时候陷入了堵塞、什么时候解除了堵塞、GC如何影响单个Goroutine的执行、STW中断花费的时间是否太长等。这就是在Go1.5之后推出的trace工具的强大之处,它提供了指定时间内程序发生的事件的完整信息,这些事件信息包括: 协程的创建、开始和结束。 协程的堵塞——系统调用、通道、锁。 网络I/O相关事件。 系统调用事件。 垃圾回收相关事件。 2. 收集tra ...
Go常用包(三十):性能调试利器使用(中)
发表于
2021-11-17
|
编程
Go
常用包篇
1. 调用图说明1.1 示例图 1.2 节点颜色 红色代表累计值cum为正,并且很大; 绿色代表累计值cum为负,并且很大; 灰色代表累计值cum可以忽略不计。 1.3 节点字体大小 较大的字体表示较大的当前值; 较小的字体表示较小的当前值。 1.4 边框颜色 当前值较大并且为正数时为红色; 当前值较小并且为负数时为绿色; 接近0的当前值为灰色。 1.5 箭头大小 箭头越粗代表当前的路径消耗了越多的资源; 箭头越细代表当前的路径消耗了越少的资源。 1.6 箭头类型 虚线箭头表示两个节点之间的某些节点已被忽略,为间接调用; 实线箭头表示两个节点之间为直接调用。 2. 火焰图说明2.1 ...
Go常用包(二十九):性能调试利器使用(上)
发表于
2021-11-15
|
编程
Go
常用包篇
1. 介绍Go语言中的pprof指对于指标或特征的分析(Profiling),通过分析不仅可以查找到程序中的错误(内存泄漏、race冲突、协程泄漏),也能对程序进行优化(例如CPU利用率不足)。 由于Go语言运行时的指标不对外暴露,因此有标准库net/http/pprof和runtime/pprof用于与外界交互。其中net/http/pprof提供了一种通过http访问的便利方式,用于用户调试和获取样本特征数据。 对特征文件进行分析要依赖谷歌推出的分析工具pprof,该工具在Go安装时即存在。 2. 收集样本在通过pprof进行特征分析时,需要执行两个步骤:收集样本和分析样本 pprof ...
Go常用包(二十八):构建现代CLI应用库Cobra
发表于
2021-11-07
|
编程
Go
常用包篇
1. 介绍cobra是一个用来构建现代CLI工具的库。相比flag标准库,它提供更多方便的特性和功能。Cobra 由 Go 项目成员和 hugo 作者 spf13 创建,已经被许多流行的 Go 项目采用,比如 GitHub CLI 和 Docker CLI。 源码地址: https://github.com/spf13/cobra,截止到现在`Star 23.8K` 1.1 特性预览 使用cobra add cmdname可快速的创建子命令cli 全局、局部和级联的标志 自动生成commands和flags的帮助信息 自动识别 -h、--help 等帮助标识 支持自定义帮助信息,用法等的灵 ...
基金分析系统(六):通过docker-compose项目部署
发表于
2021-10-27
|
编程
Go
实战篇
1.项目目录├── Dockerfile # dockerFile文件├── config-dev.yaml # dev环境配置文件├── config-local.yaml # 本地测试文件 ├── docker-compose.yaml # docker-compose文件├── .env # 环境变量文件....├── go.mod├── go.sum├── logs├── main.go 2. 新增dockerfileFROM golang:1.16.9-stretch AS builder# 环境变量ENV GO111MODULE=on \ CGO_ENABLED=0 ...
MySQL深入(三):联合索引和覆盖索引
发表于
2021-10-25
|
架构进阶
Mysql
1. 索引分类 按数据结构分类可分为:B+tree索引、Hash索引、Full-text索引。 按物理存储分类可分为:聚簇索引、二级索引(辅助索引)。 按字段特性分类可分为:主键索引、普通索引、前缀索引。 按字段个数分类可分为:单列索引、联合索引(复合索引、组合索引)。 2. 设计原则 索引并非越多越好,一个表中如有大量的索引,不仅占用磁盘空间,还会影响INSERT、DELETE、UPDATE等语句的性能,因为在表中的数据更改时,索引也会进行调整和更新。 避免对经常更新的表进行过多的索引,并且索引中的列要尽可能少。应该经常用于查询的字段创建索引,但要避免添加不必要的字段。 数据量小的表最好不 ...
MySQL深入(二):B+树索引分类和添加规则
发表于
2021-10-20
|
架构进阶
Mysql
以下内容是读《MySQL技术内幕:InnoDB存储引擎》,笔记摘要。 1. 介绍B+树索引的本质就是B+树在数据库中的实现,而B+树索引在数据库中的一个特点就是高扇出性。例如在InnoDB存储引擎中,每个页的大小为16KB。 在数据库中,B+树的高度一般都在2~4层,这意味着查找某一键值最多只需要2到4次IO操作,这还不错。因为现在一般的磁盘每秒至少可以做100次IO操作,2~4次的IO操作意味着查询时间只需0.02~0.04秒 2. InnoDB B+树索引 在MySQL数据库中,索引是在存储引擎层实现的,这意味着每个引擎的B+树索引的实现方式可能是不同的,取决于存储引擎实现的本身 ...
MySQL深入(一):B+树的演化和操作
发表于
2021-10-13
|
架构进阶
Mysql
以下内容是读《MySQL技术内幕:InnoDB存储引擎》,笔记摘要。 1. 二叉查找树 在二叉查找树中,左子树的键值总是小于根的键值,右子树的键值总是大于根的键值,因此可以通过中序遍历得到键值的排序输出。对上图进行中序遍历(左-根-右)后输出:2、3、5、6、7、8 对图9-5的这棵二叉树进行查找,如查找键值为5的记录,先找到根,其键值是6,6大于5,因此查找6的左子树,找到3;而5大于3,再找右子树……一共找了3次。如果按2、3、5、6、7、8的顺序来找同样需要3次。用同样的方法再查找键值为8的这条记录,这次用了3次查找,而顺序查找时需要6次。如果计算平均查找次数可得:顺序查找的平均查 ...
1
…
6
7
8
…
23
刘庆辉
人生需要 “归零”,每过一段时间都要将过去 “清零”,让自己重新开始。
文章
273
标签
62
分类
34
Follow Me
公告
欢迎来到我的博客,互动请留言~
最新文章
Go常用包(三十六):自动化文档生成[swagger]
2024-06-20
Python框架篇(9):FastApi-SQLAlchemy集成
2024-05-10
Python框架篇(8):FastApi-文件处理
2024-04-01
Python框架篇(7):FastApi-依赖项
2024-03-26
AI学习(5):PyTorch-核心模块(Autograd):自动求导
2024-02-27
分类
AI学习
6
使用篇
1
使用篇(一):Ai绘图-Stable Diffusion WebUI
基础篇
5
AI学习(1):初识AI,踏上未来之旅
AI学习(2):PyTorch2.1 环境安装
AI学习(5):PyTorch-核心模块(Autograd):自动求导
AI学习(3):PyTorch-初识张量
AI学习(4):PyTorch实战-手写数字识别
微服务
18
Docker
4
创建自己的Docker镜像
Docker常用命令整理
查看Docker容器日志方法
基于Docker搭建禅道
Kubernetes
14
K8s学习(一):环境准备
K8s学习(二):集群部署
K8s学习(三):架构简述
K8s学习(四):运行应用
K8s学习(五):容器运行时Container
K8s学习(六):go服务部署(升级&回滚)
K8s学习(七):深入了解Pod
K8s学习(八):Pod健康检查
K8s学习(九):深入Service暴露
K8s学习(十一):Secret和ConfigMap
K8s学习(十):数据管理
K8s学习(十二):Helm入门
K8s学习(十三):部署服务[上篇]
K8s学习(十四):部署服务[下篇]
架构进阶
17
ElasticSearch
8
ElasticSearch(一):核心概念整理
ElasticSearch(二):架构设计总览
ElasticSearch7(三):索引(index)操作
ElasticSearch7(四):映射(mapping)操作
ElasticSearch7(五):文档操作-增改删
ElasticSearch7(六):文档查询之(Uri Search)
ElasticSearch7(八):聚合查询
ElasticSearch7(七):文档查询之(Request Body Search)
Mysql
8
MySQL深入(二):B+树索引分类和添加规则
MySQL深入(三):联合索引和覆盖索引
MySQL深入(一):B+树的演化和操作
SQL优化思路纪要
MyISAM和InnoDB之存储结构对比
在MySql中批量执行更新SQL语句
Innodb中的事务隔离级别和锁的关系
MYSQL性能优化神器之Explain使用
RabbitMQ
1
RabbitMQ之消息类型
理论知识
10
数据结构-单向链表
数据结构-双向链表、循环链
Http-头部属性
Http-状态码
其他术语
写时复制
存储单位
幂等性
TPS/QPS/PV/UV
进程、线程、协程
编程
202
Go
110
Gin框架
18
Gin框架(一):快速入门
Gin框架(十):日志使用(logrus+lumberjack)
Gin框架(十二):更多HTTP服务使用
Gin框架(三):路由初使用
Gin框架(四):路由组使用
Gin框架(五):参数接收
Gin框架(十一):验证器Validator使用
Gin框架(二):服务启动源码分析
Gin框架(六):参数绑定
Gin框架(九):BasicAuth授权认证中间件使用
Gin框架(七):文件上传
Gin框架(八):中间件
Gin集成(一):集成viper配置解析包
Gin集成(二):集成高性能日志zap
Gin集成(三):集成全功能ORM框架-GORM
Gin集成(四):集成JWT
Gin集成(五):集成Redis操作库
Gin集成(六):集成ElasticSearch操作库
基础篇
31
AI学习(1):初识AI,踏上未来之旅
AI学习(2):PyTorch2.1 环境安装
AI学习(5):PyTorch-核心模块(Autograd):自动求导
AI学习(3):PyTorch-初识张量
AI学习(4):PyTorch实战-手写数字识别
实战篇
6
基金分析系统(一):项目介绍
基金分析系统(三):爬取基金收益榜单
基金分析系统(二):通过数据模型建表
基金分析系统(四):爬取基金详情信息
基金分析系统(五):爬取基金持仓信息
基金分析系统(六):通过docker-compose项目部署
实践篇
5
框架开发(一):目录介绍和路由设计
框架开发(二):集成Gorm及使用
框架开发(三):集成Go-Redis及使用
框架开发(四):集成LogRus及使用
框架开发(五):集成Go-ElasticSearch及使用
常用包篇
36
Go常用包(十):viper配置文件解析
Go常用包(一):strings(字符串操作)包使用
Go常用包(十一):sort排序和查询
Go常用包(十二):rune字符操作包(unicode)
Go常用包(十三):Uber开源之高性能日志库(zap)
Go常用包(十四):高性能缓存库BigCache
Go常用包(十五):系统基本操作包使用(os)
Go常用包(十六):crypto之AES加解密
Go常用包(十七):crypto之RSA非对称加解密
Go常用包(十八):结构体匿名字段的Json序列化、反序列化
Go常用包(二):strconv(字符串转换)包使用
Go常用包(十九):全功能ORM框架[gorm]使用
Go常用包(二十):数学计算和常数(math)
Go常用包(二十一):360开源高性能excel库(Excelize)
Go常用包(二十二):JWT在Golang中的实现(jwt-go)
Go常用包(二十三):操作redis开源库(go-redis)
Go常用包(二十四):单元测试(testinng)
Go常用包(二十五):ElasticSearch客户端的实现
Go常用包(二十六):知名爬虫框架Colly
Go常用包(二十七):定时任务管理库Cron
Go常用包(二十八):构建现代CLI应用库Cobra
Go常用包(二十九):性能调试利器使用(上)
Go常用包(三):time(时间)包使用
Go常用包(三十):性能调试利器使用(中)
Go常用包(三十一):性能调试利器使用(下)
Go常用包(三十二):现代的Go工具库go-funk
Go常用包(三十三):高性能json解析器
Go常用包(三十四):高性能http客户端fasthttp
Go常用包(三十五):高性能的goroutine池[ants]
Go常用包(三十六):自动化文档生成[swagger]
Go常用包(四):fmt包使用
Go常用包(五):ioutil包使用
Go常用包(七):context上下文
Go常用包(六):bufio有缓存的IO包使用
Go常用包(八):sync辅助并发安全
Go常用包(九):flag命令行参数解析
进阶篇
14
Go底层探索(一):编译器
Go底层探索(二):字符串
Go底层探索(三):切片
Go底层探索(四):哈希表Map上篇
Go底层探索(五):哈希表Map下篇-扩容
Go底层探索(六):延迟函数defer
Go底层探索(七):并发编程[上]-协程的由来
RPC编程(一):初步了解RPC
RPC编程(二):快速入门使用
RPC编程(三):gRPC快速入门
RPC编程(四):protobuf语法学习
RPC编程(五):gRPC中的Token认证
RPC编程(六):gRPC中的TLS认证
RPC编程(七):gRPC中的截取器
Java
46
基础篇-数据类型及运算
基础篇-异常处理
基础篇-了解多线程
基础篇-初识Lambda
基础篇-Lambda操作集合
基础篇-Stream使用
基础篇-Collect方法详解
基础篇-Lambda操作Map
基础篇-FutureTask初使用
Java实践篇-使用Md5/Sha1/base64
基础篇-数组
基础篇-初始化块
基础篇-类
基础篇-注解
基础篇-泛型
基础篇-枚举
基础篇-集合
基础篇-map操作
Java实践篇-Api接口多版本控制
基础篇-抽象类和接口
SpringBoot学习(一):controller注解使用
SpringBoot学习(十):事务使用(@Transactional)
SpringBoot学习(十二):Mybatis连表(一对一)使用实践
SpringBoot学习(十三):Mybatis连表(一对多)使用实践
SpringBoot学习(十一):Mybatis批量插入数据
SpringBoot学习(十四):Mybatis连表(多对多)使用实践
SpringBoot学习(十八):SLF4J+Logback-日志使用
SpringBoot学习(十五):Mybatis多数据源实践
SpringBoot学习(十七):配置文件值注入
SpringBoot学习(十六):配置文件使用
SpringBoot学习(十九):初探Logback
SpringBoot学习(二):Swagger文档集成
SpringBoot学习(二十):Logback配置文件详解(上篇)
SpringBoot学习(二十一):Logback配置文件详解(下篇)
SpringBoot学习(二十二):约定编程模拟AOP的实现
SpringBoot学习(二十四):AOP之切点指示器
SpringBoot学习(二十三):AOP使用实践
SpringBoot学习(二十五):AOP之引入增强(@DeclareParents)
SpringBoot学习(二十六):AOP之多切面使用
SpringBoot学习(三):集成Mybatis
SpringBoot学习(四):集成Mybatis代码生成器(MyBatis Generator)
SpringBoot学习(五):验证器(hibernate-validator)使用
SpringBoot学习(六):集成阿里数据源(Druid)
SpringBoot学习(七):集成Redis并结合Spring Cache使用
SpringBoot学习(八):拦截器的使用
SpringBoot学习(九):验证码(EasyCaptcha)使用
PHP
11
开发compose包
PHP常用数组函数整理
PHP中的并发请求实践
搭建docker+PHP7+phpstorm+xdebug开发环境
基于laradock+phpstorm配置单元测试
PHP常用魔术函数整理
记一次在PHP中使用正则删除非汉字字符串
PHP常用字符串函数整理
基于laradock搭建非侵入式性能监控平台
PHP7更新变更差异整理
PHP-FPM配置详情及优化
Python
33
FastAPI框架
9
Python框架篇(1):FastApi-快速入门
Python框架篇(2):FastApi-参数接收和验证
Python框架篇(3):FastApi-响应模型
Python框架篇(4):FastApi-错误处理
Python框架篇(6):FastApi-配置管理
Python框架篇(5):FastApi-中间件使用
Python框架篇(7):FastApi-依赖项
Python框架篇(9):FastApi-SQLAlchemy集成
Python框架篇(8):FastApi-文件处理
基础篇
10
AI学习(1):初识AI,踏上未来之旅
AI学习(2):PyTorch2.1 环境安装
AI学习(5):PyTorch-核心模块(Autograd):自动求导
AI学习(3):PyTorch-初识张量
AI学习(4):PyTorch实战-手写数字识别
常用库
14
Python库学习(十):Matplotlib绘画库
Python库学习(一):日期和时间
Python库学习(十一):数据分析Pandas[上篇]
Python库学习(十二):数据分析Pandas[下篇]
Python库学习(十四):ORM框架-SQLAlchemy
Python库学习(二):数学计算(random、math、statistics)
Python库学习(四):json序列化和反序列
Python库学习(五):图像处理-Pillow
Python库学习(三):文件目录操作
Python库学习(六):科学计算库Numpy[上篇]:创建、访问、赋值
Python库学习(七):Numpy[续篇一]:结构数组
Python库学习(十三):爬虫框架-Scrapy
Python库学习(八):Numpy[续篇二]:数组操作
Python库学习(九):Numpy[续篇三]:数组运算
Vue
1
了解vue实例和生命周期
正则表达
1
正则使用
踩坑
5
Row size too large (> 8126) for mysql
服务-定时任务(crontab)使用总结
Mysql8采坑记录归纳
使用docker的采坑纪要
记录Git使用采坑纪要
运维
11
Nginx
3
Nginx反向代理使用
Nginx限流(防恶意请求)实践
Nginx配置调优
其他
1
批量更新多个服务器代码
命令
3
curl
ls
scp
服务
4
Centos-在Centos7中使用防火墙
Maven私服搭建(nexus3)和使用
记在Linux中搭建nfs文件共享的一次经历
RabbitMQ安装方法总结
面试题
4
PHP常见排序算法汇总
消息队列(MQ)相关面试题整理
PHP相关面试题整理
Redis相关面试题整理
标签
AI
AOP
Anaconda
Centos
ES
ElasticSearch
FastAPI
Gin
Go
Go入门
Go实战
Go实践
Go工具
Go底层
Go推荐包
Go编码规范
Go规范
Java
Java实践
Json
Jupyter
Kubernetes
Logback
MQ
Matplotlib
Mybatis
Mysql
Numpy
ORM
Pandas
Pillow
Python
Python框架篇
RPC
RabbitMQ
SQLAlchemy
Scrapy
SpringBoot
Vue
composer
文章
六月 2024
1
五月 2024
1
四月 2024
1
查看更多
网站资讯
文章数目 :
273
已运行时间 :
本站总字数 :
516.8k
本站访客数 :
本站总访问量 :
繁
本地搜索
由
hexo-generator-search
提供支持