自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 JSON合并工具

本项目旨在开发一个强大而灵活的JSON合并工具,能够合并多个JSON文件,处理复杂的嵌套结构,提供详细的合并报告,并实现全面的验证和错误处理机制。

2024-09-23 22:15:00 908

原创 Web爬虫应用功能及需求设计

这个Web爬虫应用程序提供了一个用户友好的界面,允许用户轻松地爬取网站(主要基于ftp的文件批量下载)内容,结合了多线程爬虫、自定义浏览器设置和持久化存储等功能,为用户提供了一个功能丰富且灵活的工具。通过清晰的进度和状态显示,用户可以轻松监控爬虫的工作状态,预留了一定的扩展空间。

2024-09-23 10:55:58 1313

原创 mariadb主从配置步骤

c) 检查主日志文件和位置是否正确。使用的值(‘mysql-bin.000001’ 和 798)可能不是最新的。b) 确保复制用户在主服务器上拥有必要的权限。注意:出于安全原因,不建议使用 ‘root’ 作为复制用户。最好为复制创建一个专用用户。c) 使用正确的信息重新配置主服务器。如果它们都是 “Yes”,则复制应该正在工作。具体路径可能因系统配置而异。

2024-09-13 08:57:24 1008

原创 初识SDN(二)

GET:获取资源,不会改变服务器状态,幂等且安全。POST:创建新资源,可能改变服务器状态,非幂等且不安全。PUT:更新或替换资源,可能改变服务器状态,幂等但不安全。DELETE:删除资源,可能改变服务器状态,幂等但不安全。PATCH:部分更新资源,可能改变服务器状态,通常幂等但不安全。创建一个 .proto 文件,定义你的服务和消息。例如,创建一个user.proto每个方法需要请求和响应消息。GetBlog。

2024-06-03 06:00:00 1282 1

原创 初识SDN

控制平面(Control Plane)功能:负责决定数据包的转发路径和策略。它包含了路由协议、交换协议等逻辑,用于建立和维护网络拓扑。位置:在传统网络设备(如路由器和交换机)中,控制平面通常嵌入在设备的操作系统中。数据平面(Data Plane)功能:实际执行数据包的转发和处理。它根据控制平面提供的决策,将数据包从一个端口转发到另一个端口。位置:在传统设备中,数据平面通常是硬件加速的,以实现高效的数据处理和转发。

2024-06-02 22:37:10 1359

原创 虚拟化知识学习

这三种虚拟化技术各有其优势和适用场景。VMware ESXi以其高性能和企业级功能著称,适合大型企业数据中心。Microsoft Hyper-V与Windows生态系统紧密集成,适合已有微软基础设施的企业。Xen作为开源解决方案,广泛应用于云计算平台,适合需要灵活性和定制化的组织。Type 2(托管型):运行在主机操作系统之上,例如Oracle VirtualBox和VMware Workstation。Oracle VirtualBox和VMware Workstation的基本介绍。

2024-05-27 22:52:56 1063

原创 虚拟设备和物理平台之间的资源分配

vCPU 是物理 CPU 的逻辑抽象:每个虚拟机分配的 vCPU 实际上是由物理 CPU 提供计算能力。vCPU 映射到物理 CPU:虚拟化管理程序负责将 vCPU 的任务分配给物理 CPU 核心。时间片管理:通过时间片机制,多个 vCPU 可以共享同一个物理核心。资源争用:当 vCPU 数量超过物理核心的处理能力时,会发生争用,导致性能下降。虚拟磁盘的大小与物理磁盘容量之间并不是简单的一一对应关系,具体取决于使用的分配方式(预分配或动态分配)。

2024-05-25 03:00:00 1268

原创 产品研发流程(方法)

IPD(Integrated Product Development,集成产品开发)和敏捷开发是现代软件开发中常见的两种方法论。

2024-05-24 06:30:00 721

原创 顺时针旋转矩阵算法

顺时针旋转矩阵是计算机科学和图像处理中的一个经典问题。这个操作意味着将矩阵的每个元素移动到它在顺时针旋转后应该处于的位置。

2024-05-23 06:00:00 997

原创 Redis知识点学习(二)

