- 博客(481)
- 收藏
- 关注
原创 【Rust UDP编程】rust udp编程方法解析与应用实战
Rust标准库通过std::net模块提供了UDP网络编程支持,主要类型包括:UdpSocket:UDP套接字的主要类型SocketAddr:表示IP地址和端口号的组合
2025-06-11 10:38:53
767
21
原创 【Rust TCP编程】Rust网络编程之TCP编程语法解析与应用实战
TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在Rust中进行TCP编程前,我们需要了解一些基本概念:- 面向连接:通信双方必须先建立连接才能传输数据- 可靠性:TCP保证数据按序到达,无差错、不丢失、不重复- 全双工:连接双方可以同时发送和接收数据- 流量控制:防止发送方发送过快导致接收方来不及处理- 拥塞控制:防止网络过载TCP使用IP地址和端口号来标识通信端点,通常表示为IP:Port的形式。
2025-06-09 08:54:41
1923
29
原创 【Rust宏编程】Rust有关宏编程底层原理解析与应用实战
Rust的宏系统是其语言中最强大但也最复杂的特性之一。与C/C++的简单文本替换宏不同,Rust提供了两种完全集成到语言中的宏系统:声明式宏(declarative macros)和过程式宏(procedural macros)。宏在Rust中扮演着至关重要的角色,它们允许开发者:- 消除重复代码- 创建领域特定语言(DSL)- 在编译时生成代码- 实现编译期计算
2025-06-05 07:15:00
4005
43
原创 【Rust 高级trait】Rust trait的一些高级用法解密
Rust trait的一些高级用法解密。关联类型用法;默认泛型类型参数和运算符重载;完全限定语法;trait继承;newtype模式。
2025-06-04 07:15:00
4317
30
原创 【Rust unsafe】Rust 不安全代码unsafe详细用法实战
Rust语言以其内存安全和线程安全的特性而闻名,这些安全保障很大程度上得益于其所有权系统和借用检查器。然而,在某些情况下,我们需要执行一些编译器无法验证安全性的操作,这时就需要使用unsafe关键字。目前为止讨论过的代码都有 Rust 在编译时会强制执行的内存安全保证。然而,Rust 还隐藏有第二种语言,它不会强制执行这类内存安全保证:这被称为 不安全 Rust(unsafe Rust)。它与常规 Rust 代码无异,但是会提供额外的超能力。
2025-06-03 09:56:34
4509
36
原创 【Rust模式与匹配】Rust模式与匹配深入探索与应用实战
模式是 Rust 中特殊的语法,它用来匹配类型中的结构,无论类型是简单还是复杂。结合使用模式和 match 表达式以及其他结构可以提供更多对程序控制流的支配权。模式由如下一些内容组合而成:字面量解构的数组、枚举、结构体或者元组变量通配符占位符这些部分描述了我们要处理的数据的形状,接着可以用其匹配值来决定程序是否拥有正确的数据来运行特定部分的代码。
2025-05-29 09:21:50
6906
49
原创 【Rust】Rust获取命令行参数以及IO操作
Rust作为一门系统编程语言,提供了强大且安全的I/O操作支持。与C/C++不同,Rust通过所有权系统和丰富的类型系统,在编译期就能避免许多常见的I/O错误。Rust的标准库std::io模块包含了大多数I/O功能,而std::fs模块则专门处理文件系统操作。
2025-05-28 10:17:03
6845
28
原创 【Rust多线程】Rust并发编程,如何轻松实现无畏并发
进程是资源分配的最小单位,线程是CPU调度的最小单位。每个进程都最少有一个线程,而这个线程就是我们常说的主线程安全并高效的处理并发编程是 Rust 的另一个主要目标。并发编程(Concurrent programming),代表程序的不同部分相互独立的执行,而 并行编程(parallel programming)代表程序不同部分于同时执行,这两个概念随着计算机越来越多的利用多处理器的优势时显得愈发重要。
2025-05-27 07:15:00
7024
34
原创 【Rust智能指针】Rust智能指针原理剖析与应用指导
Rust语言以其内存安全和零成本抽象的特性而闻名,其中智能指针是实现这些特性的重要组成部分。与C++中的智能指针类似,Rust的智能指针提供了比普通引用更丰富的功能,但在实现和使用上有着Rust特有的设计哲学。智能指针是Rust中一种特殊的数据结构,它们不仅包含指针功能,还附加了额外的元数据和功能。Rust标准库提供了多种智能指针类型,每种都有其特定的用途。
2025-05-21 07:15:00
9597
53
原创 【Rust迭代器】Rust迭代器用法解析与应用实战
迭代器是Rust语言中一个强大且高效的概念,它为处理集合和数据序列提供了统一、安全且零成本抽象的接口。Rust的迭代器不仅使用方便,而且在编译时就能进行大量优化,使得最终生成的代码性能通常能与手写的循环相媲美。迭代器模式允许你对一个项的序列进行某些处理。迭代器(iterator)负责遍历序列中的每一项和决定序列何时结束的逻辑。当使用迭代器时,我们无需重新实现这些逻辑。
2025-05-19 08:51:30
10325
44
原创 【Rust闭包】rust语言闭包函数原理用法汇总与应用实战
闭包(Closure)是 Rust 中一个强大且灵活的特性,它允许你捕获环境中的变量并在稍后执行。Rust 的闭包设计既高效又安全,是函数式编程风格的重要组成部分。Rust 的 闭包(closures)是可以保存进变量或作为参数传递给其他函数的匿名函数。可以在一个地方创建闭包,然后在不同的上下文中执行闭包运算。不同于函数,闭包允许捕获调用者作用域中的值。
2025-05-16 07:15:00
12792
53
原创 【Rust生命周期】一文搞懂Rust语言生命周期机制
生命周期是Rust中用来确保引用始终有效的范围标记。它告诉编译器引用的有效作用域,从而防止悬垂引用(Dangling Reference)——即引用指向已经被释放的内存。在Rust中,每个引用都有其生命周期,尽管大多数情况下编译器可以自动推断而不需要我们显式标注。Rust 中的每一个引用都有其 生命周期(lifetime),也就是引用保持有效的作用域。大部分时候生命周期是隐含并可以推断的,正如大部分时候类型也是可以推断的一样。
2025-05-15 07:15:00
15613
43
原创 【Rust trait特质】如何在Rust中使用trait特质,全面解析与应用实战
在Rust中,Trait是一种定义共享行为的机制,类似于其他语言中的"接口"(interface)或"抽象类"(abstract class)。Trait允许我们定义一组方法签名,这些方法可以被不同类型实现,从而实现多态行为。
2025-05-14 09:34:02
13337
35
原创 【Rust泛型】Rust泛型使用详解与应用场景
泛型(Generics)是一种编程语言特性,允许在编写代码时使用类型参数,这些参数可以在使用时被具体类型替换。Rust的泛型系统既强大又安全,能够在编译时检查所有类型约束。泛型是一种参数化多态的形式,它允许你在定义函数、结构体、枚举和方法时使用类型参数,而不是具体的类型。
2025-05-12 09:35:45
15474
40
原创 【Rust测试】Rust代码测试方法详解与应用实战
测试是软件开发中不可或缺的重要环节,它能够确保代码质量、减少bug并提高软件的可靠性。Rust语言从设计之初就内置了对测试的支持,提供了完善的测试框架和工具链。本文将全面介绍Rust中的测试方法,从基础概念到高级技巧,并结合实际案例展示如何在Rust项目中实施有效的测试策略。
2025-05-09 07:15:00
17318
52
原创 【Rust错误处理】Rust错误处理机制详解与应用实战
在 Rust 中,错误处理是一个核心特性,它通过 Result 和 Option 类型以及 panic! 机制来管理错误和异常情况。Rust 的错误处理强调显式性和安全性,避免了传统异常机制的隐式控制流问题。Rust 主要有两种错误处理方式:可恢复错误和不可恢复错误。
2025-05-08 07:15:00
18353
35
原创 【Rust模块管理】Rust包、crate与模块管理
包:Cargo的一个功能,允许构建,测试,和分享crate。crate:一个模块的树形结构,形成库或二进制项目。模块:通过use来使用,用来控制作用域和路径的私有性。路径:一个命名 例如结构体、函数或模块等项的方式在 Rust 中,模块(module)是组织代码的基础单位,它帮助你将代码划分为多个逻辑部分,便于管理、复用和控制访问权限。模块是一个命名空间,用于组织函数、结构体、枚举、常量、trait 和其他模块。Rust 中的模块可以嵌套,并且支持私有和公开访问控制。
2025-05-07 07:15:00
19035
50
原创 【Rust通用集合类型】Rust向量Vector、String、HashMap原理解析与应用实战
Rust 标准库中包含一系列被称为 集合(collections)的非常有用的数据结构。大部分其他数据类型都代表一个特定的值,不过集合可以包含多个值。不同于内建的数组和元组类型,这些集合指向的数据是储存在堆上的,这意味着数据的数量不必在编译时就已知并且可以随着程序的运行增长或缩小。每种集合都有着不同能力和代价,而为所处的场景选择合适的集合则是你将要始终成长的技能。在这一章里,我们将详细的了解三个在 Rust 程序中被广泛使用的集合:vector,String,HashMap。
2025-04-28 08:32:44
25479
61
原创 【Rust】Rust中的枚举与模式匹配,原理解析与应用实战
枚举(enumerations),也被称作 enums。枚举允许你通过列举可能的值来定义一个类型。首先,我们会定义并使用一个枚举来展示它是如何连同数据一起编码信息的。接下来,我们会探索一个特别有用的枚举,叫做 Option ,它代表一个值要么是某个值,要么什么都不是。然后会讲到在 match 表达式中用模式匹配,针对不同的枚举值编写相应要执行的代码。
2025-04-25 08:58:01
28958
54
原创 【Rust结构体】Rust结构体详解:从基础到高级应用
结构体(struct)是Rust中一种自定义数据类型,它允许你将多个相关的值组合在一起,形成一个有意义的组。结构体是创建更复杂数据类型的基础,也是面向对象编程中"对象"概念的基石。与元组类似,结构体的每个部分可以是不同类型。但与元组不同,结构体需要为每个部分命名,这使得数据访问更加清晰明确。
2025-04-24 07:15:00
27883
37
原创 【Rust所有权机制】Rust所有权机制详细解析与应用实战
所有权(系统)是 Rust 最独特的功能,其令 Rust 无需垃圾回收(garbage collector)即可保障内存安全。因此,理解Rust 中所有权如何工作是十分重要的。本文我们将讲到所有权以及相关功能:借用、slice 以及 Rust 如何在内存中布局数据。
2025-04-23 07:15:00
31395
60
原创 【云原生】k8s集群部署最新版ELFK日志采集平台
1. logstash通可以收集日志,也可以进行数据清洗,但是一般不用logstash来做日志收集,其依赖java环境,并且数据量过大,会占用过多资源,所以logstash一般用来进行数据清洗2. logstash清洗完的数据会交给elasticsearch进行存储3. 用户通过kibana进行可视化页面查看日志,kibana主要用途是负责数据的展示,类似于grafana。4. kibana中展示得数据是通过elasticsearch的api进行相关数据的搜索。5. filebeat是一个轻量级的日
2025-04-21 09:31:03
29968
49
原创 【ELK】最新版ELK日志搜集,过滤与展示,手把手教你搭建企业级ELK日志平台
ELFK是一套完整的日志集中处理方案。E:ElasticSearck ES 分布式索引型非关系数据库 存储logstash输出的日志 全文检索引擎,保存的格式是json格式L:logstash 基于java语言开发的,数据收集引擎。日志的收集,可以对数据进行过滤,分析,汇总,以标准格式输出K:Kiabana 是es的可视化工具。对es存储的数据进行可视化展示,分析和检索。F: FileBeat是一个轻量级日志采集器,Filebeat属于Beats家族的6个成员之一。
2025-04-17 07:15:00
32317
49
原创 【Rust开发】Rust基础语法详细解析,助力你快速通关Rust
本文将介绍 Rust 中常用的一些概念,并通过真实的程序来展示如何运用它们。你将会学到Rust的变量,数据类型,函数,注释方法,流程控制语句等很多的知识!
2025-04-10 07:15:00
39128
62
原创 【Rust开发】Rust快速入门,开发出Rust的第一个Hello World
Rust于2015年发布第一个稳定版本连续四年stackoverflow的最受欢迎的语言特点:高性能,媲美C/C++,可以做嵌入式开发没有GC,同时也不需要手工管理内存(所有权机制)没有野指针,当多个指针指向同一个对象,当通过其中一个指针见将对象删除时,剩余指向该对象的指针就成了野指针。就访问不到对象了,再访问就会报空指针错误并发安全集所有语言之大成者
2025-04-09 07:15:00
40225
57
原创 【go微服务】如何快速掌握grpc开发
在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC 服务器来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。
2025-03-28 07:15:00
49232
63
原创 【go微服务】跨语言RPC接口工具--protobuf语法与原理解读以及应用实战
Protobuf是Protocol Buffers的简称,它是Google公司开发的一种数据描述语言,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。Protobuf刚开源时的定位类似于XML、JSON等数据描述语言,通过附带工具生成代码并实现将结构化数据序列化的功能。
2025-03-27 07:15:00
49173
53
原创 【go微服务】Golang微服务之基--rpc的实现原理以及应用实战
微服务是通过这种架构设计方法拆分出来的一个独立的组件化小应用微服务架构定义的精髓,可以用一句话来描述,那就是 分而治之,合而用之。将复杂的系统进行拆分的方法,就是分而治之。分而治之,可以让复杂的事情变的简单,这很符合我们平时处理问题的方法。
2025-03-25 09:16:54
50733
51
原创 【Golang】go语言上下文context
在Go语言中,context包是一个非常重要的工具,用于在多个goroutine之间传递请求范围的数据、取消信号以及超时控制。context包的设计初衷是为了解决在复杂的并发环境中,如何有效地管理和控制goroutine的生命周期。通过使用context,开发者可以更好地控制goroutine的取消、超时以及传递请求范围的数据。
2025-03-24 07:15:00
50992
50
原创 【Golang】go语言操作redis数据库--go-redis
Go语言的标准库中没有直接支持Redis的包,但社区提供了多个优秀的Redis客户端库。其中最常用的是go-redis和redigo。本文将使用go-redis库进行讲解,因为它具有更现代的API设计和更好的性能。
2025-03-22 08:30:00
51427
53
原创 【Golang】Go操作数据库框架gorm
GORM是Go语言中的一个强大的ORM(对象关系映射)库,它提供了简单易用的API来操作数据库。GORM支持多种数据库,如MySQL、PostgreSQL、SQLite等。通过GORM,开发者可以使用Go语言的结构体来映射数据库表,从而简化数据库操作。
2025-03-21 07:15:00
53234
49
原创 【Prometheus】prometheus标签替换label_replace,动态修改生成标签,增强查询的灵活性和表达能力
label_replace是 PromQL 中的一个函数,用于动态修改或生成标签。它允许用户通过正则表达式从现有标签中提取信息,并将其应用于新的或现有的标签。`label_replace` 在处理复杂的标签操作时非常有用,尤其是在需要动态生成标签或对标签进行格式转换时。
2025-03-20 07:15:00
48611
42
原创 【Golang】go如何通过atomic原子操作来确保数据一致性
在多线程或并发编程中,数据一致性是一个关键问题。当多个协程(Goroutine)同时访问或修改共享数据时,可能会导致数据竞争和不一致的问题。Go语言通过`sync/atomic`包提供了一种高效且轻量级的解决方案,即原子操作。原子操作是指在执行过程中不可分割的操作,不会被其他线程或协程中断。
2025-03-19 07:15:00
49768
45
原创 【Golang】深度解析go语言单元测试与基准测试
单元测试和性能测试是成为优秀程序员的必经之路。在go语言里面,基准测试承担了性能测试的功能。单元测试和基准测试代码开发中的重要环节,良好的单元测试和基准测试,能提升开发质量,对整体开发有非常重要的重要,下面介绍单元测试和基准测试的写法。
2025-03-18 10:17:00
50754
35
原创 【Prometheus】prometheus监控pod资源,ingress,service资源以及如何通过annotations实现自动化监控
所谓Pod资源,指的是,运行在 Pod 中的 "容器" 所使用的计算资源。这些计算资源指的是 CPU、内存、网络以及磁盘 IO等相关指标。之前我们监控容器的资源时,使用的是 cAdvisor 工具来监控。不过在 Kubernetes 中,Cadvisor工具已经被内置到了 kubelet 的组件中。因此,我们可以直接监控节点的kubelet,来收集相关Pod的指标数据。
2025-03-14 14:57:53
54668
67
原创 【Prometheus】prometheus结合kube-state-metrics监控k8s的node,pod,deployment,daemonset,statefulset,cronjob等资源
集群资源状态是指, Kubernetes 集群中所有资源对象、以及这些资源对象的当前状态信息。这些资源对象,包括Pod、Deployment、DaemonSet、StatefulSet、Job、CronJob 等 。而这些资源状态,则提供了这些资源的详细信息。。。
2025-03-12 07:15:00
55205
44
原创 【Prometheus】层层解析prometheus如何监控k8s核心组件
监控 Kubernetes 集群的控制平面,首先需要知道要监控哪些组件,然后了解它们是如何提供 Metrics 指标的,最后确定这些指标的监控方法,是通过手动配置还是自动发现。关键组件包括:APIServer、ControllerManager、Scheduler、etcd、CoreDNS、kubelet、kube-proxyMetrics 指标获取:这些控制平面组件都内建 Metrics 端点。但是某些组件可能默认只在本地接口(127.0.0.1)上暴露 Metrics
2025-03-11 07:15:00
56278
47
原创 【Prometheus】k8s集群内部署的prometheus如何监控kubernetes集群
在前面的章节中,我们已经介绍了 Prometheus 的核心功能,并展示了如何使用二进制部署的Prometheus来监控 Kubernetes 的 APIServer。但在实际的生产环境中,我们通常是将 Prometheus 部署在 Kubernetes 集群内部,来监控整个集群的资源及状态。
2025-03-06 07:15:00
60615
65
原创 【Prometheus】prometheus如何监控k8s集群
Prometheus可以直接通过 Kubernetes 的 API 来自动发现和监控集群中的关键资源。包括节点(Nodes)、服务(Services)、端点(Endpoints)、Pods 和 Ingress。每一种资源都会被Prometheus当作一个监控的目标,并时刻监视着它们的变化。而每种资源类型都对应有一个专门的服务发现组件,在Prometheus 中被称为“role”。
2025-03-03 09:12:01
63360
60
原创 【Prometheus】prometheus服务发现与relabel原理解析与应用实战
relabel它可以在抓取目标实例数据之前,可以对目标实例的标签进行“灵活的改写”。借助Relabel,用户就可以自行定义复杂的“标签选择逻辑”,从而精准的控制哪些实例应当被监控,哪些实例应当被排除。例如,我们可以设置规则,仅抓取带有env=prod标签的目标实例数据,而那些不含此标签的实例则忽略掉 。
2025-02-28 07:15:00
65025
58
天气检测程序,暴露端口,给prometheus提供数据
2024-09-06
linux用户管理命令大全
2024-08-15
非常详细的git使用功能教程
2024-08-14
selenium规避检测,绕过检测
2023-12-29
linux中安装python3教程
2024-01-30
基于Python编写的类ATM机系统,功能比较全面,适合编程思维训练
2024-01-30
基于Python编写的FTP文件传输程序,包含客户端和服务端,可以跨平台文件传输
2024-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人