自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 JVM面试题

堆又可以进一步细分为不同的区域,如年轻代(Young Generation)和老年代(Old Generation)。老年代(Old Generation): 存放生命周期较长的对象(如应用程序中的缓存、长期存活的业务对象)。Eden区的空间较小,当其空间不足时会触发Minor GC(小型垃圾回收),将不再使用的对象清理出内存。Survivor区通常分为两部分(S0和S1),用于对象在年轻代中的进一步筛选,直到进入老年代。垃圾回收:堆是垃圾回收(GC)的主要工作区域,通过回收无用对象释放内存。

2025-08-07 16:02:01 308

原创 Unity 数据读取Json文件解析(Newtonsoft.Json ,Litjson)

1. 前言JSON文件是一种纯文本文件,用于存储数据,并且是基于JavaScript的一个子集。JSON文件通常用于存储和传输数据,以及在应用程序之间交换信息。它们以键值对的形式存储数据,其中键是字符串,值可以是字符串、数字、布尔值、数组、对象或null。JSON文件通常具有.json扩展名,例如example.json。在JSON文件中,数据以层次结构的形式组织,可以表示嵌套的对象和数组。JSON文件通常用于存储配置信息、数据交换和持久化存储。

2025-07-31 17:01:56 747

原创 Kafka详解

Kafka传统定义: Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。发布/订阅:消息的发布者不会将消息直接发布给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息。Kafka最新定义:Kafka是一个开源的分布式事件流平台(Event Streaming Platform),被数千家公司用于高性能的数据管道、流分析、数据集成和关键任务应用。如果研发人员可以根据企业需求,自己重新实现分区器需求。

2025-07-29 12:01:27 718

原创 Zookeeper详解

Zookeeper是一个分布式的、高性能的、开源的分布式系统的协调(Coordination)服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的一个重要的组件。它是一个为分布式应用提供一致性服务的软件。zookeeper类似于文件系统,client可以创建节点,更新节点,删除节点,那么如何做到节点的权限的控制呢?zookeeper的access control list 访问控制列表可以自耦到这一点。

2025-07-29 12:00:05 1021

原创 redis详解

Redis 是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库*,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存可持久化的日志型,Key-Value数据库,并提供多种语言的API。BSD是"Berkeley Software Distribution"的缩写,意思是“伯克利软件发型版本”。BSD开源协议是一个给予使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件在发布。

2025-07-29 11:59:00 1085

原创 Kubernetes详解

传统部署:互联网早期,会直接将应用程序部署在物理机上优点:简单,不需要其它技术的参与缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境优点:程序环境不会相互产生影响,提供了一定程度的安全性缺点:增加了操作系统,浪费了部分资源容器化部署:与虚拟化类似,但是共享了操作系统优点:可以保证每个容器拥有自己的文件系统、CPU、内存、进程空间等。

2025-07-29 11:57:07 736

原创 k8s中YAML详解

command: ['sh'] #启动容器的运行命令,将覆盖容器中的Entrypoint,对应Dockefile中的ENTRYPOINT。cpu: 0.1 #CPU资源(核数),两种方式,浮点数或者是整数+m,0.1=100m,最少值为0.001核(1m)restartPolicy: Always #表明该容器一直运行,默认k8s的策略,在此容器退出后,会立即创建一个相同的容器。requests: #容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行。

2025-07-29 11:53:27 519

原创 kafka性能调优

内核参数调整:根据实际情况,调整操作系统的内核参数,如TCP连接数、内存页大小等,以优化网络和内存管理。连接数和线程数:根据集群规模和负载情况,调整Kafka服务器的连接数和线程池大小,以提高并发处理能力。启用数据压缩:使用Kafka提供的数据压缩功能,如gzip、snappy等,减少消息的存储和传输开销。合理的分区数量:根据业务需求和负载情况,选择合适的分区数量,以便实现负载均衡和并行处理。副本因子:确定合适的副本因子,即每个分区的副本数,以提高可用性和容错性。