当哈希表中的**元素太多(负载因子过高)或太少(负载因子过低)**时,为了保持操作的效率,需要对哈希表的大小进行调整。,而不会被其他线程或处理器核心中断。不过,由于ziplist是连续存储的,这种顺序扫描的速度相比于链式结构会有所提高,特别是在数据量较小的情况下。锁的实现和应用跨越了软件和硬件的多个层面,包括应用程序中的同步机制、操作系统的调度策略,以及硬件支持的原子操作。优先级继承是指,当高优先级线程等待由低优先级线程持有的锁时,低优先级线程临时继承高优先级线程的优先级,以减少高优先级线程的等待时间。

2024-05-22 06:15:00 1344

原创 Redis知识点学习(一)

CAUTION]造成阻塞的主要原因是KEYS命令需要扫描整个数据库来查找匹配特定模式的所有key。如果数据库中的key数量非常多,而且使用的模式比较宽泛(例如*匹配所有key),那么KEYS命令就需要遍历数据库中的每一个key来检查是否匹配,这会消耗大量的时间和计算资源。在这个过程中,Redis是单线程的,意味着在执行KEYS命令期间,Redis无法执行其他任何命令。因此,如果KEYS命令执行时间过长,就会导致Redis服务器在这段时间内无法响应其他客户端的请求,造成阻塞。

2024-05-21 06:00:00 1537 1

原创 大、小顶堆学习

删除操作(通常指删除最大元素):根节点被删除(从堆中移除最大元素),最后一个元素被移动到根节点位置,然后向下调整其位置,以满足大顶堆的性质。删除操作(通常指删除最小元素):根节点被删除(从堆中移除最小元素),最后一个元素被移动到根节点位置,然后向下调整其位置,以满足小顶堆的性质。大顶堆适用于需要快速访问最大元素的场景,如实现优先队列,其中优先级最高的元素(即值最大的元素)需要被首先处理。小顶堆适用于需要快速访问最小元素的场景,如实现优先队列,其中优先级最低的元素(即值最小的元素)需要被首先处理。

2024-05-20 00:13:36 1090

原创 设计模式学习(九)——《大话设计模式》

装饰模式(Decorator Pattern)是一种设计模式,用于向对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它通过创建一个装饰类包装原有的类,提供更强的扩展功能,这样做既保持了类的核心职责,又允许了向对象动态地添加职责。

2024-05-17 04:15:00 1528

原创 linux程序分析命令(三)

跟踪程序的库调用最基本的用法是直接运行ltrace后跟你想要跟踪的程序名高级用法过滤特定的函数调用使用-e 选项可以指定只跟踪的函数调用。跟踪子进程使用-f选项可以跟踪程序产生的所有子进程。设置断点ltrace允许你在特定的函数调用时暂停程序执行。条件过滤可以结合使用-e选项和正则表达式来过滤只有在特定条件下才会出现的调用。gdbgdb基本用法gdb高级用法valgrindValgrind 基本用法安装 Valgrind在大多数Linux发行版中,可以通过包管理器安装Valgrin

2024-05-14 05:30:00 1088

原创 linux程序分析命令(二)

objdump 是一个非常强大的程序分析工具,广泛用于显示二进制文件的信息。它主要用于调试程序和分析性能问题。通过 strace,你可以了解程序是如何与操作系统交云的,包括文件操作、内存分配、网络通信等。要反汇编特定函数,你可以先使用 -t 选项查找函数的地址,然后使用 --start-address 和 --stop-address 选项来限定反汇编的范围。由于 objdump 的输出可能非常庞大,使用Unix管道和文本处理工具(如 grep, awk, sed)可以帮助你过滤和查找感兴趣的信息。

2024-05-13 06:00:00 663

原创 linux程序分析命令(一)

虽然不是ldd的直接用法,但结合使用strace可以帮助你深入了解程序在运行时的行为,包括它如何加载共享库。-C 或 --demangle 选项用于显示C++程序中更易读的符号名称,因为C++编译器通常会改变函数名(名字修饰)以支持重载等特性。nm命令支持使用正则表达式来过滤显示的符号,这在你想要查找符合特定模式的符号时非常有用。通过 --defined-only 选项,可以只列出已定义的符号,忽略未定义的符号。例如,使用grep '^T’可以过滤出所有类型为T(即在文本段中的符号)的符号。

2024-05-12 22:38:23 957

原创 限流算法学习

