自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(396)
  • 资源 (2)
  • 收藏
  • 关注

原创 Linux系统编程--学习目录

Linux系统编程(一)进程基础Linux系统编程(二)信号Linux系统编程【三】进程间通信4 进程间关系5 线程基础6 线程互斥与同步七 线程控制八 高级 IO-记录锁九 高级IO-多路复用十 高级IO-异步IO

2022-04-01 22:00:44 586

原创 Linux、Vim 基础入门

文章目录一、基本概念及操作二、用户及文件权限管理三、Linux 目录结构及文件基本操作四、环境变量与文件查找挑战1:寻找文件五、文件打包与解压缩六、df/du命令--查看磁盘/目录容量七、Linux 下的帮助命令一、基本概念及操作入口1 linux 为何物?2 命令行操作体验2.1 重要快捷键2.2 学会利用历史输入命令2.3 学会使用通配符2.4 学会在命令行中获取帮助二、用户及文件权限管理入口1 介绍2 Linux 用户管理2.1 查看用户2.2 创建用户2.3

2020-07-02 11:45:23 517

原创 MySQL数据库设计与应用--学习目录

文章目录第一章 数据库基础知识第二章 数据库、数据表、记录、索引的操作第三章 数据查询(一)第四章 数据查询(二)第五章 视图第五章 MySQL 编程基础第一章 数据库基础知识入口1 基础知识2 关系模型2.1 关系模型的基本结构2.2 关系模型的完整性约束2.3 关系运算第二章 数据库、数据表、记录、索引的操作入口1 MySQL 数据库操作2 MySQL 数据类型...

2020-05-03 21:16:07 979

原创 Python程序设计--学习目录

1 从数据处理到人工智能2 实例: 霍兰德人格分析雷达图3 从Web解析到网络空间4 从人机交互到艺术设计5 实例: 玫瑰花绘制

2020-04-15 07:47:56 735

原创 C++深度解析--学习目录

【C++深度解析】1、C 到 C++ 的升级【C++深度解析】2、C/C++ 中的 const【C++深度解析】3、布尔类型和引用【C++深度解析】4、内联函数分析【C++深度解析】5、函数参数的扩展【C++深度解析】6、函数重载【C++深度解析】7、C++ 中的命名空间【C++深度解析】8、C++ 中的类型转换【C++深度解析】9、const 常量?只读变量?【C++深度解析】...

2020-02-13 22:45:32 861

原创 C语言进阶剖析--学习目录

【C语言进阶剖析】1、基本数据类型【C语言进阶剖析】2、有符号数与无符号数【C语言进阶剖析】3、浮点数的秘密【C语言进阶剖析】4、类型转换【C语言进阶剖析】5、变量属性【C语言进阶剖析】6、分支语句【C语言进阶剖析】7、循环语句【C语言进阶剖析】8、goto 和 void 分析【C语言进阶剖析】9、const 和 volatile 分析【C语言进阶剖析】10、struct 和...

2020-01-07 22:48:17 1293

原创 Leetcode题解(更新中……)

算法思想双指针Two Sum II - Input array is sorted排序快速选择堆排序桶排序荷兰国旗问题贪心算法二分查找分治搜索BFSDFSBacktracking动态规划斐波那契数列矩阵路径数组区间分割整数最长递增子序列最长公共子序列0-1 背包数学素数最大公约数进制转换阶乘字符串加法减法相遇问题多数投票问题其它数据结...

2019-03-13 21:37:28 1362 1

原创 算法基础修炼指南(更新中...)

第一章 枚举完美立方生理周期称硬币熄灯问题(1)熄灯问题(2)第二章 递归(上)求阶乘汉诺塔N皇后逆波兰表达式求值第三章 递归(下)表达式求值上台阶放苹果算24第四章 二分算法程序或算法的时间复杂度二分查找的原理和实现二分法求方程的根例题1 找 一对数例题2 农夫和奶牛第五章 分治归并排序快速排序输出前m大的数求排列的逆序数...

