技术阅读周刊第第8️⃣期

技术阅读周刊,每周更新。

历史更新

  • 20231103:第四期

  • 20231107:第五期

  • 20231117:第六期

  • 20231124:第七期

Prometheus vs. VictoriaMetrics (VM) | Last9

URL: https://last9.io/blog/prometheus-vs-victoriametrics/?ref=dailydevf40e424abee620d9b9789fcb770c0a40.png

对比了 Prometheus 和 VM 的区别50c8dd725a48b6b2f1c20edb7a3a51a6.png考虑到和云原生的环境的兼容性,那 Prometheus 可能更合适些,毕竟是 CNCF 组织下的项目。 但如果考虑到性能、存储、资源占用性,VM 会更合适一些。

28 - Rust in Action: 10 Project Ideas to Elevate Your Skills

URL: https://rust-trends.com/newsletter/rust-in-action-10-project-ideas-to-elevate-your-skills/?ref=dailydeva1e0fe9d0c2e7ce20650476b9f5e57cd.png

这是一个 Rust 的 newsletter,介绍了十个项目 idea 可以提高你的 Rust 的水平,我看了下这些项目也不怎么限制语言,任何语言都可以尝试下。

  • 简易版的 grep 命令简单:读取文件根据搜索条件输出搜索结果,涉及到的技术栈:

    • 文件 IO

    • 正则表达式

    • 命令行工具

  • 短域名服务中等:接收一个长域名,转换为一个短域名,访问短域名时可以自动重定向到长域名。

    • Web 框架

    • 数据存储,可以是 SQLite/Redis

    • 生成短链接的字符串算法

  • 基于文本的冒险游戏中等:用户可以探索房间,选择物品,解密等。

    • 输入输出

    • 游戏结构体定义、以及状态流转。

  • 基本的网络爬虫简单:爬取一个网页然后提取指定的信息。

    • HTTP

    • HTML 解析

    • 字符串匹配、正则。

  • 实时聊天应用中等:支持多个人用户加入房间,可以给每个人发送消息。

    • 网络编程

    • 多线程处理客户端连接

  • Markdown 解析为 HTML中等:

    • 文本解析

    • 文件 IO

  • 简单的 HTTP 服务中等:支持静态文件服务器,也可以处理 RESTful 请求。

Implementing a Bloom Filter in Go | by Francisco Escher | Nov, 2023 | ITNEXT

URL: https://itnext.io/bloom-filters-and-go-1d5ac62557de7c4afdef2f3d7f8cbf7d56018372a986.png

多年前我也用 Java 写过一个布隆过滤器,本文作者介绍用 Go 来实现,不过原理都差不多。

布隆过滤器有以下特点:

  • 用极少的内存可以存放大量的数据

  • 存在误报的可能

  • 但返回数据不存在时一定不存在

  • 返回数据存在有一定概率是不存在的

所以基于以上特性就有了下面这些应用场景:

  • 网络安全:可以快速判断 IP 释放在黑名单中

  • web 缓存:判断请求是否在缓存中

  • 数据库缓存,原理同上

  • 语法检测:一些文本工具可以快速检测你输入的支付是否在字典里,不存在时进行提示

  • 区块链认证

  • 邮件过滤

Mastering Concurrency In Go — With Select, Goroutines, and Channels | by Yair Fernando | Better Programming

URL: https://betterprogramming.pub/concurrency-with-select-goroutines-and-channels-9786e0c6be3c83af87760db25ca9d7ed0a906686ef69.png

使用 select goroutine channel 掌握并发

利用 select 多个 channel,来控制最早完成的线程,同时抛弃其他线程

func quickestApiResponse(functions []*Function) {var articles []*Articlefor _, function := range functions {function.Run()}select {case googleNewsResponse := <-google:fmt.Printf("Source: %s\n", googleNewsResponse.Source)articles = googleNewsResponse.Articlescase freeNewsReponse := <-free:fmt.Printf("Source: %s\n", freeNewsReponse.Source)articles = freeNewsReponse.Articles}fmt.Printf("Articles %v\n", articles)
}

利用 time.After 返回的 channel,来控制达到超时时间后退出所有的线程

func main() {  ch := make(chan struct{}, 1)  go func() {  fmt.Println("do something...")  time.Sleep(4*time.Second)  ch<- struct{}{}  }()  select {  case <-ch:  fmt.Println("done")  case <-time.After(3*time.Second):  fmt.Println("timeout")  }  
}

Context.Withtimeout 来控制超时