计数器算法计数器算法是最简单的限流算法,它在一个时间窗口内统计请求次数,如果请求次数超过了设定的阈值,则拒绝服务。这种方法实现简单,但存在时间窗口切换时的瞬间流量突增问题。滑动窗口算法滑动窗口算法是对计数器算法的改进,它将时间窗口分成多个小的窗口,通过维护这些小窗口的计数,可以更平滑地控制流量。这种算法可以较好地解决计数器算法中存在的突增问题。令牌桶算法令牌桶算法通过一个固定容量的令牌桶来控制流量,系统以恒定速率往桶中添加令牌,处理请求时需要从桶中取出令牌,如果桶中没有令牌,则拒绝服务。

2024-05-09 14:13:30 797 1

原创 时间轮算法

时间轮由固定数量的槽组成,形成一个圆环结构。每个定时任务被分配到其超时时间对应的槽中。随着时间的推进,指针每移动到一个新的槽,就检查并执行该槽中所有到期的定时任务。如果任务的超时时间超过了一个轮周期,可以通过多层时间轮结构来管理。较高层次的时间轮管理更长的超时时间,当低层时间轮转满一圈时,会触发上一层时间轮前进。时间轮算法广泛应用于各种系统中进行定时任务调度,如网络服务器中管理连接超时、操作系统中的定时器服务、数据库中的定期任务调度等。考虑一个简单的例子,一个有60个槽的时间轮,每个槽代表1秒。一个定

2024-05-08 22:01:47 991

原创 linux之NAMP

Nmap提供了灵活的扫描选项,允许用户根据需要自定义扫描类型。

2024-05-06 22:44:44 1691 1

原创 设计模式学习(八)——《大话设计模式》

单一职责原则(Single Responsibility Principle, SRP)是软件开发中 SOLID 原则之一,由罗伯特·C·马丁(Robert C. Martin)提出。它指的是一个类应该仅有一个引起它变化的原因,或者更简单地说,一个类应该只负责一项职责。

2024-05-05 22:29:30 1013

原创 rust 实现GUI页面方法

Egui 是一个用 Rust 编写的即时模式 GUI 库,它旨在为游戏和交互式应用提供简单、快速且可移植的图形用户界面。与传统的保留模式 GUI 库不同,即时模式 GUI(Immediate Mode GUI,简称 IMGUI)不需要开发者维护一个单独的应用程序状态和界面状态,界面元素(如按钮、滑块等)是在每一帧绘制时即时创建和处理的。FLTK 是一个跨平台的轻量级 GUI(图形用户界面)库,它以其简洁和高效而闻名,特别适合用于开发需要快速启动和低资源消耗的桌面应用程序。

2024-05-04 20:56:07 2226 2

原创 学习选择排序的可视化实现(一)

开始:从数组的第一个元素开始,假设最小(或最大)元素就是第一个元素。比较:遍历未排序的部分,找到实际的最小(或最大)元素。交换:将找到的最小(或最大)元素与未排序部分的第一个元素交换位置。重复:移动到下一个元素,重复步骤2和3,直到数组完全排序。

2024-05-03 15:31:29 554

原创 学习冒泡排序的可视化实现(一)

调整排序逻辑以响应状态变量:在绘制循环中,根据is_sorting和is_paused变量的值来决定是否执行排序步骤。例如,您可以使用一个全局变量来记录当前排序的进度,并在每次窗口绘制事件中只执行一次或几次元素比较和交换。定义控制状态变量:在main函数中,定义几个变量来表示排序的状态(是否正在排序、是否暂停等)和一个变量来存储原始数组以方便重置。处理输入事件:监听键盘或鼠标事件来控制排序的开始、暂停和重置。绘制控制按钮:在窗口中绘制表示开始、暂停和重置操作的按钮,并处理点击这些按钮的事件。

2024-05-02 22:19:37 1018

原创 PROXY代理学习

在计算机领域中,代理(Proxy)是一种特殊的网络服务,它充当客户端和服务器之间的中介,使得客户端能够通过代理与另一台服务器进行通信。代理服务可以用于多种目的,包括提高安全性、管理网络流量、缓存数据以提高访问速度等。

2024-05-01 21:05:50 1285

原创 数字证书简记

数字证书和数字证书链是网络安全和身份验证的重要组成部分,它们在保障网络交易的安全性和可信度方面发挥着至关重要的作用。

2024-04-29 23:15:56 493

原创 使用rust学习基本算法(四)