2019-02-14 21:55:57 551 1

原创 剑指offer题解

剑指offer题解考点题目数组二维数组中的查找.字符串替换空格链表从尾到头打印链表树重建二叉树栈和队列用两个栈实现队列查找和排序旋转数组的最小数字递归和循环斐波那契数列递归和循环跳台阶递归和循环变态跳台阶递归和循环矩形覆盖位运算二进制中1的个数代码的完整性数值的整数次方代码的完整性...

2019-01-21 17:06:29 747 2

原创 数据结构心法概要

章节题目串模式匹配算法树二叉树的层序遍历树二叉排序树(BST)的创建,查找,插入,删除及最大最小结点树非递归实现二叉树遍历(附c++完整代码)树遍历二叉树的应用:输出二叉树中的叶子结点、求二叉树的高度树树的同构树平衡二叉树(AVL树)树小白专场—是否同一棵二叉搜索树树哈夫曼树与哈夫曼编码堆堆,堆的创建,插...

2018-11-03 00:31:08 2857 4

原创 Kafka跨集群备份解决方案MirrorMaker

从本质上说,MirrorMaker 就是一个消费者 + 生产者的程序。消费者负责从源集群(Source Cluster)消费数据,生产者负责向目标集群(Target Cluster)发送消息。整个镜像流程如下图所kafka跨集群备份解决方案MirrorMaker示:MirrorMaker 连接的源集群和目标集群,会实时同步消息。当然,你不要认为你只能使用一套 MirrorMaker 来连接上下游集群。事实上,很多用户会部署多套集群,用于实现不同的目的。我们来看看下面这张图。

2023-07-02 11:11:30 1529

原创 Leetcode题解-算法-数学(python版)

1、进制转换1.1 小于 n 的所有素数204. 计数质数(Medium)从 2 开始,每碰见一个素数,就将该素数的所有整数倍的数排除。class Solution: def countPrimes(self, n: int) -> int: prime = [1] * n cnt = 0 for i in range(2, n): if prime[i]: cnt += 1

2023-05-19 23:08:54 725

原创 Leetcode题解-算法-动态规划(python版)

1、最长回文子序列确定状态dp[i][j]:以下标 i 为起始点,下标 j 为结束点的子串的最长回文子序列长度。状态转移方程当 s[i] == s[j] 时,dp[i][j] = dp[i+1][j-1] + 2当 s[i] != s[j] 时,dp[i][j] = max(dp[i+1, j], dp[i, j-1])算法流程初始 dp[][] = 0dp[i][i] = 1返回:return dp[0][n-1]从最后一行开始计算,每行从左向右计算516. 最长

2023-05-07 09:48:59 1243

原创 Kafka 核心源码解读【六】--副本管理模块

从今天开始,我们正式进入到第 5 大模块“副本管理模块”源码的学习。在 Kafka 中,副本是最重要的概念之一。为什么这么说呢?在前面的课程中,我曾反复提到过副本机制是 Kafka 实现数据高可靠性的基础。具体的实现方式就是,同一个分区下的多个副本分散在不同的 Broker 机器上,它们保存相同的消息数据以实现高可靠性。对于分布式系统而言,一个必须要解决的问题,就是如何确保所有副本上的数据是一致的。

2023-04-05 22:38:48 731 1

原创 Kafka 核心源码解读【五】--延迟操作模块

在开始介绍时间轮之前,我想先请你思考这样一个问题:“如果是你,你会怎么实现 Kafka 中的延时请求呢?”针对这个问题,我的第一反应是使用 Java 的 DelayQueue。毕竟,这个类是 Java 天然提供的延时队列,非常适合建模延时对象处理。实际上,Kafka 的第一版延时请求就是使用 DelayQueue 做的。但是,DelayQueue 有一个弊端:它插入和删除队列元素的时间复杂度是 O(logN)。对于 Kafka 这种非常容易积攒几十万个延时请求的场景来说,该数据结构的性能是瓶颈。

2023-01-02 21:11:34 1248