2025-07-29 11:52:32 266

原创 jvm调优原理

年轻代(Young Generation)和老年代(Old Generation)的大小比例:通过调整年轻代和老年代的大小比例,可以减少垃圾回收的频率和停顿时间。线程池配置:对于使用线程池的应用程序,根据应用程序的特点和负载情况,合理配置线程池的大小、最大线程数、线程存活时间等参数。垃圾回收器参数调整:根据应用程序的负载和性能需求,调整垃圾回收器的参数,如年轻代和老年代的大小、垃圾回收的线程数等。垃圾回收器日志分析:通过分析垃圾回收器的日志,了解垃圾回收的行为和性能瓶颈,进而进行优化。

2025-07-29 11:52:00 307

原创 Helm详解

Helm是一个Kubernetes的包管理工具,就像Linux下的包管理器,如yum/apt等,可以很方便的将之前打包好的yaml文件部署到kubernetes上。一个命令行客户端工具,主要用于Kubernetes应用chart的创建、打包、发布和管理。应用描述,一系列用于描述 k8s 资源相关文件的集合。基于Chart的部署实体,一个 chart 被 Helm 运行后将会生成对应的一个 release;将在k8s中创建出真实运行的资源对象。

2025-07-29 11:49:49 1298

原创 git常用命令

Git服务程序中有一个叫做HEAD的版本指针,当用户申请还原数据时,其实就是将HEAD指针指向到某个特定的提交版本,但是因为Git是分布式版本控制系统,为了避免历史记录冲突,故使用了SHA‐1计算出十六进制的哈希字串来区分每个提交版本,另外默认的HEAD版本指针会指向到最近的一次提交版本记录,,注意恢复版本后代表的是在这个版本之前的内容全在(包括工作目录和暂存),本版本之后的都没了。#git reset --soft:回退到某个版本,仅移动当前Head指针,不会改变工作区和暂存区的内容。

2025-07-29 11:44:57 908

原创 ceph增加删除osd

要增加一个 OSD,要依次创建数据目录、把硬盘挂载到数据目录、把 OSD 加入集群、然后把它加入 CRUSH Map。Ceph 喜欢统一的硬件,与存储池无关。如果你要新增容量不一的硬盘驱动器,还需调整它们的权重。但是,为实现最佳性能,CRUSH 的分级结构最好按类型、容量来组织。创建 OSD。如果未指定 UUID, OSD 启动时会自动生成一个。下列命令会输出 OSD 号,后续步骤你会用到。如果指定了可选参数 {id} ,那么它将作为 OSD id。要注意,如果此数字已使用,此命令会出错。

2025-07-29 11:43:25 1144

原创 Jenkins Pipeline流水线详解

