自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (6)
  • 收藏
  • 关注

原创 Kuberentes之多分支流水线CI/CD搭建

环境准备Jenkins安装插件:Blue Ocean Build With Parameters Basic Branch Build Strategies Plugin ​​​​​​Git Parameter Plug-In GitLab Plugin Git plugin Gradle Plugin Kubernetes plugin ThinBackup安装好Kubernetes plugin后,配置Kubernetes,我们的构建全部是放在k8s里面做的,可以做到多编译

2022-03-20 15:44:03 1398

原创 Kuberentes之基础与集群搭建

为什么需要 Kubernetes?传统的容器编排痛点容器技术虽然解决了应用和基础设施异构的问题,让应用可以做到一次构建,多次部署,但在复杂的微服务场景,单靠 Docker 技术还不够,它仍然有以下问题没有解决:集成和编排微服务模块 提供按需自动扩容,缩容能力 故障自愈 集群内的通信Kubernetes 能解决的问题按需的垂直扩容,新的服务器(node)能够轻易的增加或删除 按需的水平扩容,容器实例能够轻松扩容,缩容 副本控制器,你不用担心副本的状态 服务发现和路由 自动部署和

2022-03-12 05:27:48 310

原创 Valgrind-性能分析工具

Valgrind-内存性能分析工具

2021-11-28 14:31:28 630

原创 单台服务器百万并发实现 C10K, C1000K, C10M

单台服务器百万并发实现 C10K, C1000K, C10M

2021-11-28 14:30:56 1919

原创 Openssl加密库

Openssl基础教程

2021-11-28 14:29:34 3062

原创 消息队列-ZeroMQ

消息队列-ZeroMQ

2021-11-28 14:22:23 258

原创 应用层协议设计

应用层协议设计

2021-11-28 14:21:52 1240

原创 字符编码、Unicode原理、数据流压缩Zlib与Miniz的实现

字符编码、Unicode原理、数据流压缩Zlib与Miniz的实现

2021-11-28 14:20:04 1403

原创 内存池-nginx内存池设计解析

内存池-nginx内存池设计解析

2021-11-28 14:19:20 812

原创 锁与原子操作CAS以及无锁队列的底层实现

锁与原子操作CAS以及无锁队列的底层实现

2021-11-28 14:17:42 486

原创 线程池-原理与实现

线程池-原理与实现

2021-11-28 14:16:54 69

原创 Redis编程-基础、消息队列机制

Redis编程-基础、消息队列机制

2021-11-28 14:16:14 550

原创 Nginx-基本使用、反向代理、负载均衡配置

Nginx-基本使用、反向代理、负载均衡配置

2021-11-28 14:15:31 796

原创 Mysql-索引,事务,集群,缓存

Mysql事务,索引,集群,缓存

2021-11-28 14:14:58 681

原创 8086/8088常用汇编

一、数据传输指令───────────────────────────────────────1.通用数据传送指令.MOV传送字或字节.MOVSX先符号扩展,再传送.MOVZX先零扩展,再传送.PUSH把字压入堆栈.POP把字弹出堆栈.PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,E...

2021-10-08 20:00:42 233

原创 网络编程-UDP可靠传输(KCP)

网络编程-UDP可靠传输(KCP)

2021-09-02 16:01:34 1211

原创 gdb与coredump调试技巧

gdb介绍​GDB 的全称是GNU Debuger,是linux 底下的一种免費的debug程序,没有界面,当然Linux也有带界面的比如cgdb、kdbg、ddd和insight debugger,在使用gdb调试的时候我们需要在编译程序的时候生成调试信息,比如:gcc -Wall -g3 -o test test.cgcc生成调试信息的一些选项: -g:该选项可以利用操作系统的“原生格式(native format)”生成调试信息。GDB 可以直接利用这个信息,其它调试器也..

2021-08-12 22:01:42 9364

原创 Ubuntu英文系统设置中文UTF-8支持

sudo apt-get install language-pack-zh language-pack-zh-base或者sudo apt-get install language-pack-zh-hant language-pack-zh-hanssudo vim /etc/environment在文件中增加语言和编码的设置:LANG="zh_CN.UTF-8"LANGUAGE="zh_CN:zh:en_US:en"我的配置文件显示如下:PATH="/usr/local/sbin:

2021-08-06 17:28:29 694

原创 Linux网络编程-epoll

epoll主要函数:int epoll_create(int size);int epoll_ctl(int epfd, int op, int fd, struct epoll_event* event);int epoll_wait(int epfd, struct epoll_event* events, int maxevents, int timeout);int epoll_create(int size);size参数告诉内核这个epoll对象会处理的事件⼤.

2021-08-02 20:04:59 160

原创 Linux网络编程-服务器模型 Reactor 与 Proactor

对于高并发编程, 网络连接上的消息处理,可以分为两个阶段:等待消息准备好、消息处理。当使用默认的阻塞套接字时(例如上面提到的 1 个线程捆绑处理 1 个连接),往往是把这两个阶段合而为一,这样操作套接字的代码所在的线程就得睡眠来等待消息准备好,这导致了高并发下线程会频繁的睡眠、唤醒,从而影响了 CPU 的使用效率。高并发编程方法当然就是把两个阶段分开处理。即,等待消息准备好的代码段,与处理消息的代码段是分离的。当然,这也要求套接字必须是非阻塞的,否则,处理消息的代码段很容易导致条件不满足时,所在线程又进

