Kubernetes
参考资料
以下是文章的主要参考资料,非常感谢这些教程/博客/书籍的帮助。
尚硅谷Kubernetes教程(K8s入门到精通)
kubernetes 资源管理概述
kubernetes 权限管理
Helm Docs
Kubernetes in Action中文版
Kubernetes Documentation
如果我的文章中还引用了您的原创内容,请联系我添加出处,如果侵权请联系删除!
导航
一、介绍
二、集群搭建
三、Pod
四、资源控制器
五、服务
六、存储
七、有状态服务
八、运行原理
九、高级调度
十、API Server的访问控制
十一、计算资源管理
十二、Helm
友链朋友圈后端开发记录
项目介绍
项目地址:https://github.com/Rock-Candy-Tea/hexo-circle-of-friends
部署教程:文档 | 备用地址
本篇博客主要是友链朋友圈的后端开发记录,以及后续更新规划,如果您有好的想法,欢迎留言贡献。
开发进度
从2021年11月左右开始重构友链朋友圈项目,采用爬虫框架Scrapy来完成对旧版(3.x版本)项目的重构,也就是最初的4.0版本,该版本仅仅是做到了与旧版功能兼容,并未提供新的功能。随着各种issues的解决和新的idea不断地推动下,目前的朋友圈功能已经丰富了许多,相较于旧版(3.x版本)新增了如下功能:
增加了nexmoe、Yun、stun、stellar主题的友链和文章爬取
采用了feedparser解决了旧版本一直以来无法兼容rss订阅格式的问题
支持自定义定义后缀功能,完善对于不规则友链的适配
多个友链页面同时爬取
支持HTTP代理
新增了sqlite、mysql、mongodb三种数据库部署的支持
新增了服务器server部署和docker部署方式
将api集成到主仓库,并添加了众多与前端交互的api
屏蔽站 ...
Hexo搭建个人博客
Hexo搭建个人博客
1 介绍
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
如果你希望自己的博客自定义程度更高,并且愿意折腾的话,Hexo是不二选择。
2 安装
如果已经安装,请跳过本节。
Hexo自带中文文档,有能力可以直接按照官方文档操作。
官方网站
GitHub
这里按照官方安装步骤,简单介绍一下:
2.1 安装node.js和git
git下载
node.js下载
安装即可。不同平台安装方法请查阅各自的官方文档。
建议把它们添加到环境变量。
[可选项]cnpm
由于npm速度比较慢,可以使用淘宝npm镜像来代替下载。
123// 二选一即可npm install -g cnpm --registry=https://registry.npmmirror.comnpm install -g cnpm --registry=https://registry.npm.taobao.org
安装好之后,所有的npm命令可以使用cnpm代替。
2.2 安装Hexo
打开命令行输入
1n ...
Linux从入门到入土
Linux从入门到入土
前言:水平十分有限,仅仅是个人总结linux的入门知识,参考资料众多无法一一考证出处,如有侵权请联系删除!
并不能保证内容全部正确,请读者仔细甄别,如有错误欢迎批评指正。
一、绪论
1 什么是linux
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
今天各种场合都有使用各种Linux发行版,从嵌入式设备到超级电脑,并且在服务器领域确定了地位。开放源代码的Linux可以让知识延续下去,新兴的软件公司可以从开放源代码上快速、低价的创建专业能力,丰富市场的竞争,防止独霸软件巨兽的存在。个人使用很少有著作权问 ...
GO语言基础
GO语言基础
一、绪论
1 Go语言介绍
Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言。
Go是静态强类型语言,是区别于解析型语言的编译型语言(静态:类型固定 强类型:不同类型不允许直接运算)。
解析型语言——源代码是先翻译为中间代码,然后由解析器对代码进行解释执行。
编译型语言——源代码编译生成机器语言,然后由机器直接执行机器码即可执行。
2 Go语言特性
跨平台的编译型语言
交叉编译(在win平台可编译出mac平台的可执行文件)
语法接近C语言
管道(channel),切片(slice),并发(routine)
有垃圾回收的机制
支持面向对象和面向过程的编程模式
3 go适合做什么
服务端开发
分布式系统,微服务
网络编程
区块链开发
内存KV数据库,例如boltDB、levelDB
云平台
4 下载和安装
开发环境:
官网下载地址为:https://golang.org/dl/
如果打不开可以使用这个地址:https://golang.google.cn/dl/
IDE:
GoLand
vs ...
numpy快速入门
安装
1pip3 install numpy
numpy快速入门
数组是 NumPy 库的核心数据结构。创建数组的最简单方法之一是使用array函数。
1 创建数组
123456789import numpy as np x = np.array([[1,2,3],[2,3,4]]) print(x)"""输出:[[1 2 3][2 3 4]]"""
array函数可以在列表甚至嵌套列表上调用。 由于此处输入的嵌套级别是2,因此生成的数组是二维的。 这意味着可以使用两个整数集对数组进行索引。 计算数组维数的最简单方法是检查数组的ndim属性,也可以通过检查数组的shape属性,数组中的元素总数使用size查看:
123456789print(array.ndim)print(array.shape)print(array.size)"""输出:2(2, 3)6"""
创建初始值为0、为1、空值(随机值)的数组:
123456789101112array=np.zero ...
pandas快速入门
安装
1pip3 install pandas
pandas快速入门
1 pandas擅长处理哪些数据
在处理表格数据时,例如存储在电子表格或数据库中的数据,pandas是适合您的工具。pandas将帮助您探索、清理和处理数据。在pandas中,数据表称为DataFrame。
要加载pandas包并开始使用它,请导入该包。社区一致使用的pandas别名是pd,因此将pandas加载为pd是所有pandas文档的标准做法:
1import pandas as pd
2 创建DataFrame
下面是一个简单的示例:
1234567891011121314import pandas as pdmydataset = { 'sites': ["aaa", "bbb", "ccc"], 'number': [1, 2, 3]}myvar = pd.DataFrame(mydataset)print(myvar)"""输出: sites n ...
redis源码分析
redis源码分析
持续更新…
一、C语言基础
本节参考资料:
1、C Primer Plus(第6版)中文版
2、stdint.h
3、编译器特性 attribute_((packed))
redis基于C语言编写,因此在阅读之前,先对C语言的相关语法进行简单回顾。
1 变量
1.1 整型
整型一般使用int定义,它占用一个机器字长,现在一般的个人计算机使用32位(4字节)来储存一个整型的数据。
除此之外,还有其它的附属关键字来定义整型:
short或short int,它占用16位(2字节)存储一个整型数据。
long或long int,它占用32位(4字节)或64位(8字节),具体占用多少取决于什么样的操作系统。
long long或long long int,它占用64位(8字节)存储整型数据。
在上述关键字的基础上,使用unsigned可以定义无符号整型,如unsigned int、unsigned short等,它的占用和对应的关键字占用相同,但表示的范围不同(非负)。
1.2 字符型
字符型char实际上也是一个整型,它实际存储的是整数而不是字符。根据不同的字 ...
twisted快速入门
一、介绍
twisted是基于事件驱动的网络引擎框架,事件驱动编程是一种编程范式,这里程序的执行流由外部事件来决定。它的特点是包含一个事件循环,当外部事件发生时使用回调机制来触发相应的处理。
twisted支持许多常见的传输及应用层协议,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。
twisted的架构与单线程、多线程的对比如下:
和asyncio一样,twisted的编程模型可以在单线程下实现并发编程,即事件驱动版本的程序中,多个任务交错执行,但仍然在一个单独的线程控制中。当处理I/O或者其他耗时的操作时,注册一个回调到事件循环中,然后当I/O操作完成时继续执行。回调描述了该如何处理某个事件。事件循环轮询所有的事件,当事件到来时将它们分配给等待处理事件的回调函数。这种方式让程序尽可能的得以执行而不需要用到额外的线程。事件驱动型程序比多线程程序更容易推断出行为,因为程序员不需要关心线程安全问题。
二、反应堆reactor
1 hello world
12345678910from twisted.internet import reactor# ...
对于TCP的一次抓包分析
一、TCP基础
1 TCP介绍
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,它建立在IP层之上,用于解决可靠传输、有序传输等问题。
TCP包又称TCP报文段,报文段分为TCP首部和TCP数据两个部分。TCP首部最小为20B,最大为60B,如图:
其中:
源端口和目的端口字段:各占2B(2^16-1=65535,这是端口号的上限)
序列号字段:占4B,TCP是基于字节流的通信协议,在传输数据流时,要为每个字节编号。比如一个TCP报文的序列号字段为101,总共占100B,则代表这个TCP报文的最后一个字节序号为200,下一个TCP报文的起始序号字段就为201。
确认号字段:占4B,表示期望收到的另一个TCP报文的序列号,ack=seq+1(期望收到的下一个seq)。比如:我收到了一个TCP报文,其seq为301,长度为300B,此时我正确接收了301-600序号的数据,接下来期望收到seq为601的TCP报文,于是我把自己的ack置为601。
数据偏移:占4bit,它表示首部长度,即:TCP数据部分距离TCP整个报文的首部偏移量为多少,数据偏移以4B为单位,最小为(01 ...