原创 Kafka 核心源码解读【四】--状态机模块

有了这些铺垫,我们再来看主题删除管理器的主要入口:TopicDeletionManager 类。

2022-12-18 22:41:42 741

原创 Linux系统编程(二)–信号

如同你第一次学习 hello world 一样,这里写一个简单的 hello signal 程序。我的目的是希望借助 hello signal 程序来观察它对信号的反馈。这段代码启动后先打印自己的进程 id 号。接下来就每隔 10 秒的往屏幕打点号,非常简单。运行屏幕打印:接下来,hellosignal 先在屏幕上输出它的 id 号,然后就开始十分缓慢的打点了。(1) 使用 kill 命令再启动一个终端,然后键入 kill -11 14578。hellosignal 报告结果如下:然后 he

2022-12-04 23:06:47 453

原创 Kafka 核心源码解读【三】--Controller模块

从某种意义上说,Controller 组件是 Kafka 最核心的组件。一方面,它要为集群中的所有主题分区选举领导者副本;另一方面,它还承载着集群的全部元数据信息,并负责将这些元数据信息同步到其他 Broker 上。我画了一张图片,希望借助它帮你建立起对这个模块的整体认知。今天,我们先学习下 Controller 元数据。在正式学习源码之前,我想向你分享一个真实的案例。在我们公司的 Kafka 集群环境上,曾经出现了一个比较“诡异”的问题:某些核心业务的主题分区一直处于“不可用”状态。通过使用“kafka-

2022-11-13 22:25:18 1392

原创 Kafka 核心源码解读【一】--日志模块

基于kafka2.8.x版本,解读kafka源码,第一章解读log模块。

2022-10-23 21:42:58 844

原创 Kafka源码解析(基于3.0.0版本)

以kakfa3.0.0为例,从生产者,消费者,服务端入门kafka源码

2022-06-05 00:27:13 1696 2

原创 Kafka3.0.0教程(从入门到调优,深入全面)

文章目录第 1 章 Kafka 概述1.1 定义1.2 消息队列1.2.1 传统消息队列的应用场景1.2.2 消息队列的两种模式1.3 Kafka 基础架构第 2 章 Kafka 快速入门2.1 安装部署2.1.1 集群规划2.1.2 zookeeper集群部署2.1.3 kafka集群部署2.1.4 集群启停脚本2.2 Kafka 命令行操作2.2.1 主题命令行操作2.2.2 生产者命令行操作2.2.3 消费者命令行操作第 3 章 Kafka 生产者3.1 生产者消息发送流程3.1.1 发送原理3.1.

2022-05-04 22:14:33 4362 2

原创 Leetcode题解-算法-位运算(Python版)

文章目录1 统计两个数二进制位多少位不同2 数组中唯一一个不重复的数3 寻找数组中缺失的数4 不重复的两个数字5 翻转一个数的比特位1 统计两个数二进制位多少位不同461. 汉明距离(Easy)方法一:移位实现位计数两数异或,不同的位会保留下来class Solution: def hammingDistance(self, x: int, y: int) -> int: x = x^y count = 0 while x > 0

2022-04-04 21:57:19 800

原创 Linux系统编程(十)--高级IO-异步IO

文章目录1 同步IO与异步IO2 POSIX异步IO(aiocb)3 异步操作状态3.1 aio_error3.2 aio_return4 等待异步IO操作5 异步IO取消操作6 批量请求7 异步通知7.1 两种通知方式7.2 aiocb的成员aio_sigevent7.3 sigevent 的成员1 同步IO与异步IO塞和非阻塞从简单的开始,我们以经典的读取文件的模型举例。(对操作系统而言,所有的输入输出设备都被抽象成文件。)在发起读取文件的请求时,应用层会调用系统内核的I/O接口。如果应用层调

2022-03-31 22:25:52 1335

原创 Linux系统编程(九)--高级IO-多路复用