对于一个包含n个顶点的图,其邻接矩阵是一个n×n的矩阵,记为A。如果顶点i和顶点j之间存在一条边,则矩阵中的元素A[i][j]表示这条边的权重;如果不存在边,则A[i][j]的值通常设为0(对于无权图)或某个特定的非负值,如无穷大(对于有权图),表示两个顶点之间没有直接的连接。

2024-04-27 19:43:42 1248

原创 使用rust学习基本算法(三)

回溯算法通过试错来找到所有可能的解决方案,它在遇到“死路”时回退到上一个步骤,然后尝试其他可能的路径。这种方法虽然在某些情况下效率不高(比如解空间非常大时),但对于很多问题来说是一种简单而有效的解决方法。对于一个包含 V 个顶点和 E 条边的图,邻接链表由一个数组或者哈希表组成,数组或哈希表的大小为 V。数组或哈希表的每个索引位置 i 都存储一个链表,这个链表包含了所有从顶点 i 出发的边所连接到的其他顶点。这样,图中的每条边都会在某个链表中以节点的形式出现。

2024-04-26 06:00:00 1736

原创 双机部署学习

双机部署是一种常见的高可用性解决方案,旨在通过两台服务器的协作来提高系统的稳定性和可靠性。这种部署方式能够确保当一台服务器发生故障时,另一台服务器能够接管服务,从而最大限度地减少系统的停机时间。

2024-04-25 06:00:00 873

原创 StorCli工具学习记录

StorCLI(Storage Command Line Interface)是一款强大的命令行管理工具,用于管理和配置存储控制器。这一工具主要适用于Broadcom(原LSI)及Intel RAID控制器。下面将详细介绍StorCLI的安装、特点、操作说明、常用场景、适用场景及具体应用。

2024-04-24 06:00:00 1676

原创 使用rust学习基本算法(二)

贪心算法是一种在每一步选择中都采取当前状态下最优的选择,以期望通过一系列的局部最优解来达到全局最优解的算法策略。它的主要特点是局部最优解的选择,希望通过这种方式来解决某些优化问题。但需要注意的是,贪心算法并不保证能够得到全局最优解,它的正确性需要根据具体问题来分析。

2024-04-23 06:00:00 1271

原创 使用rust学习基本算法(一)

这个算法可以找到从图中一个指定的源节点到所有其他节点的最短路径。算法从源节点开始,逐步将距离源节点最近的节点加入到已找到最短路径的节点集合中,并更新其他节点到源节点的距离,直到所有节点都被处理过。在这里,我们创建了一个Edge结构体来表示边,它包含目标节点的索引node和从源节点到该节点的成本cost。此函数接受一个邻接列表表示的图和一个起始节点索引,返回一个包含从起始节点到所有其他节点的最短路径成本的向量。节点0有两条边,一条到节点1(成本为2),另一条到节点2(成本为4)。定义边和优先队列中的元素。

2024-04-22 06:00:00 1187

原创 设计模式学习(七)——《大话设计模式》

策略模式可以将每种支付方式实现为一个具体的策略类,支付系统的上下文(Context)根据用户的选择动态切换支付策略。客户端使用环境类:最后,客户端创建一个环境类的实例,并选择一个具体策略类传递给环境类。客户端通过环境类调用算法,而具体的算法则由具体策略类实现。简而言之,策略模式关注于算法和行为的多样性及其可替换性,而简单工厂模式关注于创建具体对象,隐藏创建细节,减少客户端与具体类之间的依赖。:通常通过定义一个公共接口来实现,各个策略类实现这个接口,客户端通过持有一个对这个接口的引用来使用不同的策略。

2024-04-21 06:30:00 944

原创 linux对网络的监控操作学习--端口、流量、IP

用户空间是指非内核代码运行的内存区域,即普通的应用程序运行的地方。用户空间提供了一个相对安全的环境,因为即使用户空间的程序崩溃,也不会直接影响到系统的稳定性。Linux系统中的用户空间程序指的是运行在用户空间的软件应用程序,与运行在内核空间的内核程序相对。总之,用户空间程序包括几乎所有普通用户直接使用的软件应用程序,而这些程序通过与内核空间进行交互,来实现对硬件资源的访问和管理。auditd是Linux系统的审计守护进程,可以记录系统上的所有活动,包括网络活动,提供详细的审计功能。

2024-04-20 06:00:00 1987 5

原创 linux基本问题处理记录