ch := make(chan string)  
timeout, cancel := context.WithTimeout(context.Background(), 3*time.Second)  
defer cancel()  
go func() {  time.Sleep(time.Second * 4)  ch <- "done"  
}()  select {  
case res := <-ch:  fmt.Println(res)  
case <-timeout.Done():  fmt.Println("timout", timeout.Err())  
}

文章链接:

  • https://last9.io/blog/prometheus-vs-victoriametrics/?ref=dailydev

  • https://rust-trends.com/newsletter/rust-in-action-10-project-ideas-to-elevate-your-skills/?ref=dailydev

  • https://itnext.io/bloom-filters-and-go-1d5ac62557de

  • https://betterprogramming.pub/concurrency-with-select-goroutines-and-channels-9786e0c6be3c

PS:最近也在更新视频号,也会有一些技术干货,动动小手帮主播点播关注3b744a8e654a7f6e09c1538d0ee6f34b.jpeg

f96d5f1b04486b3770c109a2d50c81df.jpeg

往期推荐

五分钟 k8s 实战-滚动更新与优雅停机

五分钟 k8s 实战-应用探针

技术阅读周刊第第7️⃣期

升级到 Pulsar3.0 后深入了解 JWT 鉴权

五分钟k8s实战-Istio 网关

80d3e86998cc471fdc4cc27948995e9d.gif

点分享

73b9348d0a4983ba9c5fe37e48c0b49a.gif

点收藏

c136676783d0ef1a1bce95bf133a83f1.gif

点点赞

dd260484031197fab5a95bbf72b4bd7b.gif

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务1 springcloud学习笔记P1-P40

b微服务技术栈_哔哩哔哩_bilibili 文档资料: 链接&#xff1a;https://pan.baidu.com/s/1P_Ag1BYiPaF52EI19A0YRw?pwdd03r 提取码&#xff1a;d03r 一 了解微服务技术 二 Eureka (1) Eureka配置 (2) 注册user-service (3) 总结 Ribbon 负载均衡 (1) 流程 三 nacos配置管理…

26、pytest使用allure解读

官方实例 # content of pytest_quick_start_test.py import allurepytestmark [allure.epic("My first epic"), allure.feature("Quick start feature")]allure.id(1) allure.story("Simple story") allure.title("test_allure_simple_te…

百度Apollo新版本Beta技术沙龙参会体验

在自动驾驶领域&#xff0c;百度的Apollo一直是业界开源的标杆。其持续升级和创新的开源项目为整个自动驾驶行业树立了典范&#xff0c;不仅推动了技术的发展&#xff0c;也为广大的社区开发者们提供了学习和参考的范本。最近百度发布了Apollo新的Beta版本&#xff0c; 新版本B…

根文件系统初步测试

一. 简介 上一篇文章学习了向所编译生成的根文件系统中加入 lib库文件。文章地址如下&#xff1a; 根文件系统lib库添加与初步测试-CSDN博客 本文继上一篇文章的学习&#xff0c;本文对之前制作的根文件系统进行一次初步测试。 二. 根文件系统初步测试 为了方便测试&#…

Unity3D实现鼠标悬浮UI或物体上显示文字信息

系列文章目录 Unity工具 文章目录 系列文章目录前言最终效果一、UI事件显示文字1-1 ui事件需要引用命名空间using UnityEngine.EventSystems;1-2 IPointerEnterHandler 接口1-3 IPointerExitHandler 接口1-4 IPointerMoveHandler 接口 二、场景搭建2-1 实现如下 三、代码实现3…

Windows11亮度调节滑块消失不见,如何解决

电脑亮度调节滑块消失&#xff0c;键盘F6&#xff0c;F7亮度调节失效&#xff0c;系统-屏幕-亮度和颜色-亮度调节消失不见 1.首先winR ,输入regedit打开注册表编辑器 2.在注册表编辑器中依次点击(红橙黄绿青蓝紫) “计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Cl…

班级查分软件制作教程:老师必备技能!

首先&#xff0c;你需要选择一个合适的软件平台来制作班级查分软件。推荐使用群发成绩&#xff0c;因为它是一个功能强大且易于使用的在线查询系统&#xff0c;可以帮助你快速高效地制作班级查分软件​。 在制作班级查分软件之前&#xff0c;你需要准备好学生的成绩数据。这可以…

量化学习笔记——入门与基本概念

基本概念 量化投资 投资的核心是大数定律。 量化投资就是以数据为基础&#xff0c;以策略模型为核心&#xff0c;以程序化交易为手段&#xff0c;以 追求绝对收益为目标 的投资方法。 用数学表示金融市场&#xff0c;其数学定义&#xff1a; Y F ( x 1 , x 2 , . . . . .…

备战春招——12.05算法

