不同类型的压力分别在不同的节点上执行; 异地容灾:在数据中心故障时快速切换到异地; 典型结构 一个典型的MongoDB复制集由3个以上具有投票权的节点组成: (1)一个主节点(Primary),接受写入操作和选举时投票; (2) 2 实践准备工作 准备VMware Workstation 跟上一篇一样,这次我们仍然会通过VMware Workstation启动几个虚拟机来完成搭建实践。 准备三台CentOS 7.x虚拟机 这里模拟的是三个Mongo节点的主从复制集,因此分别命名为mongo-master、mongo-slave1、mongo-slave2。 ? (IP地址为你配置的虚拟机IP): 192.168.58.100 mongo-master 192.168.58.101 mongo-slave1 192.168.58.102 mongo-slave2 参考资料 唐建法,《MongoDB高手课》(极客时间) 郭远威,《MongoDB实战指南》(图书) 作者:周旭龙 出处:https://edisonchou.cnblogs.com 本文版权归作者和博客园共有
Rust 安装 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source "$HOME/.cargo/env" 2. Rust 的目标:安全 “we need a safer systems programming language[2] Rust 不受以下情况的影响: 空悬指针(dangling pointers): thread::spawn(|| { data = 1000; }); // <2> println! (buffer_overflow, '') // <2> } 这行代码会出现 panic assert_eq!() 的两边必须相等,否则程序 panic 使用 cargo 编译不会通过。 参考资料 [1] rust in action: https://livebook.manning.com/book/rust-in-action [2] we need a safer systems
实战 今天给大家带来抓包教程的抓包分析实战,让大家更了解抓包,以及防止抓包危害的措施。 网球锤子抓包教程 抓包介绍 1.什么是抓包 https://cloud.tencent.com/developer/article/1886911 2.什么是抓包2 https://cloud.tencent.com 1.导入 https://cloud.tencent.com/developer/article/1886895 2.实战修改过程 https://cloud.tencent.com/developer /article/1886914 - 网球教程 1.实战 https://cloud.tencent.com/developer/article/1886917 2.技巧 https://cloud.tencent.com 以抓包来说明 本教程准备 设备:iPhone 抓包工具:HttpCatcher网球 对象:微截图2 说明:教程仅供学习参考,请支持正版,禁止利用本教程进行违法行为 1.第一步抓取传输内容 •打开HTTP
https://www.gauge.sh/blog/parsing-python-asts-20x-faster-with-rust Rust newtype 终极教程 通过Rust的newtype包装器可以提高类型安全性 这个教程非常全面,推荐阅读: https://www.howtocodeit.com/articles/ultimate-guide-rust-newtypes 微软Surface的UEFI是用Rust /ba-p/4159998 教程 - 使用Rust开发跨平台安全应用 讲解了Rust如何与TS配合。 https://www.firezone.dev/blog/using-tauri Rust 社区统计数据 这个统计各大社交平台上的Rust数据。显示Rust正在快速增长。2个月涨了几%。 https://rust.code-maven.com/rust-update-2024-06-17 --
本文是《Rust in action》学习总结系列的第二部分,更多内容请看已发布文章: 一、Rust实战系列-Rust介绍 “主要介绍 Rust 的语法、基本类型和数据结构,通过实现一个简单版 grep 2. 数字类型 整数和小数(浮点数) Rust 使用相对传统的方式定义整数和小数,操作数字使用算数符号。为了实现不同类型的运算,Rust 支持运算符重载。 (2)安全:多次访问 collention 可能出现值被修改的情况,直接对 collection 进行迭代时,Rust 会保证 collection 不被其他进程修改。 ,Rust 是基于表达式的语言,这种语言的特点是所有表达式都会返回值,从而可以使用以下两种模式:(1)简洁的辅助函数,(2)从条件表达式的返回值直接进行变量赋值。 特征是 Rust 开发者为对象添加函数的方式。由于 [T; 1], [T; 2], ..., [T; n] 是不同的类型,为数组实现特征会变得很麻烦。从数组中创建切片很容易,因为不需要指定长度。
新手也能学会的高性能gpu开发,只需要rust和cubel基础知识即可实现,让你的程序简单的使用gpu加速! CubeCL是一个现代化的Rust GPU计算框架,它让编写高性能、可移植的GPU内核变得简单。 简单易用:用Rust写GPU代码,学习曲线平缓 高性能:自动向量化优化,充分利用GPU算力 可移植:同一份代码可运行在WGPU/CUDA等不同后端 类型安全:Rust的类型系统保证代码安全性 提示: 即使没有GPU编程经验,通过本教程你也能快速上手CubeCL! GPU内核编程 与传统GPU编程不同,CubeCL允许直接用Rust编写运算逻辑。
比如宏调用处有个名字 name1,同时宏内部也有一个名字 name1,那么卫生宏展开的时候就会把自己内部的 name1 改名成 name2;普通宏则不改名,“捕捉”外部的名字。 对于最后一个索引也是如此,所以a &a[2.. .len()]和a &a[2..]都是一样的。 因此,为了方便地创建整个数组的切片,我们可以使用&a[…]。 S是对i32s切片的引用。 ("s1: {s1}"); let mut s2: String = String::from("Hello "); println! ("s2: {s2}"); s2.push_str(s1); println! ("s2: {s2}"); let s3: &str = &s2[6..]; println!
Rust 教程 - 函数基础 函数:代码界的"打工人",给啥干啥,干完交活 引入 你是不是已经写过一些 Rust 代码了? } 表达式 vs 语句:Rust 的"灵魂拷问" 这是 Rust 新手最容易懵的地方。 简单说: 表达式(Expression):有返回值的东西,比如 1 + 2、x * 3、func() 语句(Statement):执行某个动作,不返回值,比如 let x = 5;、println! ("{}", name); } 实战案例 案例 1:温度转换器 fn main() { let celsius = 25.0; let fahrenheit = celsius_to_fahrenheit 参考资料 Rust Book - 函数 Rust By Example - 函数
Rust 教程 - 结构体 结构体:数据的"收纳盒",把相关字段装一起 引入 你有没有写过这样的代码: let user_name = "Alice"; let user_age = ; let user_email 今天咱们就来聊聊 Rust 的结构体,看看它怎么帮你组织数据,以及它和其他语言的"类"有什么不一样。 核心概念 结构体是什么? ("能装下 rect2 吗? 用这个 只读数据 &self 修改数据 &mut self 消耗/转换结构体 self 实战案例 案例 1:学生管理系统 struct Student { id: u32, name 参考资料 Rust Book - 结构体 Rust By Example - 结构体
Rust Vec 集合使用教程 本教程将介绍如何在 Rust 中使用 Vec<T> 集合。 Vec<T> 是一个动态数组,可以存储任意类型的元素。 [1, 2, 3]; // 创建一个包含初始元素的 Vec<i32> } 运行结果 无输出。 2. 访问和修改 Vec<T> 中的元素 要访问 Vec<T> 中的元素,可以使用索引操作符 []。 [1, 2, 3]; v.push(4); // 添加元素 v.remove(1); // 删除第二个元素 println!("v: {:?}" [1, 2, 3]; for i in &v { println!("{}", i); // 输出每个元素 } } 运行结果 1 2 3 5. [1, 2, 3]; println!("len: {}", v.len()); // 输出长度 println!
Rust wgpu 图形编程教程 该系列为 YouTube 视频系列,近期系列视频见:https://www.reddit.com/r/rust/comments/v7ql92/rust_wgpu_graphics_programming_tutorial_youtube / 配套项目代码等见项目地址:https://github.com/jack1232/wgpu-step-by-step Qdrant v0.8.0发布 用纯 Rust 编写的开源Qdrant矢量搜索引擎的新版本 可在 macOS、Windows 和 Linux 的 VST2 兼容主机上运行。 项目地址:https://github.com/greatest-ape/OctaSine ---- From 日报小组 @Jancd 社区学习交流平台订阅: Rust.cc论坛: 支持rss 微信公众号 :Rust语言学习交流
[, , ]; let v2 = v1; // v1 的所有权转移给 v2 // println!("{:?}", v1); // ❌ 编译错误! v1 已失效 } 解决: 用 clone() 或借用 let v2 = v1.clone(); // 深拷贝 // 或者 let v2 = &v1; // 借用 2. 再统一添加 let to_add: Vec<_> = nums.iter().copied().collect(); for num in to_add { nums.push(num); } 实战案例 is great Rust is fast Rust is safe"; let counts = count_words(text); for (word, count) 参考资料 Rust Book - Vectors Rust Book - HashMaps Rust Book - Strings std::vec::Vec std::collections::HashMap
Rust 教程 - 模块系统 模块系统:代码界的"收纳术",让混乱变秩序 引入 想象一下,你的代码文件越来越长,从 100 行到 500 行,再到 1000 行...最后打开文件,好家伙,滚轮都滚不到底 ("种花"); } } 方式 2:文件模块(适合大模块) // src/main.rs mod garden; // Rust 会去找 src/garden.rs 或 src/garden/ mod utils { pub fn helper() {} // 公开 } 坑点 2:文件模块放错位置 // src/main.rs mod garden; // Rust 会找 src } } fn serve() {} } 记忆技巧: self = 当前目录(.) super = 上一级目录(..) crate = 项目根目录(/) 实战案例 下一篇咱们聊聊结构体,看看 Rust 怎么组织数据! 参考资料 Rust Book - 模块系统 Rust By Example - 模块
PostgreSQL 与 Rust 聚合 在使用 PostgreSQL 时,使用类似 SUM(vals) 或者 AVG(vals) 是一个常见的习惯。 通过 pgx 我们使用 SQL 创建一些基本的聚合方法,然后使用 pgx 0.3.0 的新聚合支持创建一个在 Rust 中定义聚合的扩展。 https://hoverbear.org/blog/postgresql-aggregates-with-rust/ 让我们用 Rust 和 Yew 0.19 构建一个 WebSockets 项目 作者介绍如何使用 -0-19-60720367399f 在 Rust 中实现 NTFS 文件系统 是时候用 Rust 重写我们的系统软件并摆脱 C 的陷阱了。 作者接受了在 Rust crate 中实现 NTFS(Windows 使用的主要文件系统)的挑战,并且从固件级别到用户模式都同样可用。
专栏系列:Django学习教程 前言 从第2章开始,我们正式以实战为核心开发用户管理系统,计划实现效果图所有模块功能。 本章我们将开始实现我们第一个功能模块:用户管理。 2.数据库配置 在mysite/settings.py文件中配置你的MySQL连接信息 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql verbose_name='年龄') salary = models.DecimalField(verbose_name='工资', max_digits=10, decimal_places=2) gender_choices =( (1, '男'), (2, '女') ) gender = models.SmallIntegerField
usr/local/bin/docker-compose # sudo chmod +x /usr/local/bin/docker-compose # docker-compose --version 2 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181/kafka extra_hosts: kafka1: 172.16.16.4 kafka2: : PLAINTEXT://kafka2:9092 KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 KAFKA_ZOOKEEPER_CONNECT docker exec -it kafka1 bash 创建测试Topic 创建一个测试用的topic:testtopic,此topic配置了2个分区,无额外的副本。 参考资料 极客时间,胡夕《Kafka核心技术与实战》 B站,尚硅谷《Kafka 3.x入门到精通教程》 作者:周旭龙 出处:https://edisonchou.cnblogs.com 本文版权归作者和博客园共有
Linux内核 Rust开发环境教程 本文是一份有关如何设置 Linux 内核 Rust 开发环境的教程: 安装所需的依赖项和 Rust 工具链。 使用 rust-analyzer 和其他工具改进开发体验。 . github 地址 https://github.com/fujiapple852/trippy Rust是JavaScript工具开发的未来趋势吗 Rust Bytes近日的简报探讨了Rust在JavaScript 例如,Rolldown这样的Rust打包工具能够与现有JavaScript工作流程无缝集成,并且如SWC、Deno和Rome等流行工具已经使用Rust开发。 另外,简报提到了以Rust为基础的现代网络渲染引擎Servo,并分享了其他一些Rust项目和文章链接,包括最新版本Rust的发布和一些实用工具的介绍。
} // } impl Solution { pub fn add_two_numbers_1( l1: Option<Box<ListNode>>, l2: = &mut dump_head; let mut carry = 0; let mut p = l1.as_ref(); let mut q = l2. p.is_some() || q.is_some() { let sum = match (&p, &q) { (Some(l1), Some(l2) ) => l1.val + l2.val + carry, (Some(l1), None) => l1.val + carry, (None , Some(l2)) => l2.val + carry, (None, None) => 0 + carry, };
/target/debug total 580 drwxrwxr-x. 2 jimb jimb 4096 Sep 22 21:37 build drwxrwxr-x. 2 jimb jimb 4096 一个 Rust 包,无论是库还是可执行文件,都叫作 crate(发音为 /kreɪt/,意思是“板条箱”)2。Cargo 和 crates.io 的名字都来源于这个术语。 这一次,访问 http://localhost:3000,输入一些数值,然后单击“Compute GCD”按钮,应该会看到一些实质性结果,如图 2-2 所示。 图 2-2:展示计算最大公约数结果的网页 注意! 通过阅读 《第二章 Rust 导览》对 Rust 有了更多的了解,也看到了 Rust 强大而丰富的能力,后面将开启 Rust 基本数据类型,开始边看加重点代码实战练习了
Chrome 终于拥抱了 Rust Chrome 终于接受了 Rust,在本视频中,我们将介绍为什么 Chromium 团队决定将 Rust 引入其 C++ 代码库。让我们来看看。 Stroustrup 博士最近的内存安全评论回应 美国国家安全局(NSA)最近发布了一份关于内存安全重要性的网络安全信息表,他们在其中建议从内存不安全的编程语言(如 C 和 C++)转移到内存安全的编程语言(如 Rust 作者说,作为当前的顽固 Rustacean 和前顽固的 C++ 程序员,他已经思考(并写了博客)很多关于 Rust 与 C++ 的话题。 media.defense.gov/2022/Nov/10/2003112742/-1/-1/0/CSI_SOFTWARE_MEMORY_SAFETY.PDF 更多讨论请看:https://www.reddit.com/r/rust 项目地址:https://github.com/unicode-org/icu4x Arti 1.1.1 发布 Arti 是我们正在进行的项目,旨在用 Rust 创建下一代 Tor 客户端。