文章目录1 问题提出2 fd_set容器2.1 fd_set的实现2.2 操作fd_set容器3 select函数3.1 参数说明:3.2 select返回值3.3 select与信号4 poll函数5 epoll函数5.1 IO事件5.2 select 与 poll的缺点5.3 使用epoll5.4 epoll_create5.5 epoll_create5.6 epoll_wait6 epoll触发模式6.1 两种触发6.2 边沿触发 + 非阻塞1 问题提出// fd1, fd2, fd3 分别是以

2022-03-30 22:20:45 538

原创 Linux系统编程(八)--高级 IO-记录锁

文章目录1 记录锁1.1 概念1.2 加锁解锁2 记录锁测试命令3 记录锁(底层实现)4 记录锁(继承与释放)5 记录锁(尾部加锁)6 建议性锁和强制性锁6.1 提出问题6.2 建议性锁和强制性锁6.3 建议性锁和强制性锁7 单例守护进程1 记录锁1.1 概念对文件的部分字节或所有字节加锁,在多进程之间对指定的字节进行互斥访问。是一种字节范围锁。记录锁通过 fcntl 函数来获取和释放锁,fcntl 的执行命令(cmd 参数)是 F_SETLK (非阻塞)和 F_SETLKW (阻塞)。 F_GET

2022-03-29 23:43:33 888

原创 Linux系统编程(七)--线程控制

文章目录1 线程属性1.1 pthread_attr_t1.2 不同属性的作用2 互斥量的共享属性2.1 属性的初始化与回收2.2 共享属性3 互斥量的鲁棒属性3.1 相关函数3.2 互斥量状态一致性4 递归型互斥量4.1 相关函数4.2 递归类型的互斥量5 其它同步对象的属性5.1 读写锁的属性5.2 条件变量的属性5.3 barrier 属性6 可重入函数(二)7 errno 变量与多线程8 只被执行一次的函数8.1 问题提出8.2 pthread once9 线程私有变量9.1 键类型及相关函数9.2

2022-03-27 22:08:29 1986

原创 Leetcode题解-算法-数组与矩阵(python版)

文章目录1、把数组中的0移动到数组尾部2、改变矩阵分维度3、数组中连续1的最大个数4、有序矩阵中查找目标数5、有序矩阵中第k小的数6、1-n的数中一个数被另一个替换,找重复和丢失的数7、寻找数组中丢失的数8、寻找数组中重复的数9、寻找数组中重复的数(不修改数组)1、把数组中的0移动到数组尾部283. 移动零(Easy)使用双指针,左指针指向当前已经处理好的序列的尾部,右指针指向待处理序列的头部。右指针不断向右移动,每次右指针指向非零数,则将左右指针对应的数交换,同时左指针右移。class Solu

2022-03-27 08:39:45 572

原创 Linux系统编程(六)--线程互斥与同步

文章目录1 多线程互斥与同步2 互斥量2.1 基本概念2.2 互斥量数据类型2.3 互斥量的加锁解锁3 读写锁rwlock3.1 读写锁三种状态:3.2 读写锁的数据类型3.3 读写锁的加锁解锁4 自己实现互斥锁4.1 mylock 实现4.2 myunlock解锁实现5 自旋锁6 线程同步1 条件变量的数据类型和相关函数2 深入条件变量7 屏障 barrier1 多线程互斥与同步多线程互斥,同一时间只有一个线程访问数据。互斥锁 mutex读写锁 rwlock自旋锁 spinlock多线程同

2022-03-25 07:50:18 418

原创 Linux系统编程(五)--线程基础

文章目录1 线程概念1.1 进程到线程1.2 线程资源1.3 进程线程区别2 线程创建与终止2.1 线程创建2.2 线程终止3 线程清理函数1 线程概念1.1 进程到线程多进程之间互相沟通比较麻烦,比如内存共享、描述符共享、互斥与同步。同一个进程中的多线程使用的资源是共享的,比如内存,文件描述符等等。1.2 线程资源线程共享资源:可执行程序的代码,程序的全局内存,堆内存,栈,文件描述符。线程独有资源:线程 ID,线程自己的一套寄存器值,线程运行栈,调度优先级和策略,信号屏蔽字,errno 变

