自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 模式匹配这么好,Java语法里有吗?

下图直观的表达了模式匹配的概念。所谓模式类似上图中木盒的各种形状的洞洞,我们的值只有匹配木盒上面的洞洞才能放进去。我们看到上面的和木盒有很多不同的形状,意味着模式是多种多样的。模式匹配是一种通用的技术,可以用于匹配各种类型的数据,包括字符串、树、列表等。例如,正则表达式就是一种特殊类型的模式匹配,专门用于匹配字符串。正则表达式使用一系列特殊字符来定义模式。例如,正则表达式\d+可以匹配任何由一个或多个数字组成的字符串。我们把模式和匹配分开来看。// 程序输出:这段代码中模式就是。

2024-02-20 19:12:40 677

原创 Rust中的Fn、FnMut 和 FnOnce都有什么区别?

Fn要求只能只能捕获环境变量,而FnMut不但捕获环境变量还需要修改环境变量,所以Fn一定能满足FnMut的条件。同样的,FnOnce要求拿到环境变量的所有权,如此一来,不管是Fn还是FnMut都是在没有所有权的基础上运行的,有了所有权那就是能无所无能了。它表示闭包可以捕获其环境变量的所有权。,这是一个免费专栏,有需要的朋友可以自助获取哦,也可以关注我的公众号“程序饲养员”获取最新动态。表示闭包可以捕获其环境变量的可变引用。这意味着闭包可以修改其环境变量的值。它表示闭包可以捕获其环境变量的不可变引用。

2024-02-18 22:26:57 650

原创 Rust中不可变变量与const有何区别?

如果你初次学习编程语言,变量会是一个比较抽象的概念。以Rust语言来说,声明一个变量就是申请一块内存,内存的大小由变量的类型决定,类型我们会在后面的课程介绍。我们使用let关键字声明一个变量a,同时把abc存放到变量里面。此时,我们可以说变量中存储了abc,也可以说这块内存中存储了abc。具体怎么来理解呢?内存就像这个鸡蛋收纳盒, 我们为每一个蛋格编码(这个编码就相当于内存地址)。声明一个变量a,相当于找到一个空格把它叫做a,同时把鸡蛋放到这个空格里面。

2024-02-16 08:41:46 1017 2

原创 Rust中打印语句为什么使用宏实现?

Rust中打印语句为什么使用宏?在Rust中,打印语句使用宏(例如println!和format!)的主要原因是为了在编译时进行字符串格式检查,并在不引入运行时开销的情况下提供更高的性能和安全性。宏可以被多次调用,这样你可以在不同的地方重复使用相同的代码模式。这有助于减少代码重复,提高代码的可维护性。

2024-02-15 10:03:05 836 1

原创 如何为Kafka加上账号密码(二)

上篇文章中我们讲解了Kafka认证方式和基础概念,并比较了不同方式的使用场景。我们在《》中集群统一使用PLAINTEXT通信。Kafka通常是在内网使用,但也有特殊的使用场景需要暴漏到公网上,如果未设置认证的Kafka集群允许通过公网访问,或暴漏给全部研发人员是极不安全的方式。本小节我们就为Kafka添加最简单的认证方式,也就是SASL_PLAINTEXT(即SASL/PLAIN+ 非加密通道)。

2024-02-10 16:11:14 2299 2

原创 如何为Kafka加上账号密码(一)

SASL在配置用到了JAAS,那什么是JAAS,它有什么作用呢?JAAS全称是Java认证和授权服务(Java Authentication and Authorization Service),因为Kafka使用Jvm系语言开发,采用Java平台的方案也是水到渠成的事情。我们不是为Kafka开发登录插件,因此无需深入了解JAAS,只需知道jaas配置文件的格式与如何使用它即可。

2024-02-06 13:24:51 1494

原创 2024年了,如何更好的搭建Kafka集群?

我们基于Kraft模式和Docker Compose同时采用最新版Kafka v3.6.1来搭建集群。

2024-02-05 10:21:21 1564 1

原创 一文搞懂Kafka中的listeners配置策略

1. listeners中的plaintext controller external是什么意思?2. Kraft模式下controller和broker有何区别?

2024-02-04 14:37:08 1005 1

原创 Rust编译过程讲解与环境准备