2021-07-31 21:41:34 239

原创 Linux网络编程-5种网络模型

网络 IO,会涉及到两个系统对象, 一个是用户空间调用 IO 的进程或者线程,另一个是内核空间的内核系统比如发生 IO 操作 read 时,它会经历两个阶段:1. 等待数据准备就绪,2. 将数据从内核拷贝到进程或者线程中。ps:当有数据时,是系统先从网卡将数据读入内核,再由用户态读取内核中的数据,这里发生了2次拷贝,想要优化可以采用zero copy,顾名思义就是用户态直接向网卡读取数据因为在以上两个阶段上各有不同的情况,所以出现了多种网络 IO 模型...

2021-07-31 20:37:20 769

原创 Linux 高级调试工具-pstack和strace

一般调试linux程序,使用gdb即可!但是如果要对程序进行性能分析,或者没有办法使用gdb调试的时候,pstack和strace会排上大用场!!!!pstacksudo apt install pstackpstack命令⽤来显示每个进程的调⽤栈。可以使⽤pstack来查看进程正在挂起的执⾏⽅法,也可以⽤来查看进程的本地线程堆栈。它实际上是gstack的一个链接,而gstack本身是基于gdb封装的shell脚本。pstack是gdb的一部分,如果系统没有pstack命令,使用yum搜索安装

2021-07-25 20:45:44 1651 1

原创 海量数据去重方案-set/map/布隆过滤器(bitmap)

背景在使⽤word⽂档时, word如何判断某个单词是否拼写正确? ⽹络爬⾍程序,怎么让它不去爬相同的url⻚⾯?允许有误差 垃圾邮件(短信)过滤算法如何设计?允许有误差 公安办案时,如何判断某嫌疑⼈是否在⽹逃名单中?控制误差 假阳率 (重点)缓存穿透问题如何解决?允许有误差需求 从海量的数据中查询某个字符串是否存在 Set/MapC++标准库(STL)中的set和map结构都是采⽤红⿊树实现的,它增删改查的时间复杂度是 O(log2n) 对于严格平衡⼆叉搜索树

2021-07-23 10:19:56 395

原创 Liunx三剑客-grep/sed/awk

2021-07-22 14:44:37 58

原创 数据结构基础-B/B+树

介绍:B树属于多叉树又名平衡多路查找树(查找路径不只两个),数据库索引技术里大量使用者B树和B+树的数据结构注意:之前有看到有很多文章把B树和B-tree理解成了两种不同类别的树,其实这两个是同一种树;多叉树和b树唯一的区别就是,b树约束了层高。b树的叶子节点在统一的高度上面。一颗M阶B树,满足以下条件(阶,表示有多少个叉)1. 每个结点至多拥有M棵子树2. 根结点至少拥有两颗子树3. 除了根结点以外,其余每个分支结点至少拥有M/2棵子树4. 所有的叶结点都在同一层上5. 有k棵子

2021-07-22 14:43:19 1323 2

原创 数据结构基础-红黑树

介绍与原理:https://blog.csdn.net/qq_36610462/article/details/83277524

2021-07-14 20:06:32 56

原创 C++ 在docker中开发调试技术要点

情景: 如果你从0到1开始开发一个c++项目,那你是幸运的!因为你可以自己选择你自己适应的开发环境,并且你可以自己选择你想要封装的第三方库,使用自己习惯的开发方法去开发!总而言之,随心所欲!But,如果你刚接手一个别人开发的项目,并且是一个较早开发的代码!那你可就得小心了!甚至你可能是不幸的。。。比如我,刚入职一个月,被通知要接手一个已经一年没有维护的代码!当时是信心十足,拿到代码以后,我尝试跑通源码!遗憾的是编译各种报错!大部分来自第三方依赖库的错误!这几乎是不可能通过修改源码的...

2021-07-12 11:06:46 730

原创 算法基础-KMP

阿萨大大撒旦撒

2021-07-06 00:48:07 53

原创 排序算法基础-快速排序

int quick_sort(vector<int> &data) { return quick_sort_partition(data, 0, data.size() - 1);}int quick_sort_partition(vector<int> &data, int left, int right) { if (left >= right) return 0; int i = left; .

2021-07-04 23:07:36 109 1

原创 排序算法基础-希尔排序

希尔排序

2021-07-04 20:23:20 60

kcp_learn.rar

kcp_learn.rar

2022-02-14

openssl教程.pdf

openssl教程.pdf

2022-02-05

libzmq-test

4种模型的案例

2022-02-03

ZeroMQ-云时代极速消息通信库

ZeroMQ-云时代极速消息通信库

2022-02-03

锁与原子操作CAS以及无锁队列的底层实现相关资源

锁与原子操作CAS以及无锁队列的底层实现相关资源

2022-01-23

布隆过滤器C源码-bloomfilter.rar

布隆过滤器C源码

2022-01-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除