2022-03-25 07:43:35 266

原创 Linux系统编程(四)--进程间关系

文章目录1 进程扇与进程链2 进程组2.1 概念2.1 进程组的创建与设置3 会话3.1 概念3.2 创建会话4 控制终端、前台进程组与后台进程组5 后台进程组与控制终端6 孤儿进程与孤儿进程组7 守护进程7.1 守护进程的概念7.2 创建守护进程(调用系统函数)7.3 创建守护进程(自己实现)1 进程扇与进程链进程扇进程扇构造代码// ps_swing.c#include <unistd.h>#include <string.h>#include <stdio

2022-03-23 23:11:42 857

原创 Linux系统编程(三) --进程间通信

文章目录1 进程间通信总览1.1 进程间如何通信1.2 Linux IPC 分类1.3 Linux IPC常用手段2 无名管道2.1 pipe 函数2.2 用pipe进行进程间通信3 有名管道3.1 创建 FIFO 类型文件3.2 FIFO文件特性4 System V共享内存4.1 共享内存4.2 IPC 内核对象4.3 获取内核对象的id号4.4 创建IPC内核对象4.5 shmget函数4.6 键值与ftok4.7 shmget函数4.8 shmctl5 System V消息队列5.1 消息队列相关的函

2022-03-22 08:24:28 464

原创 Linux系统编程(一) --进程基础

文章目录1.1 基础1.2 fork函数1.3 进程空间1.3.1 进程地址互不影响1.3.2 虚拟地址到物理地址的映射1.3.3 fork函数原理1.3.4 写时复制技术1.4 fork函数与文件共享1.5 exec 系列函数与进程空间结构1.5.1 exec系列函数1.5.2 进程空间结构1.5.3 exec + fork1.6 wait和waitpid1.6.1 僵尸进程1.6.2 wait清理僵尸进程1.6.3 waitpid1.6.4 core 文件1.7 kill命令1.1 基础ps -u

2022-03-20 22:32:18 889

原创 Leetcode题解-算法-哈希表(python版)

文章目录1、两数之和2、判断数组中是否有重复的数3、最长和谐序列4、最长连续序列5、LRU1、两数之和1. 两数之和(Easy)方法一:暴力搜索class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: n = len(nums) for i in range(n): for j in range(i+1, n):

2022-03-14 08:09:41 746

原创 Leetcode题解-算法-贪心算法(python版)

文章目录1、数对可以组成的最长链2、分配饼干3、不重叠的区间个数4、最少需要多少飞镖刺破气球5、根据身高序号重排序6、买卖股票最大的收益7、买卖股票最大的收益Ⅱ8、种植花朵9、判断是否是字串10、修改一个数成为非递减数组11、连续子数组的最大和12、分隔字符串使同种字符出现在一起13、最小差值 II14、摆动序列1、数对可以组成的最长链2、分配饼干3、不重叠的区间个数4、最少需要多少飞镖刺破气球5、根据身高序号重排序6、买卖股票最大的收益7、买卖股票最大的收益Ⅱ8、种植花朵9、判断是否是字

2022-03-10 07:57:46 700

原创 Zookeeper应用及原理分析实战

文章目录1、Zookeeper介绍1.1 什么是Zookeeper2.2 Zookeeper的应用场景2、搭建Zookeeper服务器2.1 zoo.cfg配置文件说明2.2 Zookeeper服务器的操作命令3、Zookeeper内部的数据模型3.1 zk是如何保存数据的3.2 zk中的znode是什么样的结构3.3 zk中节点znode的类型3.4 zk的数据持久化4、Zookeeper客户端(zkCli)的使用4.1 多节点类型创建4.2 查询节点4.3 删除节点4.4 权限设置5、kazoo客户端的

2022-03-01 08:16:03 733

原创 Wireshark零基础入门到实战(二)协议篇

