- 博客(17)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 怒喷k8s:竟然还要这么才能正确找到statefulset的pods
一、前言今天调试分页查询代码的时候遇到一个奇葩的问题,该问题后来排查下来跟lombok的使用有关。我们在使用mybatis或者mybatis-plus的时候一般会定义一个类对应表的每个字段,一个成熟的java程序员喜欢使用lombok把代码简洁点。这是大前提,我直接说结论吧:实体类最好都加上@Data,@AllArgsConstructor,@NoArgsConstructor才能避免我现在遇到的问题二、我的问题我的表:create table unimall.industry_output_v.
2021-01-04 20:49:39
607
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 json:你或许还不知道的使用的坑(三)续
一、前言其实本篇应该写的是json的反序列化,所以花了几个晚上看了下该部分源码,每次看都想睡觉。为什么呢?因为确实是太无聊了,我打赌这是我看过go源码中最无聊的逻辑,全篇都是一些状态的切换,要么是 if ... else ...,要么就是switch ... case ... case ...,头大。我也尝试画过流程图,但是这么多状态的切换,也不知道是什么力量支撑我画了2天时间,最后我放弃了-画出来没有丝毫意义。所以本篇我就源码层面顺着json:你或许还不知道的使用的坑(一)续写下反序列化可能会遇到的一.
2020-12-27 13:58:35
1343
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 json:源码解密序列化(二)
文章目录前言一、获取编码器方法二、自定义序列化:TextMarshaler三、编码html标签四、数字如何序列化成字符串:{"age":18} => {"age":"18"}四、匿名结构体的花花肠子1.加了json的tag的匿名结构体和没加tag的匿名结构体2. "-"和"-,"3.2个嵌套的匿名结构体有相同的字段4.匿名结构体的字段和匿名结构体所在结构体的字段相同五、map的序列化支持的key类型六、循环的结构体会报错七、最后说明下一些不被支持的结构体总结前言上一篇博客《json:你或许还不知道
2020-12-23 10:40:32
414
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 json:你或许还不知道的使用的坑(一)
文章目录前言一、自定义序列化:MarshalJSON二、自定义序列化:TextMarshaler三、编码html标签总结前言平时工作当中经常使用json的序列化或者反序列,但是偶尔也会发现你定义的结构体使用json序列化或者反序列化的时候不是你期望的结果,我也经常遇到这种,所以我通过读源码之后总结了一些可能让人诧异的操作,希望能规避一些错误场景,而且也会有源码解释的哦。一、自定义序列化:MarshalJSON下面代码你觉得结果是多少呢?{"MarshalJSON":"hit func Mars
2020-12-13 21:47:31
1842
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 go基础之map-写在前面(一)
go基础之map-写在前面(一)为什么分析map我的环境功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入为什么分析map在计算机编程语言当中,用的最多的数据结构估计就是map。map以他近乎o(1)的查找效率和修改效率让他在大多
2020-11-25 16:16:16
1836
6
原创 5分钟爽文:如何使用用gitlab作为go的依赖仓库
一、前言本来goproxy.cn是很好用的,但是公司目前只能使用goproxy.baidu.com,这个大部分用的时候都没有问题,但是发现偶尔有几个仓库死活拉不下来,但是换成goproxy.cn确实实在在能拉下来。所以想着为什么不搭建一个公司自己的goproxy呢?在解决这个问题的过程当中,却衍生出了另外一个想法:为什么不用公司自己的gitlab作为我们自己开发的包的仓库呢?本来以为这是个比较麻烦的工作,最后发现还挺简单的,该文就是用来记录整个过程。二、内容准备gitlab环境docker运行g
2021-07-07 23:10:50
1883
1
原创 了解一下Go中的“sb“代码?
一、前言相信很多java程序员都背过或者用过StringBuilder或者StringBuffer这种sb代码。最近工作需要查看Helm的源码的时候,注意到一个特别使用的字符串连接的方法strings.Builder,咋一看特别像java的StringBuilder,所以研究了下它,以及了解了下其他连接字符串的方法,结果发现确实strings.Builder的效果显著。二、内容1.首先我放出我了解的几个方法,并给出在我本地电脑跑benchmark的效果,点击查看代码:①.传统的+号连接func
2021-06-22 22:47:43
1917
原创 Go名库欣赏-uitable:终端数据表格展示工具
一、前言最近发现go用作一个运维工具是真的很好用,我觉得比python好用多了,python的依赖太麻烦了,而go作为运维工具可以直接打包成二进制包,可移植性极好,而且go天生对linux亲和性极强。像k8s的一个强大的运维命令-kubectl,打印的数据都是以表格的形式展示,表达能力很强,像实现这种终端表格展示有一个好用的工具-uitable二、内容这是我用kubectl get pods打印的一个终端界面:NAME READY STATUS RESTARTS AGE.
2021-05-18 08:24:04
1086
原创 Docker: podman不讲武德
文章目录前言podman是什么?前言好吧,我承认有点点哗众取宠,但是看完本篇关于k8s的新贵-oci标准实现的容器引擎,你会发现它吸收了docker的优点,并且优异于docker。podman是什么?Podman是一种无守护进程的开源Linux本地工具,旨在使用Open Containers Initiative(OCI)容器和容器映像使查找,运行,构建,共享和部署应用程序变得容易。 Podman提供了使用过Docker容器引擎的任何人都熟悉的命令行界面(CLI)。 大多数用户可以简单地将do
2020-12-30 17:01:58
1102
原创 想不到吧?docker中能跑苹果系统
文章目录前言一、Docker-OSX项目是什么?二、操作1.运行Docker-OSX2.可以允许SSH连上OSX!3.如何使用VNC可视化操作总结前言你一定对docker非常熟悉了,并且还写了很多Dockerfile,用docker启动了很多容器,但是基本上都是Unix-like的容器。你有想过为docker是否跑其他系统吗?如macos,iOS等系统,而且还可以像通过远程桌面一样访问远程windows系统一样的体验。今天我给大家介绍GitHub(https://github.com/sickcod
2020-12-15 23:17:43
5813
1
翻译 一览Kubernetes 1.20:到底更新了啥
作者:Kubernetes 1.20 发布团队我们很高心宣布kubernetes 1.20版本发布了,这是2020年第3个版本也是最后一个版本!该版本包括42个功能增强:11个功能已经能稳定使用了,15个功能还是beta阶段,16个功能即将进入alpha阶段。1.20版本的发布周期已经回到以前11周的正常发布周期。这是该段时间中最密集的发布之一:Kubernetes 创新周期仍在呈上升趋势。此版本有比稳定功能更多的 alpha功能,这表明在云原生生态系统中还有许多需要探索的地方。主要主题卷快照操作
2020-12-09 23:54:05
2045
1
原创 啥?Goland支持泛型了?
事情出因一大早上被一篇公众号的推文震惊了,Goland竟然支持go的泛型了。据我所知:Go的泛型不是还在设计草图吗?最乐观估计也要2021年8月份。你说Go语言现在都没开发好泛型,你支持这个特性有什么用呢?带着好奇心点开推文,没发现对泛型的说明,只看到一个Goland对泛型的使用的说明链接: https://blog.jetbrains.com/go/2020/11/24/experimenting-with-go-type-parameters-generics-in-goland/,心里怪痒
2020-12-05 13:55:15
2111
原创 go基础之map-迭代(四)
go基础之map-迭代(二)写在之前hiter结构体当前迭代的桶为空(刚开始迭代)迭代下个k/v正常情况溢出情况扩容情况的迭代总结写在之前在文章《go基础之map-写在前面(一)》的示例代码for k, v := range m3 { fmt.Println(k, v)}就是go的map的迭代方法,查看该代码的字节码,发现它调用了底层runtime.mapiterinit方法。本篇会详细分析map的迭代方法。如果想详细查看源码的注释,可以查看我的GitHub,欢迎批评指正。我的打算是把一些常
2020-12-03 00:32:13
1041
原创 go基础之map-删除(三)
go基础之map-删除(三)重点详细解析go的map对应的结构体hmapbucket的结构体bmapmap的整体结构总结重点在上篇文章《go基础之map-增和改(二)》已经非常详细的描述了定位key所在的桶以及它所在桶的位置,如果对上篇有所了解之后,该偏博客理解起来就会非常容易。总的来说map的删除主要做了2件事:定位key所在的位置,并且删除key,清除value的内存数据;尝试标记该key所在桶里面的元素为emptyRest,如果该桶处在逸出桶,那么就尝试向前遍历桶的元素为emptyRest。
2020-12-02 21:24:35
1235
2
原创 go基础之map-增和改(二)
go基础之map-增和改(二)写在之前环境说明makemap_small和makemap的区别总结写在之前在上篇文章《go基础之map-写在前面(一)》介绍了map的数据结构,本篇会详细介绍map的增和改的代码实现,由于增和改的实现基本上差不多,所以就纳到一起分析了。如果想详细查看源码的注释,可以查看我的GitHub,欢迎批评指正。我的打算是把一些常用的数据结构都分析一遍,如果有志同道合的人,可以联系我。环境说明我的具体调试环境在《go基础之map-写在前面(一)》](https://blog.cs
2020-11-29 11:49:18
5030
4
原创 死磕k8s之calico-nodeport
死磕k8s之calico-nodeport序言:我的环境注意开始发请求到nodeport到达work节点11.首先会到达raw的PREROUTING,包的流向如下2.然后到达mangle的PREROUTING,包的流向如下3.然后到了重要表nat的PREROUTING,在PREROUTING一般对包做DNAT操作,包的流量如下:4.然后就开始第一次的路由选择了5.由于匹配到了路由信息,所以此时会走的链是mangle的FORWARD,但是该表没有对它作任何操作6.接下来看看filter表的FORWARD7.然
2020-11-11 20:49:01
1445
6
原创 死磕k8s之calico-环境准备
序言:本篇文章主要是列出了calico系列文章解析的环境以及准备工作。环境k8s: v1.19.3iptables: v1.4.21route: 2.10-alphacalico: v3.16.4tcpdumpcalico使用的是ipip模式,calico默认是ipip模式 k8s没有高可用安装,1个master节点,2个work节点 k8s没有使用ipvs工具安装calicoctl安装calicoctl是calico社区提供一个全局查看calico网络的工具,类似kube
2020-11-11 20:19:23
18876
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人