自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ahojcn 的博客

有道无术,术尚可求;有术无道,止于术。[email protected]

  • 博客(124)
  • 资源 (4)
  • 收藏
  • 关注

原创 【Prometheus】PromQL

unless:vector1 和 vector2 进行 unless 操作,会产生一个新的集合,该集合首先取 vector1 集合的所有元素,然后排除掉所有 vector2 中存在的元素。例如:vector1 = [a, b, c], vector2 = [b, c, d] 那么 vector1 unless vector2 = [a]时间位移操作适用于区间向量,例如:查询一周之前的 5分钟之内的 cpu用户态使用率。:选择与提供的正则表达式相匹配的标签。:选择与提供的正则表达式不匹配的标签。

2024-03-10 23:05:32 991

原创 【Prometheus】DataModel

metric 包含 metric name 和 metric label例如:服务器 HTTP 接口 /messages 的总请求数。

2024-03-10 23:00:22 638

原创 【案例研习笔记】KodeRover_云时代 DevOps 建设

轻度量、轻流程、重开发者体验生产力工具建设要大于管理工具建设贴合自己业务,不要去求大求全

2024-02-20 23:02:24 151

原创 【Prometheus】二进制安装

查看状态开机自启。

2024-01-24 00:10:19 421 1

原创 《SRE Google 运维解密》笔记

borg 是 k8s 的前身。

2024-01-13 22:57:41 519

原创 【ML】分类问题

根据已知样本特征,判断输入样本属于哪种已知样本类。常用入门案例:垃圾邮件检测、图像分类、手写数字识别、考试通过预测。分类问题和回归问题的明显区别:分类问题的结果是非连续型标签,回归输出结果是连续型数值。

2023-11-03 22:31:30 839

原创 【ML】线性回归

以房价为例。

2023-11-02 22:13:47 238 1

原创 趣谈 Linux,系统初始化

