正则表达式替换html文本中的src内容 这个正则表达式可以匹配出html标签中的许多内容,这里记录一下,以后肯定会再次遇到类似的需求。最近需要在修改数据库中大量html文本中的src内容,涉及到的标签有。等,手动修改太过麻烦。于是想要使用正则表达式来做。(为什么有\这个符号?-- 因为修改的html文本存在数据库中。这样就可以实现html文本中src资源内容的更改了。只要控制代码将正则表达式匹配出来的内容替换就可以。将所有记录的src地址。
gRPC运行过程与流量控制机制 总结一下,上面讲解了gRPC中三种流量控制(注意当前版本是v1.49.0),分别为BDP、connection level 、 sream level 流量控制。按照层次关系,先从整体的BDP介绍了原理与结构,然后顺着思路,从“唯一的TCP连接”引入了connection level流量控制,最后讲解最细粒度的stream level流量控制,并且,通过gRPC的源代码步骤,从连接建立到交互完成,我们过了一遍关键的源码,在源码中看流量控制机制的过程。
Helm模板常用语法介绍与简单应用场景 Helm模板常用语法介绍与简单应用场景什么是Helm_help.tpl子模版应用场景预定义对象关于变量关键字及应用函数流程与控制Helm就是一个kubernetes的对象文件管理工具,有的介绍说Helm类似于python的Pip,是包管理工具。我们可以从使用的角度看看Helm的功能,进而明白它是什么工具。一般我们在部署kubernetes的时候,会定义Deployment、Service、ConfigMap等对象,使用的命令,但是,如果你想重新发布,修改,甚至支持多租户(多个环境),修改起来很麻烦。
gRPC基础解读与源代码过程分析 文章主要从源代码的过程分析了gRPC中:- 服务端的创建与连接过程- 客户端连接与交互过程- 连接的建立、请求的传递、请求处理等过程在源代码中的体现另外,为了便于理解,前置讲解了RPC与gRPC的区别,gRPC服务的开发流程,并进一步阐述了使用HTTP2带来的益处。
[Golang]从简单Web服务步步抽象到初级Web框架 (Ⅳ) 这个系列是基于Golang的http包,从简单的Web服务开始,步步构建,完成一个初级Web框架。抽象出树接口,预留了扩展方法。接下来,我们可以增加静态文件资源服务。首先http库是已经支持了相关的文件操作。......
[Golang]从简单Web服务步步抽象到初级Web框架 (Ⅲ) 这个系列是基于Golang的http包,从简单的Web服务开始,步步构建,完成一个初级Web框架。[Golang]从简单Web服务步步抽象到初级Web框架 (Ⅰ)服务的抽象[Golang]从简单Web服务步步抽象到初级Web框架 (Ⅱ)重构中间件上篇文章定义了中间件结构,然后完成责任链调用。这一篇文章是修改路由方式,增加树结构匹配路由。(参考了Gin强大的路由功能)......
[Golang]从简单Web服务步步抽象到初级Web框架 (Ⅱ) 这个系列是基于Golang的http包,从简单的Web服务开始,步步构建,完成一个初级Web框架。[Golang]从简单Web服务步步抽象到初级Web框架 (Ⅰ)服务的抽象这篇文章继续往下,将代码进一步优化与抽象
[Golang]从简单Web服务步步抽象到初级Web框架 (Ⅰ) 文章目录[Golang] 简单Web服务到初级Web框架(Ⅰ)要做什么最简单的HTTP服务原生HTTP库实现注册功能存在哪些问题?解决问题针对响应码与序列化数据的请求封装为Context将服务抽象为Server修改后代码下一篇的内容(Ⅱ)[Golang] 简单Web服务到初级Web框架(Ⅰ)要做什么故名思意,就是使用go语言从最简单开始,通过原生 net/http库 ,一步步抽象,修改结构,借鉴了Gin框架的部分实现,最后展现出一个初级的Web框架。需要基础:Go语言语法基础net/http
[工具]Vscode远程开发与远程调试 使用本地Vscode远程开发代码与远程调试文章目录使用本地Vscode远程开发代码与远程调试本地Vsode连接远程服务器Remote - SSH操作步骤Linux上适合Go开发的IDE补充本地Vscode调试远端进程(Go语言)需要条件操作步骤补充应用参考资料一直使用vscode写代码,也时常觉得vscode的设计挺符合微软的地位。简洁的界面,良好快捷方式,丰富的扩展是我使用vscode的原因。vscode基于三个产品构建:Chromium 、 Electron 、Monaco-editor。主要
Goroutine交替执行的相关问题与方法 多个Goroutine交替执行输出文章目录多个Goroutine交替执行输出两个协程交替打印1-100的奇偶数使用channel作为信号传递实现使用runtime让协程竞争CPU使用sync的锁竞争实现N个线程交替打印0-100没有严格的交替顺序的时候有严格交替顺序的时候channel实现线程池参考资料Go语言的协程goroutine在高并发方面具有优势,最简单的可以写一个简单的生产者消费者模型。func mode1() { rand.Seed(time.Now().UnixNano()) wg
Centos7上使用Kind搭建Kubernetes环境 Centos7上使用Kind搭建Kubernetes环境文章目录Centos7上使用Kind搭建Kubernetes环境安装Kind安装Kind在安装之前我们需要知道
Git原理与情景化【一】 Git原理与情境化Git前置知识文章目录Git原理与情境化Git前置知识Git的功能介绍提交过程文件存储方式将功能按层次分解来介绍初始化与工作目录初始化 git init配置与别名查看日志git stash工作目录到暂存区git statusgit addgit rm暂存区到本地仓库git commitgit tag本地仓库到远程仓库pull & push [起源地:目的地]git fetch管理git branchgit mergegit rebasegit remotegit diffgit
Golang实现经典排序算法【二】— 堆排序、归并排序、快速排序 Golang实现经典排序算法【二】实现堆排序、归并排序、快速排序文章目录Golang实现经典排序算法【二】堆排序归并排序递归版本迭代版本快速排序递归版本迭代版本补充heap在标准包的使用sort包中的快速排序实现堆排序首先构建大顶堆,然后交换堆顶,func main() { s := []int{1, 44, 4, 6, 74, 42, 346, 536, 453, 0, 0, 1, 1, 32, 3} fmt.Println(heapSort(s))}/*堆排序 大顶堆*/func h
Golang实现经典排序算法【一】—冒泡、选择、插入、希尔 使用Golang实现经典排序算法【一】实现冒泡排序、选择排序、插入排序、希尔排序。文章目录使用Golang实现经典排序算法【一】排序的基本概念冒泡排序简单选择排序直接插入排序希尔排序排序的基本概念排序的稳定性:分数名字10甲20乙10丁对上述表格按分数从小到大排序之后,甲还是在丁的上面,原排列位置不变,就说明排序是稳定的;反之,排序之后,丁出现在甲的上面,则说明排序是不稳定的。内排序与外排序内排序:是整个排序过程中,所有记录全部放在内存中;如:插入
使用选项模式设置Go语言函数的默认参数 Go语言使用选项模式设置函数的默认参数文章目录Go语言使用选项模式设置函数的默认参数Python与Go使用默认参数对比使用Python实现使用Go语言实现Go使用选项模式设置默认参数总结Python与Go使用默认参数对比在使用Go语言写函数时,不能像Python一样设置函数的默认参数,但是,不能设置默认参数让我们有时候处理起来特别麻烦,特别时有时候函数的参数想让使用者自己决定的时候,不禁感叹Python的方便。比如,我们实现一个对象——点奶茶:使用Python实现class Tea:
python处理字节流形式的视频 python处理内存中字节流形式的视频在使用python的streamlit库处理上传的文件时碰到一个问题,文件上传后是以字节数组的形式存在内存中,我在后续需要使用cv2库逐帧操作上传的视频,这里就产生一个问题,cv2怎么读取到内存中字节形式的视频?经过多次查找,发现可以使用ffmpeg从内存中将字节流解码,然后再由cv2处理。代码如下:import streamlit as st# streamlit中上传文件的函数@st.cache(allow_output_mutation=True,sh
Centos下使用脚本快速安装GO语言环境 Centos使用shell脚本快速安装go环境并安装spaceVim IDE脚本如下:#!/bin/bashenv_git_install(){ echo "安装依赖中" sudo yum -y install make autoconf automake cmake perl-CPAN libcurl-devel libtool gcc gcc-c++ glibc-headers zlib-devel git-lfs telnet ctags lrzsz jq expat-deve