objdump是一个显示二进制文件信息的程序,它可以用来显示一个可执行文件、一个对象文件、或一个库中定义的符号信息。虽然strace不直接显示库依赖,但它是一个强大的工具,用于跟踪程序运行时的系统调用和接收到的信号。在Linux系统中,.lock文件通常用于表示某个程序或进程正在使用特定的资源或文件,以防止其他程序在未完成操作前对其进行修改或删除。对于静态链接的程序,它们不依赖于外部的共享库文件,因此ldd将不会显示任何输出。对于静态链接的程序,它们不依赖于外部的共享库文件,因此ldd将不会显示任何输出。

2024-04-19 06:30:00 2009

原创 设计模式学习(六)——《大话设计模式》

当需要根据输入或条件创建多个类的实例时,而这些类又有共同的父类或接口。当创建对象的逻辑比较复杂,但又希望对客户端隐藏这些复杂性时。当系统需要灵活地添加新产品时,而不希望对现有代码造成太大影响。

2024-04-18 07:00:00 2341

原创 设计模式学习(五)——《大话设计模式》

关联:确定类之间的关系。如果两个类需要直接交互或一个类中包含另一个类的引用,则它们之间存在关联关系。继承:识别是否有类似但更具体的实体应该继承自一个更通用的类。实现:如果你的系统使用了接口,确定哪些类将实现这些接口。聚合与组合:确定类之间是否存在‘拥有’关系。聚合表示一种弱‘拥有’关系,而组合则表示一种强‘拥有’关系。

2024-04-17 06:45:00 825

原创 iptables 学习

为了更好地组织和管理规则,你可以创建自定义链。例如,创建一个专门用于日志记录的链:这里创建了一个名为LOGGING的自定义链,所有输入链的数据包都会被转发到这个自定义链。在LOGGING链中,我们限制了日志记录的频率,并在日志消息中添加了前缀,最后丢弃了这些数据包。组织性:自定义链可以帮助您将规则按功能、服务或任何其他逻辑方式分组。易于管理:更新、删除或临时禁用一组规则变得更加简单。性能:通过将检查过程分解到不同的链中,可以提高处理效率,尤其是对于复杂的规则集合。

2024-04-16 14:01:17 1431

原创 linux监控文件操作行为

关键词(key)在这个上下文中是完全自定义的。当你使用 -k 参数在 auditd 规则中指定一个关键词时,这个关键词用于标记和识别与该规则相关的审计事件。这意味着你可以使用任何有意义的字符串作为关键词,以便于后续在审计日志中快速过滤和查找相关事件。-k auth-change 中的 auth-change 是一个自定义关键词,用于标识和过滤与 /etc/pam.d/common-auth 文件更改相关的审计事件。

2024-04-15 22:44:29 1795 2

原创 密码知识汇总

加密是一种安全技术,用于保护信息免受未经授权的访问或篡改。它通过将信息(明文)转换成只有拥有特定密钥的人才能解读的格式(密文)来实现这一点。加密的目的是确保数据的机密性、完整性和可验证性,即使数据在传输过程中被截获,没有相应的密钥也无法读取或理解数据内容。密码学中的加密方法主要可以分为两大类:对称加密和非对称加密。每种方法都有其独特的应用场景和优缺点。摘要,通常在计算机科学中称为哈希(Hash)或哈希函数,是一种将任意长度的数据映射到固定长度的数据的算法。这个过程产生的固定长度的数据称为哈希值或摘要。

2024-04-14 16:09:45 1160 1

原创 密码学:古老艺术与现代科学的交汇

从古代的简单隐秘通信到现代社会中不可或缺的安全技术,密码学经历了长期而复杂的发展历程。未来,随着新技术的不断涌现和新威胁的出现,密码学将继续演进,并在数字化时代中发挥越来越关键的作用。

2024-04-13 18:09:25 599 1

FIO测试安装包文件,可用于源码下载在linux本地进行编译

FIO测试安装包文件,可用于源码下载在linux本地进行编译;使用FIO在linux设备上进行存储的性能测试,主要是进行压力和稳定性的测试,一方面FIO命令可以很好的设置性能测试参数,便于维护测试数据;另一方面,FIO命令的测试结果较为直观清晰,能够很好的展示存储的测试结果,能够满足多种测试场景,对存储的测试场景进行充分的覆盖。

2024-04-01

空空如也

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

TA关注的人

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