目前主流编译平台有,GNU、MSVC、LLVM。因为rustc调用了llvm,因此我们以LLVM为例,我们从C语言的编译过程聊,再对比Rust,看它们的编译过程有何差异。

2024-01-23 20:52:11 1377 3

原创 最全的Rust全网学习资源

学习Rust过程中整理了一些学习资料分享一下。有些网址可能需要一点魔法才能打开。

2024-01-06 19:36:07 518 1

原创 Rust 模块化:深入了解 Rust 中的代码组织

模块化是对代码一层一层的封装。`面向对象`语言中提供的`class`也算是一种模块化技术,有些语言使用`namespace`定义的`命名空间`也是一种模块化技术,让我们看看Rust中的模块化是如何设计的。

2024-01-03 10:01:08 524 1

原创 form-data 与 x-www-form-urlencode有何区别?

在客户端和服务器之间传递数据既可以使用`form-data` ,又可以使用 `x-www-form-urlencoded` 。但是在使用时你有注意它们的区别吗?

2024-01-02 09:14:49 703

原创 学Rust不学Cargo,等于没学Rust:workspace详解

Rust 中的Workspace是一种组织多个 Rust crate(项目或库)的结构。使得它们可以协同工作、共享依赖关系,以及更方便地进行管理和构建。 如果你是Java开发者,workspace这个概念类似Java中的maven父工程。 子工程可以共享父工程中的很多配置项,如依赖,版本等配置。子工程可以选择性的继承父工程的配置。

2023-12-31 10:49:41 1366

转载 Linux IO模式及 select、poll、epoll详解

我曾多次尝试写一篇关于IO模型相关的文章,但是每次都觉得自己知识匮乏且表达欠佳。本文的讨论的内容困扰我很久很久,直到看到这篇文章才打开思路,对IO模型有了进一步理解。我真怕作者某天突然删除这篇文章,那种感觉就像丢了钱一样心痛,赶紧放到这里一份副本。

2023-12-31 10:43:12 34

原创 学Rust不学Cargo,等于没学Rust:features特性详解

在 Rust 中,Cargo 的 "features" 是一种机制,允许你在编译你的 crate 时选择不同的配置选项。这样可以在一个 crate 中提供多个功能,并根据需要选择性地启用或禁用这些功能。

2023-12-30 11:15:39 444 1

原创 CPU执行系统调用时发生中断,操作系统还能切回中断前的系统调用继续执行吗?

系统调用服务例程在执行过程中,通常不会被中断。系统调用服务例程的执行是一个原子操作,即在执行期间不会被中断。这是为了确保在系统调用服务例程执行期间对内核数据结构的一致性和完整性。

2023-12-29 10:51:12 396 1

原创 如何使用Rust进行系统编程?

在 Rust 中,要调用系统调用并与底层 C 函数进行交互,通常会使用 `libc` crate。`libc` 提供了 Rust 到 C 的 FFI(Foreign Function Interface)绑定,允许 Rust 代码调用和使用底层的 C 函数和系统调用。

2023-12-28 09:22:06 437 1

原创 “系统调用”究竟是不是个函数?

系统调用和普通函数有何区别?什么是内核态 和 用户态?操作系统如何让CPU切换状态?内中断、外中断、软中断、硬中断是什么意思?库函数和系统调用有何区别?

2023-12-27 08:59:01 1093

原创 从Rustup出发看看Rust语言的编译生态

1. Rust和LLVM的关系是怎样的?2. Rustup中targets是什么,为什么可以安装多个?3. Rust在windows上为什么需要安装Visual studio?4. Rust工具链有哪些工具?

2023-12-26 16:22:57 1042 1

原创 到了2038年时间戳溢出了怎么办?

常用的时间格式,他们都遵循哪些标准?什么是GMT?什么是UTC?GMT UTC 和ISO8601有什么区别?RFC5322是什么?

2023-12-24 09:46:46 1488 1

docker-ce-20.10.14-3.el7.x86_64的centos7.x离线安装包

安装方法可以参考这篇文章:https://blog.csdn.net/ziyetian666/article/details/106668638/ centos7.x最小化安装后可以直接安装docker-ce

2022-04-23

cfssl cloudflare

cloudflare公司生产,完美取代openssl

2020-12-22

空空如也

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

TA关注的人

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