从 8086 到 x86 的实模式和保护模式![image.png](https://img-blog.csdnimg.cn/img_convert/68aebfbaf8829a92c930aa009d2ba682.png#align=left&display=inline&height=444&margin=[object Object]&name=image.png&originHeight=592&originWidth=926&size=13

2021-08-01 22:06:35 295

原创 趣谈 Linux,基础篇

Linux 学习 6 步走:1、熟练使用 Linux 命令行《鸟哥的 Linux 私房菜》、《Linux 系统管理技术手册》2、使用 Linux 进程程序设计通过系统调用或者 glibc 库《UNIX 环境高级编程》3、了解 Linux 内核机制《深入理解 Linux 内核》内核版本有些老,但是了解原理可以4、阅读 Linux 内核代码《Linux 内核源代码情景分析》内核版本有些老一开始阅 读代码不要纠结一城一池的得失,不要每一行都一定要搞清楚它是干嘛的,而要聚焦于核心 逻辑和使用场景

2021-08-01 22:05:33 257

原创 SRE实战手册-基础篇

让体系发挥出力量,而不是某项技术的能力。ContentContent 稳定性保障体系 系统可用性 描述系统稳定性 时间维度 请求维度 选择合适的 SLI(指标) 设定系统稳定性 SLO(目标) 错误预算 稳定性保障体系稳定性保障规划图:MTBF,MeanTimeBetweenFailure,平均故障时间间隔,指示了系统正常运行的阶段。MTTR,MeanTimeToRepair,故障平均修复时间,意味着系统故障状态的阶段。...

2021-01-09 15:40:16 3530

转载 DNS服务器systemctl start named启动失败

systemctl restart namedJob for named.service failed because the control process exited with error code. See “systemctl status named.service” and “journalctl -xe” for details.命令:named-checkconf -z /etc/named.confzone linuxprobe.com/IN: NS ‘ns.linuxprobe

2020-11-22 21:10:04 13161 2

原创 【运维】使用docker搭建ansible学习环境

最近装了 Win10 + Ubuntu20.04 双系统,Win10 用来打游戏,Ubuntu 用来学习。/手动狗头环境:Ubuntu20.04 Linux Kernel 5.4.0-48-genericDocker Version 19.03.131、启动 2 个 centos7 镜像docker pull centos:7docker run -itd --name centos7-1 centos:7docker run -itd --name centos7-2 centos:7

2020-10-16 13:34:38 1191

原创 【Nginx】配置实例

反向代理实例 1实现效果打开浏览器,输入地址,跳转到 Linux 的 Tomcat 的主页面中。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EJ2SPnY3-1595072583222)(https://i.loli.net/2020/07/18/mcLFe9oyCOBHqkT.png)]准备工作安装 Tomcat,使用默认端口 8080。下载、解压、运行 /bin/startup.sh 即可。开放防火墙的 8080 端口,重启防火墙。验证完了 tomca

2020-07-18 19:44:19 368

原创 【Nginx】基础知识

title: 【Nginx】基础知识date: 2020-07-18 13:27:10tags:- Nginx- 运维安装安装 pcre下载解压./configuremake && make install更新依赖sudo yum install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel安装 nginx下载解压./configuremake && make in.

2020-07-18 19:42:53 300

原创 【读书笔记】网站伸缩性架构-永无止境

6、伸缩性-永无止境架构的伸缩性设计不同功能进行物理分离实现伸缩纵向分离(分层后分离)横向分离(业务分割后分离)单一功能通过集群规模实现伸缩当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车。应用服务器集群的伸缩性设计HTTP 重定向负载均衡根据请求,计算一个服务器地址,利用 HTTP 302 重定向到服务器地址。优点:比较简单。缺点:浏览器需要两次请求服务器才能完成一次访问,性能较差;重定向服务器自身的处理能力可能成为性能瓶颈;302 重定向可能被搜索

2020-06-09 21:08:26 265

原创 【读书笔记】高可用网站架构-万无一失

5、高可用-万无一失廉价的服务器硬件故障是常态,网站的高可用架构设计的主要目的就是保证服务器硬件故障时服务依然可用、数据依然保存并能够访问。实现上述高可用方案的主要数据和服务的手段是冗余备份和失效转移。应用层:应对高并发,负载均衡,心跳检测监控,不可用时候剔除。服务层:通过集群方式实现高可用,被应用层通过分布式调用框架访问,分布式调用框架会在客户端程序中实现软件负载均衡、心跳检测。数据层:同步复制,冗余备份。高可用的应用健身房小姐姐填表单的栗子。无状态性!!!可以直接通过负载均衡实现无状态服务的负

2020-06-09 21:05:52 212

原创 【读书笔记】高性能网站架构-瞬时响应

4、高性能-瞬时响应检查请求各个环节的诶之,分析哪个环节响应时间不合理、超出预期;检查监控数据,分析影响性能的主要因素是内存、磁盘、网络、还是 CPU,是代码问题还是架构设计不合理,或者系统资源确实不足。性能测试指标响应时间、并发数、吞吐量、性能计数器等。响应时间每个响应时间比较短不好测试,常用方法是重复请求很多次,求平均时间。并发数系统能够同时处理请求的数目,对于网站而言,指同时提交请求的用户数目。测试程序通过多线程/协成模拟并发用户的办法来测试系统的并发处理能力,为了真实的模拟用户行为,

2020-06-09 21:04:02 238

原创 【读书笔记】大型网站核心架构要素

大型网站核心架构要素性能浏览器端:浏览器缓存、页面压缩、合理页面布局、减少 Cookie 传出、CDN。应用服务器端:本地缓存、分布式缓存、异步操作、服务器集群。代码层面:多线程、改善内存管理等。数据库端:索引、缓存、SQL 优化等性能优化手段、NoSQL 优化数据模型、存储结构、伸缩性。可用性假设系统中任何一台或多台服务器宕机时,以及出现各种不可预期的问题时,系统整体依然保持可用。提高网站可用性的主要手段是冗余。1、对于应用服务器,多台服务器负载均衡,前提是应用服务器上不能保存请求的回话

2020-05-31 20:42:56 246

原创 【读书笔记】大型网站架构模式

2、大型网站架构模式每一个模式描述了一个在我们周围不断重复大声的问题以及问题解决方案的核心。分层将系统横向切分。分层结构在计算机中无处不在,网络的 ISO 7层分层,计算机硬件、操作系统、应用软件也是一种分层。网站系统中:应用层、服务层、数据层。分层架构的挑战:合理规划层次边界和接口。进制跨层次的调用(应用层直接调用数据层)和逆向调用(数据层调用服务层,或者服务层调用应用层)。分割将系统纵向切分。将每一层按模块进行分割,每个模块由不同的团队负责。分布式分布式应用和服务、分布式静态资源

2020-05-31 19:14:45 236

原创 【读书笔记】大型网站架构演化

1、大型网站架构演化网站架构设计的目标高可用、高性能、易扩展、可伸缩、安全。网站的价值在于它能为用户提供什么价值,在于网站能做什么,不在于网站怎么做的。不是所有的问题都可以通过技术来解决。有的时候调整业务也是很好的一种方式。技术是用来解决业务问题的,业务的问题也可以尝试通过业务的手段去解决。网站架构演化发展历程初始阶段应用服务和数据服务分离一台服务器逐渐不能满足需求,越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。将存储和应用服务器分开。缓存80% 的业务访

2020-05-31 18:10:28 290

原创 【缓存】缓存雪崩、缓存击穿、缓存穿透

缓存缓存雪崩就是缓存层里的数据同一个时间点失效,那么这些数据就会集中打向 MySQL。缓存击穿缓存里有一条数据,一条数据失效后也是穿过了 redis 打到了 MySQL。缓存击穿、缓存雪崩属于缓存穿透的一种特殊表现形式。缓存穿透描述当找 redis 找不到数据时候,就会出现缓存穿透。低频率的缓存穿透不可怕,正常现象。当高频率的穿透就影响大了。黑客攻击的场景,模拟很多客户端发送 id = -1 的请求。id = -1 在 redis 中找不到,穿过 redis 找到数据库,数据处理不过

2020-05-23 17:45:20 273

原创 【数据结构与算法】堆排序、堆化 heapify

文章目录基础知识关于堆的介绍已经一大堆了,这里主要总结下笔记 && 对比下这几个 O(nlogn) 的排序效率。基础知识大堆:堆顶元素大于左右孩子。小堆:堆顶元素小于左右孩子。...

2020-04-20 10:32:09 1006

原创 【计算机网络】超详细 TCP 协议笔记

文章目录报文格式可靠性确认应答 ACK超时重传连接管理三次握手四次挥手TIME_WAIT 状态CLOSE_WAIT 状态拥塞控制高性能滑动窗口流量控制延时应答捎带应答报文格式可靠性确认应答 ACK超时重传连接管理三次握手四次挥手TIME_WAIT 状态CLOSE_WAIT 状态拥塞控制高性能滑动窗口流量控制延时应答捎带应答EOF...

2020-04-16 15:17:35 3262 6

原创 【每日一题】二叉树的层序遍历2

题目:https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/class Solution {public: vector<vector<int>> levelOrderBottom(TreeNode* root) { vector<vector<in...

2020-04-14 22:47:51 297

原创 【每日一题】二叉树的层序遍历

题目:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/1、使用队列,BFSclass Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<...

2020-04-14 22:46:49 203 1

原创 【数据结构与算法】快速排序、随机基准值、双路快排、三路快排

在 https://visualgo.net/zh/sorting 的 QUI 标签中可以看到快排序动画演示。快速排序:平均时间复杂度:O(nlogn),最坏情况下 O(n^2)空间复杂度:O(1)基本思想:分治。找一个基准元素,以基准元素分解,左边是比基准元素小的,右边是比基准元素大的。这样就把一个待排序数组分成了左右两部分。对左、右分别进行上面的步骤。4 3 5 6 2 1...

2020-04-13 23:51:04 665

原创 【每日一题】二叉树的最大深度

题目:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/深度 = max(左, 右)1、递归class Solution {public: int maxDepth(TreeNode* root) { if (root == nullptr) return 0; if (roo...

2020-04-13 23:01:15 188

原创 【每日一题】对称二叉树

题目:https://leetcode-cn.com/problems/symmetric-tree左子树的左边孩子 == 右子树的右边孩子 && 左子树的右孩子 == 右子树的左孩子1、递归class Solution { bool __isSymmetric(TreeNode* left, TreeNode* right) { if (left =...

2020-04-13 22:59:03 158

原创 【数据结构与算法】归并排序

你可以在 https://visualgo.net/zh/sorting 的 MER 标签中看到归并排序的动画。归并排序:时间复杂度:O(nlogn)空间复杂度:O(n)基本思想:分治思想。8 6 2 3 1 5 7 4分:8 6 2 3 | 1 5 7 4分:8 6 | 2 3 | 1 5 | 7 4分:8 | 6 | 2 | 3 | 1 | 5 | 7 | 4并:8 | 6...

2020-04-13 18:22:27 187

原创 【每日一题】100.相同的树

题目:https://leetcode-cn.com/problems/same-tree/解法 1,递归很容易理解。class Solution {public: bool isSameTree(TreeNode* p, TreeNode* q) { if (p == nullptr && q == nullptr) return true; ...

2020-04-12 21:10:00 201

原创 【每日一题】83.删除排序链表中的重复元素

题目:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/解法 1和 26 题很像,使用类似的双指针法。class Solution {public: ListNode* deleteDuplicates(ListNode* head) { if (head == nullptr |...

2020-04-12 21:07:25 160

原创 【数据结构与算法】插入排序

插入排序:时间复杂度:O(n^2)空间复杂度:O(1)性能测试:用选择排序做对比。10k 个随机数字排序:插入排序 : 0.251472 s插入排序优化版 : 0.076234 s选择排序 : 0.114651 s10k 个接近有序数字排序:插入排序 : 0.007583 s插入排序...

2020-04-12 18:37:58 180

原创 【数据结构与算法】选择排序

选择排序:时间复杂度:O(n^2)空间复杂度:O(1)性能测试:和冒泡排序对比:10k 个随机数字排序:选择排序 : 0.109496 s冒泡排序优化版 : 0.432141 s10k 个接近有序数字排序:选择排序 : 0.112428 s冒泡排序优化版 : 0.018859 s基本思路:每...

2020-04-12 18:20:23 208

原创 【数据结构与算法】冒泡排序

冒泡排序:时间复杂度:O(n^2)空间复杂度:O(1)测试:10k 个随机数字排序:可以看到速度不分上下。冒泡排序 : 0.411331 s冒泡排序优化1 : 0.428745 s冒泡排序优化2 : 0.416507 s10k 个接近有序数字排序:可以看到优化版的是速度快了一些。冒泡排序 : 0.115256 s冒泡排序优化1 ...

2020-04-12 18:10:36 225

原创 【计算机网络】UDP 协议、UDP 编程、有连接的 UDP

文章目录基础知识报文格式UDP 编程基础知识UDP 输出 TCP/IP 协议分层中的传输层。UDP 是一个不可靠的通信协议,没有重传和确认,没有有序控制,也没有拥塞控制。UDP 不保证报文的有效传递,不保证报文的有序,也就是说使用 UDP 的时候,我们需要做好丢包、重传、报文组装等工作。UDP 比较简单,适合的场景还是比较多的,我们常见的 DNS 服务,SNMP 服务都是基于 UDP 协...

2020-04-11 22:29:50 435

原创 【每日一题】38.外观数列

题目:https://leetcode-cn.com/problems/count-and-say/解法1,递归40 ms 107.2 MBclass Solution {public: string s = "123"; string countAndSay(int n) { if (n == 1) { return "1"; ...

2020-04-07 23:37:01 148

原创 【每日一题】35.搜索插入位置

题目:https://leetcode-cn.com/problems/search-insert-position/解法1,暴力O(n) O(1)注意两个条件 a.当数组中没有元素的时候 b.最后一个元素也不比 target 大class Solution {public: int searchInsert(vector<int>& nums, int ta...

2020-04-07 23:33:16 368

原创 【计算机网络】手摸手带你写 UDP 回显程序、英译汉程序

文章目录基础铺垫UDP 协议UDP 网络回显程序服务端实现客户端实现实现说明封装 UDP socket实现测试基础铺垫首先来简单说几个问题。1、程序双击后发生了什么?程序双击后,程序会被操作系统装载入内存,包括程序的代码、数据等信息。然后从程序的入口开始执行。2、本机的不同程序间可以相互对话(通信)吗?当然是可以的,召唤师们经常用的 WeGame 和 LOL 是两个程序,当你在 WeG...

2020-04-07 16:37:07 714

原创 【每日一题】27.移除元素

leet-code 27. 移除元素 https://leetcode-cn.com/problems/remove-element/解法1 暴力C++ 实现要注意迭代器失效的问题!4 ms 6.3 MBclass Solution {public: int removeElement(vector<int>& nums, int val) { ...

2020-04-06 23:46:55 171

原创 【每日一题】实现 strStr()

leet-code,实现 strStr():https://leetcode-cn.com/problems/implement-strstr/解法1 双指针双指针 O(m + n)遍历 haystack 的每一个字符作为开头0 ms 6.9 MBclass Solution {public: int strStr(string haystack, string needle)...

2020-04-06 23:43:45 147

一键进制转换C语言代码

数据结构课程设计作业,实现进制转换功能。 输入一个数(任意进制)转换到其他进制输出。 https://github.com/ahojcn/Practice/tree/master/DataStructure/ClassDesign

2019-01-18

OJ系统蓝桥杯题库

OJ系统的蓝桥杯题库,http://oj.xpuca.top/,这里有这些题的栗子。

2018-12-03

C语言通讯录

C语言实现的多文件、多用户通讯录,增加了中英文切换选项,用户登陆注册等。

2018-12-03

蓝桥杯题库

蓝桥杯的题库,里面有一些经典的比赛例题,大家可以根据自己需要下载,学习。加油!

2018-10-28

空空如也

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

TA关注的人

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