文章目录1 ARP协议的数据包分析2 Wireshark眼中的IP协议3 TCP与UDP协议详解4 TCP中也有一个窗口5 TCP重传技术的研究6 用途广泛的ICMP协议7 容易被忽视的DHCP协议8 不可或缺的DNS协议9 每天都要接触的HTTP协议10 为安全而生的HTTPS协议10.1 https的工作原理10.2 第一步 client hello 消息10.3 第二步 server hello 消息10.4 第三步 Server => Client10.5 第四步 Client => S

2022-01-16 14:34:03 2961

原创 Wireshark零基础入门到实战(一)基础篇

文章目录1 认识Wireshark的界面1.1 初识Wireshark1.2 过滤器2 Wireshark的图形显示2.1 查看发包速度:I/O图表2.2 查看TCP往返时间2.3 数据流图:统计 -> 流量图3 Wireshark的高级特性3.1 手动修改协议类型3.2 跟踪TCP流3.3 统计数据包长度3.4 专家信息4 Wireshark的命令行模式1 认识Wireshark的界面1.1 初识Wireshark这里我使用WLAN抓包如下所示:我们以一个http协议为例,分析每一层字段

2022-01-16 14:18:11 6160

原创 Docker快速上手

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nURjgyrU-1635671453142)(pictures/1.png)]1 获取镜像docker pull nginx等同于docker pull nginx:latest2 查看本地镜像docker images3 运行镜像docker run -d -p 80:80 nginx-d 后台运行-p 内外端口映射4 查看正在运行的容器docker ps5 修改容器docker exec

2021-10-31 17:12:57 1572

原创 《图解HTTP》读书笔记

文章目录第1章 了解 Web 及网络基础1.1 使用 HTTP 协议访问 Web1.2 HTTP 的诞生1.3 网络基础 TCP/IP1.3.1 TCP/IP 协议族1.3.2 TCP/IP 的分层管理1.3.3 TCP/IP 通信传输流1.4 与HTTP关系密切的协议:IP、TCP和DNS1.4.1 负责传输的 IP 协议1.4.2 确保可靠性的TCP协议1.5 负责域名解析的 DNS 服务1.6 各种协议与 HTTP 协议的关系1.7 URI 和 URL1.7.1 统一资源标识符1.7.2 URI 格式

2021-08-25 23:39:44 573

原创 计算机网络(自顶向下方法)读书笔记----吐血整理

文章目录第 1 章 计算机网络和因特网1.1 什么是因特网1.1.1 组成描述描述1.1.2 服务描述1.1.3 协议1.2 网络的边缘1.2.1 接入网1.2.2 物理媒体1.3 网络核心1.3.1 分组交换1.3.2 电路交换1.3.3 分组交换和电路交换的对比1.3.4 网络的网络1.4 分组交换中的时延、丢包、吞吐量1.4.1 分组交换网中的时延概述1.4.2 排队时延和丢包1.4.3 端到端时延1.4.4 计算机网络的吞吐量1.5 协议层次及其服务模型1.5.1 分层体系结构1.5.2 封装第二章

2021-08-03 00:36:03 6523 1

《重构改善既有代码的设计第2版》第1章 重构,第一个示例重构过程

《重构改善既有代码的设计第2版》第1章 重构,第一个示例,演示重构过程,从初识代码到重构结束有git详细记录

2024-03-26

jieba-master.zip

jieba 是目前最好的 Python 中文分词组件,它主要有以下 3 种特性: 支持 3 种分词模式:精确模式、全模式、搜索引擎模式 支持繁体分词 支持自定义词典 安装:先下载,随便解压到一个地方,cmd 进入对应文件夹后运行 python setup.py install

2020-04-02

BCC 5.5.1.7z

一个可以直接运行的 BCC 编译器,为什么要BCC 编译器?因为 C 语言中有些指示字或功能等是编译器相关的,使用多种编译器使我们更好的理解 C 语言,这个文件解压直接直接使用,免安装,也可能第一次双击打开会自动安装一些插件,保证功能完整。

2019-11-25

空空如也

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

TA关注的人

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