后端
文章平均质量分 90
阿兵云原生
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
k8s 集群部署尝试
K8S 部署方式有很多,有的方式不太友好,需要注意很多关键点,有的方式对小白比较友好,部署简单方便且高效。原创 2023-06-17 12:09:35 · 1998 阅读 · 0 评论 -
ldif 数据转成正确的组织结构再探
上次文章最后有说到按照,我们现在还只是对接 AD域,ldap 协议的其他产品在细节上还会有些许不同, cn 是 common name 的意思,他也可以表示我们理解的用户组和也可以是组的意思,但是对于 AD 域来说,在他们上面能够配置的属性有差别那么对于同步组织结构,我们实际上是可以如何做的呢?不能粗暴的按照之前的方式来实现,原创 2023-04-27 23:01:57 · 495 阅读 · 0 评论 -
LDAP 常用命令实操
在 实操命令之前,得先有一个 LDAP 服务器,我就不搭建 AD域了,我可以直接在 linux 里面搭建一个简单的 LDAP 服务器,学习使用 ,原创 2023-04-05 15:44:36 · 1246 阅读 · 0 评论 -
性能测试小工具 wrk 可以怎么用
工作中,项目设计之初或者是项目快要结束的时候,大佬就会问我们,这个服务性能测试的结果是什么,QPS 可以达到多少,RPS 又能达到多少?很多项目上线初期用户量较小,表面上看是风平浪静,实则暗流涌动,慢慢的用户量上来之后,系统的瓶颈慢慢凸显曾经挖的坑,最后还是要我们自己来填,若不能及时填上,可能整个产品就这么断送了。原创 2023-03-13 22:27:59 · 664 阅读 · 0 评论 -
golang 占位符还傻傻分不清?
在写 golang 的时候,也是有对应的格式控制符,也叫做占位符,写这个占位符,需要有对应的数据与之对应,不能瞎搞。原创 2023-03-10 22:59:22 · 800 阅读 · 0 评论 -
你是使用什么工具调试 golang 程序的?
写过 C/C++ 的都是到,调试程序的时候通常使用 gdb 工具来进行调试,用起来可爽了,那么 gdb 是否也适合 golang 程序的调试的Delve 可以让你通过控制程序的执行来与程序进行交互,他可以计算变量,并提供线程 / goroutine 状态、CPU 寄存器状态等信息Delve 的目标是为调试 Go 程序提供一个简单强大的调试功能尝试看一下 dlv 的 help 信息通过 help 我们可以看到可以使用这些命令来调试我们的程序,根据不同的应用场景例如,我们直接编译并调试的时候就可以使用。原创 2023-03-09 22:47:38 · 1102 阅读 · 0 评论 -
关于 interface{} 会有啥注意事项?下
我们一起来回顾一下上一次说到的接口类型分为空接口类型和非空接口类型,他们的底层数据结构不太一样。原创 2023-03-07 21:41:16 · 678 阅读 · 0 评论 -
关于 interface{} 会有啥注意事项?上
学习 golang ,对于 interface{} 接口类型,我们一定绕不过,咱们一起来看看 使用 interface{} 的时候,都有哪些注意事项吧。原创 2023-03-06 21:45:11 · 564 阅读 · 0 评论 -
golang 实现链表爽不爽?
定义链表结构定义节点结构。原创 2023-02-27 22:45:47 · 454 阅读 · 0 评论 -
GO 中的 defer 有哪些注意事项?下
上面都是出现 1 个 panic 的情况 ,那么,如果是出现多个 panic 是怎么玩的呢, defer 他还能捕获到 panic 信息吗?,也就是当程序崩溃的时候,defer 语句可以帮我们兜底,可以捕获异常后按照我们期望的逻辑进行执行,让程序回到正确的轨道上面。根据打印我们可以看出,结论和上面一个例子结论一致,并且加入异常捕获之后,程序的崩溃堆栈信息是不会打印出来了,技术是开放的,我们的心态,更应是开放的。看上述代码,panic 之后的程序仍然是不会执行的,但是我们加入了。原创 2023-02-25 21:19:25 · 972 阅读 · 0 评论 -
GO 中的 defer 有哪些注意事项?上
xdm , 不知道你们是否有使用过,这种语法在是 go 特有的,用起来真是爽的不要不要的其实我们是要弄明白其中的注意点,原理,当出现所谓的奇怪现象的时候,处理起来就会得心应手得多。原创 2023-02-23 22:31:05 · 442 阅读 · 0 评论 -
你知道 GO 中什么情况会变量逃逸吗?
Go 语言将这个以前我们写 C/C++ 时候需要做的内存规划和分配,全部整合到了 GO 的编译器中,GO 中将这个称为。原创 2023-02-09 21:26:24 · 1233 阅读 · 0 评论 -
GO 的 range 如何使用?
GO 语言的for…range能做什么呢?for…range如何使用?for…range的返回值有哪些情况,可以对于任何数据结构使用吗?for…range的返回值如果不需要,可以如何处理?for…range的数据是如何传递的?原创 2023-02-08 21:42:24 · 363 阅读 · 0 评论 -
GO web 开发 实战三,数据库预处理
了解什么是预处理,我们可以来对比一下,普通的 sql 语句执行过程和 预处理的执行过程客户端对 SQL 语句进行占位符替换得到完整的 sql 语句客户端发送完整 sql 语句到 mysql 服务端mysql 服务端执行完整的 sql 语句并将结果返回给客户端把 sql 语句分成两部命令部分数据部分先把命令部分发送给 mysql 服务端,mysql 服务端进行 sql 预处理然后把数据部分发送给 mysql 服务端, mysql 服务端对 sql 语句进行占位符替换。原创 2023-02-07 22:45:02 · 744 阅读 · 0 评论 -
GO web 开发 实战二,数据库相关
xdm 上次有分享到的简单方法使用,最后还有一个, 在这里补充一下直接上案例。原创 2023-01-28 22:47:59 · 467 阅读 · 0 评论 -
C 语言的 互斥锁、自旋锁、原子操作
今天不整,我们来分享一下以前写的,来看看 互斥锁,自旋锁和原子操作的 demo。原创 2023-01-07 16:41:21 · 4511 阅读 · 0 评论 -
Go语言 WaitGroup 源码知多少
上面我们有说到嘛,原创 2023-01-07 16:37:51 · 682 阅读 · 0 评论 -
Go语言 WaitGroup 源码知多少
上面我们有说到嘛,原创 2023-01-04 19:48:52 · 685 阅读 · 2 评论 -
需要提醒你关于 golang 中 map 使用的几点注意事项
日常的开发工作中,map 这个数据结构相信大家并不陌生,在 golang 里面,当然也有 map 这种类型。原创 2023-01-02 12:02:01 · 1707 阅读 · 2 评论 -
GO语言初始化数据结构的方法你知道吗?
使用 golang 进行编码过程中,你们都是如何初始化数据结构的呢GO 里面提供了 2 个关键字来进行初始化数据结构上面这种情况,是初始化的时候已经明确好了需要填的值,可以使用上面这种做法,不过工作中大多数情况初始化的时候,数据还是未知的,大部分时间还是会使用上述两种方式。原创 2022-12-31 16:31:15 · 1225 阅读 · 1 评论 -
你可能还不知道 golang 的高效编码细节
xdm,我们都知道 golang 是天生的高并发,高效的编译型语言可我们也都可知道,工具再好,用法不对,全都白费,我们来举 2 个常用路径来感受一下。原创 2022-12-30 17:12:13 · 974 阅读 · 0 评论 -
你确定没有滥用 goroutine 吗
学习 golang ,路还很长呢,犹记得刚开始学习 golang 的时候,写起来确实非常简单,有很多包和工具使用,不需要重复造轮子,但是要真的学好一门语言作为工具,对于其原理是非常有必要学懂的。原创 2022-12-26 19:46:44 · 1096 阅读 · 0 评论 -
你以为传切片就是传引用了吗?
xdm ,我们在写 golang 的时候,引用和传值傻傻分不清,就例如我们传的时候,你能分清楚你传的切片是传值还是传引用呢?原创 2022-12-23 19:40:42 · 1357 阅读 · 0 评论 -
原来服务端的退出姿势也可以这么优雅
工作中,我们带有 http 的服务端,肯定还有别的处理逻辑,例如读写文件,GRPC 通信,或者是使用数据库,那么我们程序关闭情况,还是要根据情况来处理,咱们思考一下,这个时候如果遇到了意外,程序崩溃了,panic 了,或者我们认为的 kill 掉了,我们如何判断服务端是如何退出的呢?此处我们使用 context 的方式,当主协程关闭上下文的时候,子协程就会从通道到读取到数据,进而进行优雅关闭,我们可以看到源码,对于上述说到的会操作数据库,读写文件等等会修改数据的,这里可不期望操作数据的过程中被中断,原创 2022-12-23 19:38:53 · 1233 阅读 · 0 评论 -
原来服务端的退出姿势也可以这么优雅
工作中,我们带有 http 的服务端,肯定还有别的处理逻辑,例如读写文件,GRPC 通信,或者是使用数据库,那么我们程序关闭情况,还是要根据情况来处理,咱们思考一下,这个时候如果遇到了意外,程序崩溃了,panic 了,或者我们认为的 kill 掉了,我们如何判断服务端是如何退出的呢?此处我们使用 context 的方式,当主协程关闭上下文的时候,子协程就会从通道到读取到数据,进而进行优雅关闭,我们可以看到源码,对于上述说到的会操作数据库,读写文件等等会修改数据的,这里可不期望操作数据的过程中被中断,原创 2022-12-11 10:34:13 · 736 阅读 · 0 评论 -
听说你还在自己做重复劳动?看我一键生成错误码映射
默认源目录下的 / _string.go,所以我们可以看到例子中我们的输出文件在 mycodes 下的 errcode_string.go。刚才我们是在命令行中,使用 stringer 工具来生成的,那么我们要把这些东西放入项目代码中就需要使用 go generate 工具了。咱们引入 go generate ,可以只用定义错误码和写注释,就可以达到,当我们调用错误码的时候,能够正确的输出我们想要的错误信息。大家在工作中定义错误码的时候都是如何处理的?技术是开放的,我们的心态,更应是开放的。原创 2022-12-10 11:36:15 · 959 阅读 · 0 评论 -
你不知道的goland技巧
过去我们使用 Goland 就是简单的配置一下 go 的 proxy ,以及配置一下 ssh ,与服务器进行文件的上传和下载,其余的技巧也就没有费心去尝试挖掘和使用了,有没有同感的童鞋。剩下的,我们只需要填写单测数据的各种情况即可,此处用到的是 go test 的 子测试 ,要是对单测感兴趣的 xdm 可以查看历史文章。我们在工作中,有很多函数名字不同,但是内部的结果可以说是完全相同的,那么这种代码,我们一般怎么做?根据整个文件来生成单测文件,文件中的所有方法都会有对应的单测方法。原创 2022-12-08 22:46:59 · 1109 阅读 · 0 评论 -
mongodb 存引擎及配置
上次我们分享到了 wiredTiger 引擎以及他对于以前默认的 MMAPV1 引擎的优势关于 wiredTiger 引擎 配置这里补充一下:directoryPerDB是否一个库一个文件夹数据引擎指定是什么wiredTiger 引擎最大使用 cache 的大小,此处配置 1 个 G , 我们可以根据实际情况来配置是否将索引也按数据库名单独存储集合的压缩配置压缩方式 ,默认 snappy,这里选择 none 或者 zlib索引配置今天我来看看 mongodb 中的另外一个引擎,内存引擎内存引擎,看原创 2022-12-07 22:48:08 · 1017 阅读 · 0 评论 -
什么是单元测试(unit testing)
单元测试,是指对软件中的最小可测试单元进行检查和验证单元就是人为规定的最小的被测功能模块一般来说,要根据实际情况去判定其具体含义,如 C 语言中单元指一个函数,Go 里面也单元也是一个函数单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。单元测试,咱们平时也叫它单测,平时开发的时候,也需要写一些 demo 来测试我们的项目中的函数或者某个小功能。原创 2022-10-29 18:11:01 · 728 阅读 · 0 评论 -
mongo索引浅析
索引是一种用来方便查询数据的数据结构B Tree就是一种常用的数据库索引数据结构,MongoDB采用 B 树做索引,索引创建在colletions 上。我们可以在这个网站上直观的看到索引的效果。原创 2022-10-17 22:48:47 · 1135 阅读 · 0 评论 -
mongo 聚合操作
在 users 里面准备一组数据,包含 item ,qty,status,tags 和 size 字段,其中 size 是内嵌文档,size 里面又包含了 h,w,uom 字段。我们插入的文档中,没有自己指定 _id 字段,则 mongodb 会为我们生成这个主键,若我们自己指定了这个字段,那么就会按照我们自定义的方式来。例如下面这个例子,我们就可以 $match 多次,最后计算出一个结果,实际应用中,我们可以根据我们的需求来进行分批次处理,怎么方便怎么来。原创 2022-10-03 21:43:58 · 1262 阅读 · 0 评论 -
【mongo 系列】常用操作实际操练
可以使用 insert,insertOne,insertMany 插入不同的数据,各取所需,其中 insertMany 用于插入多条数据,当然也可以插入 1 条数据。属于子查询,表示 infos 是一个内嵌文档,需要查找的是 文档中的 tall 字段,我们也不能不加双引号,因为系统会默认识别。,这是一个主键,如果不自己设置的话,mongodb 为默认给我们加上,是一个 24 位的 uuid。技术是开放的,我们的心态,更应是开放的。朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力。原创 2022-09-17 12:02:47 · 463 阅读 · 0 评论 -
mongodb 基本概念
是 mongodb 的最小数据集单位,是多个键值对有序租户在一起的数据单元,类似于关系型数据库的记录一组文档的集合,文档存放的是数据,集合内的结构是可以不同的,集合就类似于关系型数据库的表数据库,由多个集合组成的。每个数据库都市完全独立的,有自己的用户,权限信息,独立的存储文件夹在系统运行库的进程及节点集,一个实例可以有多个数据库。原创 2022-09-07 22:23:31 · 428 阅读 · 0 评论 -
SSH连接服务器后执行多条命令
大家平时有没有遇到自己连接云服务器,ssh 连接上去之后,发现自己的一些小工具用不了例如go build无法使用 ,由于我们安装配置golang 环境的时候,是在文件中写了配置,因此需要source一下那么是否可以在ssh 连接上服务器的时候就可以立即自动执行这一类命令呢?我们的智慧无穷无尽,小工具也是非常的多,今天来讲述一下多条命令可以如何做。原创 2022-08-21 20:12:45 · 1649 阅读 · 0 评论 -
CGO,基本数据类型转换2 和 函数调用
前面 3 个咱们在上一篇短文已经梳理到了,接下来继续[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5lP6xgbk-1660485524922)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f4f6b12f88ab4bc49ea9703737f3c624~tplv-k3u1fbpfcp-zoom-1.image)]...原创 2022-08-14 21:59:32 · 1301 阅读 · 0 评论 -
redis 存储结构原理 2
咱们接着上一部分来进行分享,我们可以在如下地址下载https[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pcw0J74S-1657882613978)(https此处我下载的是版本的,xdm可以直接下载上图中的**redis-6.2.6**版本,...原创 2022-07-15 18:57:47 · 501 阅读 · 0 评论 -
[Redis 系列]redis 学习 17,redis 存储结构原理 1
关于 redis 相信大家都不陌生了,之前有从 0 -1 分享过 redis 的基本使用方式,用起来倒是都没有啥问题了,不过还是那句话,会应用之后,我们必须要究其原理,知其然知其所以然今天我们来分享一下关于 redis 的存储结构的原理我们都知道 redis 是一个 K-V 内存数据库,类似于 memcache ,那么一般存储这种 K-V 键值对的数据结构是什么呢?是 红黑树 , 那么我们对于红黑树的增删改查的时间复杂度是 O(logN),对于红黑树而言,只要内存足够,那么这个 N 是可以无限大的这对于 r原创 2022-07-08 22:27:46 · 489 阅读 · 0 评论 -
【Redis 系列】redis 学习六,redis 事务处理和监控事务
【Redis 系列】redis 学习六,redis 事务处理和监控事务写在前面我们学过的事务都是保证原子性的,但是 redis 的事务中执行多个指令,是不保证原子性的redis 事务的本质就是一组命令的集合,一个事务中所有的命令都会被序列化,在事务执行的过程,是按照顺序执行命令的,他们拥有一次性顺序性排他性redis 的事务没有隔离级别的概念redis 事务中,命令是这样执行的命令放在事务中,并没有马上执行,而是发起执行命令的时候才会执行,通过 exec 触发redis 是单条指原创 2022-02-26 22:08:52 · 610 阅读 · 0 评论 -
【Redis 系列】redis 学习五,多学习一些 redis 的三种特殊数据类型
【Redis 系列】redis 学习五,多学习一些 redis 的三种特殊数据类型redis 三种特殊的数据类型Geospatial 地理位置Hyperloglog 基数统计Bitmap 位图场景Geospatial 地理位置redis 3.2 版本就推出了 Geospatial官方文档上可以详细的看到用法:https://www.redis.net.cn/order/3685.htmlGeospatial 可以使用在如下场景:附近的人打车计算距离朋友定位等一原创 2022-02-14 21:02:54 · 828 阅读 · 0 评论 -
【Docker 系列】docker 学习十,Compose 编写规则及wp 实战
yaml 规则docker-compose.yaml 是 Compose 的核心,咱们一定要学会 yaml 编写的规则当然,咱们还是查看官方文档,compose 部分compose fileyaml 文件的结构分为三层:version版本号services服务名其他配置,如网络,挂载等公共的东西version:'' # 版本号services: 服务器1 web: 当前服务的配置,这个部分就可以和DockerFile 写的差不多了 build depend原创 2021-12-11 19:58:50 · 802 阅读 · 2 评论
分享