树、二叉树 本次主要是对树、二叉树的前中后和递归与非递归遍历以及通过这种结构完成一些操作实现。 二叉树 中序遍历 中序遍历就是中间打印出结果嘛,如下列递归实现的&#xff0c;中间取结果. /** 递归实现* Definition for a binary tree node.* struct TreeNode {* …

Nodejs+vue+ElementUi自动排课系统

使用自动排课系统分为管理员和学生、教师三个角色的权限子模块。 管理员所能使用的功能主要有&#xff1a;首页、个人中心、学生管理、教师管理、班级信息管理、专业信息管理、教室信息管理、课程信息管理、排课信息管理、系统管理等。 学生可以实现首页、个人中心、排课信息管…

Java第二十一章 :网络通信

网络程序设计基础 网络程序设计编写的是与其他计算机进行通信的程序。Java 已经将网络程序所需要的元素封装成不同的类&#xff0c;用户只要创建这些类的对象&#xff0c;使用相应的方法&#xff0c;即使不具备有关的网络支持&#xff0c;也可以编写出高质量的网络通信程…

【模型可解释性系列一】树模型-拿到特征重要度-打印关键因素

接下来一段时间内&#xff0c;会主要介绍下模型可解释性方向的一些常用方法。 模型可解释性&#xff1a;主要用来解释为什么这个样本的特征是这样的时候&#xff0c;模型结果是那样。面向老板汇报工作(尤其是不懂算法的老板)和业务方。 常用的树模型 xgboost、lightgbm这两个…

Android studio:打开应用程序闪退的问题2.0

目录 找到问题分析问题解决办法 找到问题 老生常谈&#xff0c;可能这东西真的很常见吧&#xff0c;在之前那篇文章中 linkhttp://t.csdnimg.cn/UJQNb 已经谈到了关于打开Androidstuidio开发的软件后明明没有报错却无法运行&#xff08;具体表现为应用程序闪退的问题&#xff…

数据结构之插入排序

目录 前言 插入排序 直接插入排序 插入排序的时间复杂度 希尔排序 前言 在日常生活中&#xff0c;我们不经意间会遇到很多排序的场景&#xff0c;比如在某宝&#xff0c;某东上买东西&#xff0c;我们可以自己自定义价格是由高到低还是由低到高&#xff0c;再比如在王者某…

云原生的 CI/CD 框架tekton - pipeline(一)

文章目录 1. 官方介绍2. 组件2.1 Tekton Pipelines2.2 部署pipeline2.3 部署dashborad2.3.1 task2.3.2 taskrun2.3.3 Pipeline2.3.4 PipelineRun 3. 案例案例1: 拉取代码并查看readmestep1: 创建task - 拉取代码step2: 创建task - 查看reamdestep3: 创建task的编排 - pipelines…

软件测试面试题解析--什么题是必问的?

设计测试用例的主要方法有哪些&#xff1f;简述一下缺陷的生命周期&#xff1f;测试流程&#xff1f;项目流程&#xff1f;验收测试中和β测试区别&#xff1f;如何维护测试用例&#xff1f;每天测多少用例怎么分配的测试的一天能找多少bug你在上一家公司&#xff0c;写没写过测…

Selenium+Unittest+HTMLTestRunner框架更改为Selenium+Pytest+Allure(二)

1 代码框架 整体项目结构如图&#xff1a; Common&#xff1a;公共库 Logs&#xff1a; 日志目录 Page&#xff1a; 页面元素 Report&#xff1a;测试报告 TestCase&#xff1a;测试用例 TestData&#xff1a; 测试数据 2 单模块运行 直接上代码&#xff1a; # -*- coding…

详细介绍如何使用 SSD 进行实时物体检测:单次 MultiBox 探测器-含源码

介绍 在实时对象检测中,主流范例传统上采用多步骤方法,包括边界框、像素或特征重采样以及高质量分类器应用的提议。虽然这种方法已经实现了高精度,但其计算需求往往阻碍了其对实时应用的适用性。然而,单次多框检测器 (SSD) 代表了基于深度学习的对象检测的突破性飞跃。SSD…

SpringCloud | Dubbo 微服务实战——注册中心详解

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 |Eureka,Nacos,Consul,Zookeeper在Spring Cloud和Dubbo中实战 引言 在项目开发过程中&#xff0c;随着项目不断扩大&#xff0c;也就是业务的不断增多&#xff0c;我们将采用集群&#xf…

647. Palindromic Substrings 516. Longest Palindromic Subsequence

647. Palindromic Substrings Given a string s, return the number of palindromic substrings 回文子串 in it. A string is a palindrome when it reads the same backward as forward. A substring is a contiguous sequence of characters within the string. nomal: …