pipeline {agent anyoptions {timeout(time: 1, unit: 'HOURS') //超时时间1小时,如果不加unit参数默认为1分timestamps() //所有输出每行都会打印时间戳buildDiscarder(logRotator(numToKeepStr: '3')) //保留三个历史构建版本quietPeriod(10) //注意手动触发的构建不生效retry(3) //流水线失败后重试次数。

2025-07-29 11:37:54 934

原创 全局Ceph节点宕机处理

在极端情况下,如数据中心断电,造成 Ceph 存储集群全局宕机,可以按照本节所示流程进行 Ceph 集群上电恢复操作。

2024-03-07 20:01:45 980

原创 Prometheus配置consul服务发现

server :定义agent运行在server模式-bootstrap-expect :在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap共用-data-dir:提供一个目录用来存放agent的状态,所有的agent允许都需要该目录,该目录必须是稳定的,系统重启后都继续存在-node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名。

2024-03-07 19:51:08 2749

原创 Prometheus之精通

是一个基于指标监控和报警的工具栈。Prometheus 起源于 SoundCloud ,因为微服务迅速发展,导致实例数量以几何倍数递增,不得不考虑设计一个符合以下几个功能的监控系统:多维数据模型,可以按照实例,服务,端点和方法之类的维度随意对数据进行切片和切块。操作简单,可以随时随地部署监控服务,甚至在本地工作站上,而无需设置分布式存储后端或重新配置环境。可扩展的数据收集和分散的架构,以便于可以可靠的监控服务的许多实例,独立团队可以部署独立的监控服务。

2024-03-07 19:46:35 1716

原创 Dockerfile详解

镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是Dockerfile。Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。以nginx镜像为例,这次我们使用Dockerfile来定制。在一个空白目录中,建立一个文本文件,并命名为。

2024-03-07 19:34:24 1018

原创 RocketMQ详解

MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。RocketMQ是一个统一消息引擎、轻量级数据处理平台。RocketMQ是一款阿里巴巴开源的消息中间件。2016 年 11 月 28 日,阿里巴巴向 Apache 软件基金会捐赠RocketMQ,成为 Apache 孵化项目。

2024-03-07 19:18:17 1076

原创 kafka面试题

Kafka是分布式消息系统,需要处理海量的消息,Kafka的设计是把所有的消息都写入速度低容量大的硬盘,以此来换取更强的存储能力,但实际上,使用硬盘并没有带来过多的性能损失。、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。(1)节点必须维护和 ZooKeeper 的连接,Zookeeper 通过心跳机制检查每个节点的连接。•高并发:支持数千个客户端同时读写。

2024-03-07 19:15:53 931

原创 Helm应用包管理器

Helm是一个Kubernetes的包管理工具,就像Linux下的包管理器,如yum/apt等,可以很方便的将之前打包好的yaml文件部署到kubernetes上。一个命令行客户端工具,主要用于Kubernetes应用chart的创建、打包、发布和管理。应用描述,一系列用于描述 k8s 资源相关文件的集合。基于Chart的部署实体,一个 chart 被 Helm 运行后将会生成对应的一个 release;将在k8s中创建出真实运行的资源对象。在模板中用.Values可以获取到文件(或者--set。

2024-03-07 19:11:02 1244

原创 ceph 换盘扩容

1.初始化新的磁盘、OSD初始化,在deploy服务器上运行,vlan1的deploy服务器是192.168.215.89,# 指定目标机器及对应的块设备编号,如果更换的是旧盘,这一步操作有可能失败报错,此时最好用dd(或者分区工具)摧毁磁盘上残留的Raid或分区表信息,然后重新初始化尝试;1、停止需要剔除的 OSD 进程,让其他的 OSD 知道这个 OSD 不提供服务了。状态,这个一步是告诉 mon,这个 OSD 已经不能服务了,需要在其他的 OSD 上进行数据的均衡和恢复了。

2024-03-07 19:00:40 1456

原创 ceph 故障检测机制

可以看出,Ceph中可以通过伙伴OSD汇报失效节点和Monitor统计来自OSD的心跳两种方式发现OSD节点失效。回到在文章开头提到的一个合格的故障检测机制需要做到的几点,结合Ceph的实现方式来理解其设计思路。及时:伙伴OSD可以在秒级发现节点失效并汇报Monitor,并在几分钟内由Monitor将失效OSD下线。当然,由于Ceph对一致性的要求,这个过程中客户端写入会不可避免的被阻塞;适当的压力。

2024-03-07 18:58:20 1177

原创 ceph 心跳机制

Ceph通过伙伴OSD汇报失效节点和Monitor统计来自OSD的心跳两种方式判定OSD节点失效。伙伴OSD可以在秒级发现节点失效并汇报Monitor,并在几分钟内由Monitor将失效OSD下线。由于有伙伴OSD汇报机制,Monitor与OSD之间的心跳统计更像是一种保险措施,因此OSD向Monitor发送心跳的间隔可以长达600秒,Monitor的检测阈值也可以长达900秒。

2024-03-07 18:57:15 1457

原创 ceph PG和PGP区别

首先来一段英文关于PG和PGP区别的解释:​​​以上是来自邮件列表的 Karan Singh 的PG和PGP的相关解释,他也是 Learning Ceph 和 Ceph Cookbook的作者,以上的解释没有问题,我们来看下具体在集群里面具体作用。

2024-03-07 18:56:19 1243

原创 在Ubuntu20.04下基于ceph-deploy部署ceph 16.2.10

Ceph 是一个开源的分布式存储系统, 同时支持对象存储、 块设备、 文件系统。ceph 支持 EB(1EB=1,000,000,000GB)级别的数据存储, ceph 把每一个待管理的数据流(文件等数据)切分为一到多个固定大小(默认 4 兆)的对象数据, 并以其为原子单元(原子是构成元素的最小单元)完成数据的读写。

2024-03-07 18:54:54 1857

原创 问题: Could not index event to Elasticsearch. {:status=>400, :action=>[“index“, {:_id=>nil, :_index=>

elasticsearch7版本以上的,默认只允许1000个分片,因为集群分片数不足引起的。#elc(es用户):password(#es密码)下面命令给他扩容到10000 问题就解决了。解决:(永久性解决)

2024-03-07 18:46:44 1285

原创 gitlab数据迁移到gitaly集群

gitlab-rake gitlab:backup:restore BACKUP=1643891119_2022_02_03_13.12.7 #然后按照指示一步一步操作即可。gitlab-rake gitlab:backup:create #GitLab 12.1 及更早版本。当然你也可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录。把单节点的gitlab备份好的数据传输到集群的gitlab的备份目录。#如果是容器部署的gitlab执行如下命令。

2023-12-28 17:32:41 627 1

原创 Navicat连接postgresql时出现“ERROR: column datlastsysoid“ does not exist LINE 1: SELECT DISTINCT datlas“报错

方法二:关闭navicat,打开navicat安装目录,找到libcc.dll文件(先备份一份防止后面出问题方便还原),使用十六进制编辑器打开libcc.dll文件,推荐使用在线编辑器https://hexed.it/,打开编辑器后导入libcc.dll文件,ctrl+f 搜索"SELECT DISTINCT datlastsysoid",找到后将"datlastsysoid" 替换为"dattablespace",将文件另存为到初始位置,打开navicat,测试连接打开数据库,可以正常使用。

2023-12-27 10:22:05 4358 3

原创 openLDAP高可用部署

openldap

2023-12-11 16:15:30 558 1

原创 gitlab之Gitaly 集群搭建

gitlab集群 gitlab

2023-12-11 16:07:22 2530 1

原创 K8s kubectl 命令自动补全永久生效

使用yum需要先安装bash-completion这个包yum install bash-completion -y通过source生效source /usr/share/bash-completion/bash_completion通过source生效插件source <(kubectl completion bash)永久设置补全echo"source <(kubectl completion bash)">>~/.bashrc这...

2022-02-17 09:49:35 1167

原创 error: unable to upgrade connection: Forbidden (user=k8s-apiserver, verb=create, resource=nodes, sub

解决error: unable to upgrade connection: Forbidden (user=k8s-apiserver, verb=create, resource=nodes, sub查看角色kubectl getclusterrolebindings为 k8s-apiserver临时绑定一个 cluster-admin 的权限执行这个即可kubectl create clusterrolebinding k8s-apiserver --clusterrole...

2022-02-16 16:59:55 1629

原创 创建 Swarm 集群,集群通信,回滚

创建 Swarm 集群 本节将创建三节点的 swarm 集群。其中,swarm-manager(192.168.137.104) 是 manager node,swarm-worker1(vm1,192.168.137.105) 和 swarm-worker2(vm2, 192.168.137.106)是 worker node。所有节点的 Docker 版本均不低于 v1.12,操作系统为 centos7.4 1、在 swarm-manager 上执行如下命令创建 swarm [r

2021-07-15 17:26:26 380

原创 用Docker实现 overlay网络的

第一步在maste主机上安装dockerwget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo软件仓库地址替换为:sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo3、更新索引文件并...

2021-07-14 17:11:12 685

空空如也

空空如也

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

TA关注的人

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