- 博客(122)
- 收藏
- 关注
原创 Jumpserver到底是咋玩的
如果,比如开发申请一台新机器,管理员对于之前的Jumpserver里面怎么配置的不清晰。管理员刚入职一个月,之前的同事也没交代这个Jumpserver是怎么搞的。管理员想用新机器,新规则,搞一套全新的,这个应该怎么弄?这里看不到公钥,接下来需要拿到Jumpserver的公钥才能继续。
2025-12-15 17:49:29
222
原创 curl -v 对于运维来说,比f12可能更适合
hello@abc ~ % curl --help | grep -- -v-v, --verbose Make the operation more talkative
2025-12-01 22:50:44
211
原创 NG配置解释
本文总结了Nginx配置中的几个关键点:1) 文件路径识别不需要后缀名;2) location匹配规则,使用~启用正则表达式,~*表示不区分大小写;3) 重定向方法比较,推荐用try_files替代return或rewrite;4) proxy_pass指令用于反向代理,可指向自定义upstream集群;5) HTTP请求头是键值对集合;6) 状态码分类,4XX为客户端错误,5XX为服务器错误。这些要点涵盖了Nginx配置中路径处理、重定向和代理等核心功能。
2025-12-01 02:09:59
73
原创 kafka的工作原理
感觉最主要的道理就是,生产者不用管上一条发送的消息,有没有被消费者消费,只管自己往消息队列那里发就行了。这样就是一个不管一个,可以全力专心的干好自己的事,只要消息队列本身不挂就行。SDK software develop kit , 软件开发工具箱,通常包含了一个或者多个API,并对其进行了封装和增强,使其更加好用。不同的队列,称为分区,partition是分区,类似于电视上的不同的频道。先要订阅一个发布者的主题,才能消费这个发布者的消息。分区、partition对应的是硬盘上的不同目录。
2025-11-25 02:36:58
285
原创 Java学习笔记2
202511181Java是区分大小写的2创建Java程序前首先需要创建一个项目。项目类似于一个文件夹。用于包含Java程序以及所有的支持文件。只需要创建项目一次。3编辑面板输出面板4计算机是存储和处理数据的电子设备5计算机程序也称为软件。软件控制硬件。6计算机程序设计就是编写让计算机执行的指令即代码7机器语言是一套内嵌。
2025-11-19 10:08:06
202
原创 Java学习笔记1
31. 由于一个错误常常会显示很多行的编译错误,因此,从最上面的行开始向下纠正错误是一个很好的习惯。17. javac Welcome.java,这里面的javac是编译Welcome.java这个源文件的命令。24. 你的Java代码还可能要用到Java库中的代码,那么JVM将执行你的程序代码以及库中的代码。20. 字节码类似机器指令,但它是架构中立的,可以在任何带Java虚拟机(JVM)的平台上运行。4. JDK由一组独立程序构成,每个程序都是从命令行调用的,用于编译、运行和测试Java程序。
2025-11-18 07:46:50
375
原创 nacos是什么?
Nacos作为服务与配置中心,通过客户端集成方式实现应用程序的连接。应用启动时向Nacos注册自身地址(IP:Port),同时从Nacos获取其他服务地址和动态配置信息,实现服务发现与配置管理功能。
2025-11-08 08:07:49
200
原创 kubeadm部署k8s的master节点和node节点都需要什么
master节点部署,用kubeadm init,apiserver api服务器公告ip地址,service服务CIDR无类域间路由,计算节点部署,用kubeadm join。cri socket文件路径。需要master的token。和ca证书的hash哈希码,cri socket文件路径。master节点主机名,pod网络CIDR,
2025-11-05 22:05:25
341
原创 什么是ingress?
所以,ingress真正的实现方式,是定义一个kind为ingress的k8s的资源,这个资源里面说清楚一些规则,和ingress调用的类的名称,也就是ingressClassName,这个类实际调用的是ingress controller,这个ingress controller实际上是一个pod,里面运行的是nginx进程,这个进程也是从镜像里面读到的。而控制器,实际上是一个叫ingress-nginx-controller的pod。先从词语本身的翻译来说,In gress是向里面走的意思。
2025-11-02 00:50:33
263
原创 怎么配置一个kubectl客户端访问多个k8s集群
怎么配置一个kubectl客户端访问多个k8s集群为什么有的客户端用token也访问不了k8s集群因为有的是把kubeconfig文件改为了kubeconfig文件文件设置成隐藏文件了。按照kubectl的寻找配置的逻辑kubectl找不到要访问集群的用户名等信息就会报错没有登录等情况。
2025-04-24 21:06:52
700
原创 docker底层原理
docker底层原理在机器上安装docker服务器端的程序就会在机器上自动创建以下目录默认安装路径是varlibdocker服务器端的工作目录的作用如下镜像的每一层的元数据放在image目录下。镜像的每一层的物理存储数据也就是文件系统放在overlay2目录下docker客户端程序安装的时候会产生如下目录和文件主要是关于可以操作docker服务器的。
2025-04-19 17:08:54
592
原创 zookeeper基本概念和核心作用
场景:例如,当服务配置需要变更时,所有节点可实时从 ZooKeeper 拉取最新配置,避免手动更新的复杂性。功能:在分布式集群中选举一个 Leader 节点,协调集群操作(如 Kafka 的 Broker 选举)。场景:例如,服务注册与发现(如微服务中的服务实例管理)。场景:例如,当某个节点失效时,通知其他节点重新分配任务。
2025-04-05 15:56:07
773
原创 k8s的StorageClass存储类和pv、pvc、provisioner、物理存储的链路
【代码】k8s的StorageClass存储类和pv、pvc、provisioner、物理存储的链路。
2025-04-04 13:25:57
608
原创 什么是数据仓库
什么是数据仓库Datawarehouse是面向主题的主要根据各种数据来源来进行历史分析形成一个趋势分析为数据挖掘、预测建模、机器学习提供基础数据与传统数据库比如gaussdb的区别。数据仓库注重历史数据分析guassdb注重实时事务处理数据仓库时企业的战略级数据资产主要是用来做数据分析的整合了各种各样的数据源对业务数据和生产。
2025-04-04 00:01:30
336
原创 如何学习一门计算机技术
开发团队和设计团队对于产品的命名一般是有原因的,不是随便起的,就算是随便起的,也是有原因的。所以明白这些词语的取意,就比较容易理解这个技术架构的设计思想,一般取意于自然界。学习者对于技术方面的架构觉得不容易理解的时候,可能可以考虑从开发者给软件取名称的原因的角度考虑,大部分应该能和自然界的事物和语言联系起来。为什么会有这个东西。比如为什么会有C语言这门编程语言,为什么会有Python,它比在它之前的语言有什么优点,为什么有了别的语言,还会开发出Python解释器,来解释Python语法写出的代码。
2025-04-03 10:49:40
282
原创 git的作用,以及和github的区别
一般应该是,这个目录里面的数据经常改变的时候。而且你和他不想一起把这个文件夹越改越乱的话,两个人想法不一样,或者这个文件夹里面的东西,你是主要的开发者,别人是开源的参与者,那么你就可以不让别人修改主分支,但是可以拉一个新分支出去,就是fork,他在上面随便改,甚至也可以删掉,但是不影响你主分支的修改,如果他改的想合并到你的主分支上,就可以发一个pull request,就是请求你拉他的修改,把他修改的东西和你的分支进行一个合并。所以,git,github,分支都不是必要的,包括tag,看你需不需要而已。
2025-03-30 18:59:39
1519
原创 git在实践使用中的操作流程
拉最新代码,减少修改之后冲突的可能性,比如别人修改了同一个文件,你也修改这个文件,如果你没有git pull拉下来他最新的修改版本的话,不在他改过的基础上再去改的话,你从自己本地的仓库和工作区旧的版本的这个文件上改,等push的时候可能就会有冲突,如果先git pull了,在最新的文件上进行你的修改,再push的时候,冲突的可能性就减少了。3. git add 指定的文件,放到暂存区,或者git add . 所有修改了的数据,从工作区添加到暂存区./git/index和./git/object中。
2025-03-28 01:13:06
279
原创 图片解释git的底层工作原理
不同的分支是不同的指针指向不同的commit的持续变化。7. HEAD_4和branch_d也是同样的理论,区别是,这个commit_2打了一个TAG,这个TAG是给commit_2贴的一个标签,方便人类识别,可以通过这个TAG来访问这个commit_2,打TAG的目的是,在很多的commit中,每一个commit都是用哈希值代表的,人们在工作中,不容易通过hash值和当时commit的msg来确定这个commit是干嘛的,所以对于重要的commit,可以打一个或多个TAG来指定这个commit是干嘛的。
2025-03-28 01:02:20
868
原创 五个步骤,学习技术的小循环,可能还行
这些AI可以给学习者提供验证的命令,学习者自己可以打开Windows git软件,在一个test目录里面做实验,实验的结果就是问题的答案,如果有看源码的习惯,会对这个技术的底层设计和每一个细节的设计有更准确的理解,如果遇到这个技术的疑难问题,教程解决不了,AI不知道,实验也不知道从哪里做起,这个时候看源码,应该是最接近解决问题的方式,或者不一定解决,但是应该能知道问题出现在哪里,因为说白了,计算机相关的东西都是人设计的,使用者看懂设计者是怎么设计的,就知道大概情况了。
2025-03-23 11:36:43
375
原创 git的底层原理
git的每次commit都会产生一个校验和,这个校验和是通过SHA-1算法算的(Secure Hash Algorithm 1),SHA-1是一种加密散列函数,用于生成数据的唯一固定大小的哈希值。在Git中,这个哈希值用于标识对象(如commit、tree、blob等),保证了数据的完整性和版本的唯一性。这个值是唯一的,相当于保存了每一次提交的目录树结构和具体的文件的情况。如果要切换到这个状态,或者使用这个状态,用hash值作为索引就能找到这个快照。算出来的校验和长度越来越长,也越来越安全。
2025-03-22 13:08:04
637
原创 git_version_control_proper_practice
所以在v1.8.5之后不用再打tag,需要等到下个版本准备h-uat测试的时候,开始打v1.8.6-rc0,然后h-uat和压测环境测试的过程中,发生的修改,打v1.8.6-rc1、v1.8.6-rc2这样的tag,然后打包完成生产部署包之后,这个包已经发往生产环境之后,打一个v1.8.6 -a -m "official version for release v1.8.6"的tag。后面需要新环境部署这个版本的时候,可以checkout v1.8.5这个正式版的标签,来使用这个版本的部署仓。
2025-03-22 11:55:14
449
原创 python语法
(自己之前写的python文件的名称,不包含.py的后缀)聚合函数爱写谁写谁,但是非聚合函数中,GROUP。[模块 | 类 | 变量 | 函数 | *](空格、 换行\n、 制表符\t等)
2025-03-16 19:00:10
630
原创 python和devops
改变了的用计算一个新的sha-1值,用指针指向这个对象,同时又有一个目录树的状态对应着每次commit。python的报错,要看最下面一行,最下面一行应该是原始的错误所在行,但是捕获错误可以从最高层捕获。git的存储机制有点类似于copy on write技术,给每一个对象计算一个sha-1值,readlines()读取文件的全部内容,会把读取到的内容赋值给一个列表变量。read()读取文件的全部内容,会把读取到的内容赋给一个字符串变量。网页就是一个文件,是一个在网上的文件。可以把一个图片下载到本地。
2025-03-16 12:25:02
362
原创 开发还是运维?
你会说,特斯拉就不投广告,那么厉害,是的,就跟有的特工,特种兵就是那么厉害,什么都会,什么都很厉害,就像各行各业基本都有一些人非常非常厉害。这个时候可能就有人要抬杠了,玩游戏从来不买皮肤,什么零充,好像还挺引以为傲的,如果是这样,对于端游,可能也会去网吧玩,对于手游,可能不想一直用运行速度低的手机,想换手机,有的是不去网吧,也不换手机,就用旧手机,但是旧手机也是手机,总不能用小灵通打网络游戏,不去网吧,也不买皮肤,在自己住的地方用自己的电脑玩游戏,自己的电脑如果是很旧的,也不太能玩,掉帧严重,搞不了。
2025-03-15 11:25:00
930
原创 操作系统基础历史等
把操作系统看作向应用程序提供基本抽象的概念,是一种自顶向下的观点。从这个角度看,操作系统的任务是在相互竞争的程序之间有序地控制对处理器、存储器以及其他IO接口设备的分配。栈stack是一种特殊的线性表,像烤串、弹夹、碟子,物理存在为内存的一片区域,stack是一种数据结构。控制卡片有$JOB $LOAD $RUN $END,还有一个$FORTRAN卡片,这些基本的控制卡片是现代shell和命令解释器的先驱。操作系统的一个主要任务是隐藏硬件,呈现给程序(以及程序员)良好、清晰、优雅、一致的抽象。
2025-03-15 10:39:10
209
原创 现代操作系统一点点
把操作系统看作向应用程序提供基本抽象的概念,是一种自顶向下的观点。从这个角度看,操作系统的任务是在相互竞争的程序之间有序地控制对处理器、存储器以及其他IO接口设备的分配。user–>operation system–>设备驱动程序(device driver)–>设备控制器(是插在电路板上的一块芯片或一组芯片)–>设备本身(设备本身有个相对简单的接口,这个接口已经被标准化了,SATA就是其中一种接口)栈stack是一种特殊的线性表,像烤串、弹夹、碟子,物理存在为内存的一片区域,stack是一种数据结构。
2025-01-27 22:00:05
909
原创 数据库底层存储的基本逻辑
linux只能够的swap是利用了虚拟内存机制中页面可以在内存和磁盘之间移动的特性实现的。HDD中是sector扇区和cluster簇的概念,不存在类似于SSD中的“页”的概念。block 是由多个storage page页组成,是SSD中最小的擦除单位。在SSD固态硬盘中,block块是由多个storage page页组成。一个数据库可以分散存储在多个磁盘上,一个磁盘也可以包含多个数据库。一个表空间可以分散到多个磁盘上,一个磁盘上也可以有多个表空间;1. 数据库、表空间、磁盘是多对多的关系。
2025-01-25 11:18:18
271
原创 RH442关于操作系统的一点基础
写Python不涉及内存分配,写C语言涉及栈内存是系统分的,堆内存是程序员自己去分,C语言的程序员写到系统级程序的时候,很多内存得自己去分,自己分完了之后,还得回收。也就是内存跑了,内存被某些进程占用之后不释放,就一点一点没有了,这个程序每跑一次,内存就被占用了一点,而且不释放,这样一点一点,久而久之内存就漏完了,系统崩溃。脏内存释放不了,在内存里面改了,但是还没有写到硬盘上的数据,叫脏数据,这一部分数据占用的内存,叫脏内存。内存泄漏一般发生在动态请求内存之后,函数结束之后,堆内存没有释放。
2025-01-15 20:58:01
237
原创 来说数据库
这个stored,是一个形容词,所以形容词不是关键,关键是它形容了什么,所以关键是procedure这个词,这个词是过程的名词形式,也就是说,整个的意思是存储了的过程。然后把这些常用的步骤封装起来,就是一个叫过程的东西了,就是procedure,那么stored procedure就是系统弄好的,整理好的,DBMS数据库管理系统安装的时候,开发者们都写好的,放在这个数据库管理系统里面的一些功能,这些功能就是存储好的过程,所以非常熟练之后,叫存储过程,那么专业人士和专业人士的对话就显得是高效的。
2025-01-07 23:55:33
618
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