- 博客(94)
- 收藏
- 关注
原创 k8s下的发布策略详解
Kubernetes中三种常见的应用发布策略对比:金丝雀发布通过小范围测试(如25%流量)逐步验证新版本,适合核心系统升级;蓝绿发布维护两套环境实现瞬时切换,适合对中断敏感的关键业务;灰度发布可根据用户属性精准控制流量分配,适合用户体验敏感型应用。每种策略在K8s中都有对应的实现方式,如Deployment副本控制、Service选择器切换或Ingress注解配置,运维人员应根据业务场景选择合适方案。
2025-09-12 18:09:42
589
原创 Django的session机制
本文介绍了Django中的Session机制及其实现原理。首先对比了Cookie和Session的区别:Cookie在客户端存储信息,而Session在服务端记录用户状态。Django默认使用Session机制,通过中间件SessionMiddleware生成session对象,支持数据库、缓存、文件和Cookie四种存储方式。文章详细说明了Session的常用操作语法,并重点分析了Session的过期时间设置,包括全局配置选项和过期清理机制。
2025-09-11 16:12:34
507
原创 Django的基础概念与部署
Django是一个高效Python Web框架,遵循DRY原则,简化开发流程。其核心特点包括强大的ORM系统、自动管理后台、灵活URL路由、模板引擎和国际化支持。框架结构明确,包含URL路由(URLs.py)、视图(Views.py)、模型(Models.py)等模块。安装可通过pip或源码方式,创建项目后需配置数据库并运行开发服务器。Django适合快速构建安全、可维护的Web应用,使开发者能专注于业务逻辑而非底层实现。
2025-09-11 15:38:35
262
原创 python-线程池实现
摘要:线程池技术通过复用线程资源减少频繁创建销毁的开销,提升服务器性能。Python提供两种实现方式:ThreadPoolExecutor(简化线程管理,适合批量任务)和threading+Queue(灵活控制,适合复杂任务分发)。前者自动分配任务,后者需手动管理队列和线程。建议根据场景选择:简单任务用ThreadPoolExecutor,复杂场景用threading.Queue或两者结合。(148字)
2025-09-10 16:51:32
769
原创 python-threading.LOCK互斥锁
本文介绍了Python多线程编程中的线程安全问题及解决方法。当多个线程访问共享资源时会出现数据错乱,通过threading.Lock()互斥锁可以确保线程安全。文章展示了使用acquire()/release()方法和with语句两种加锁方式,并分析了死锁现象及其避免方法:按固定顺序获取锁、设置超时时间和减少锁持有范围。这些技术能有效保证多线程程序的正确性和可靠性。
2025-09-10 15:51:14
327
原创 python-线程池
Python多线程编程主要使用threading模块,相比thread模块更安全可靠。threading提供线程创建、同步和通信等功能,包含Thread类、锁机制(Lock/RLock)、条件变量(Condition/Event)等核心组件。通过Thread(target,args)创建线程后需调用start()启动而非run()。示例展示了创建3个线程执行函数并同步等待完成的过程。threading确保子线程退出后主进程才结束,是Python实现多线程的标准方案。
2025-09-09 18:13:23
597
原创 python-subprocess
Python的subprocess模块是执行外部命令的核心工具,提供进程创建、输入输出控制和返回码获取等功能。主要方法包括:subprocess.run()(Python3.5+推荐)用于简单场景,封装了常用功能;subprocess.Popen()则提供更灵活的底层控制,支持实时交互、管道通信等复杂操作。模块还提供异常处理、进程信号管理(terminate/kill)和多种封装函数(call/check_call/check_output)。使用时需注意shell参数的安全风险,以及管道通信可能导致的内存
2025-09-09 16:35:12
842
原创 容器-资源隔离机制
容器的隔离机制是实现 “轻量级虚拟化” 的核心,通过Linux 内核原生技术与容器运行时(如 docker、containerd)的封装,在共享宿主机内核的同时,为每个容器提供独立的资源、网络、文件系统等环境,避免容器间相互干扰。其本质是 “在同一内核中为进程组划定资源与权限边界”,而非像虚拟机那样完全隔离操作系统。
2025-09-08 23:27:40
1388
原创 kubernetes-lxcfs解决资源可见性问题
本文介绍了Docker/Kubernetes环境中容器进程默认显示宿主机资源视图的问题及其解决方案。当容器内应用查看系统资源时(如free、top命令),会显示宿主机而非容器的资源配额,导致JVM等应用错误配置内存、监控失效等问题。通过部署lxcfs工具可解决该问题。
2025-09-08 21:04:17
501
原创 zookeeper-集群扩缩容
Zookeeper运维指南:扩容缩容与故障处理 本文介绍了Zookeeper集群运维的关键操作步骤:1)扩容3.5版本前集群需修改各节点配置并重启;2)缩容只需下线节点并更新配置;3)故障替换分主机名和IP两种处理方式;4)3.5版本后支持通过动态配置文件实现在线重配置,无需重启服务。文章还提供了新旧版本配置示例,帮助运维人员掌握集群扩缩容和故障处理技能。
2025-08-27 19:29:37
300
原创 etcd-基本工作原理及部署
摘要: etcd是一个基于Raft协议的分布式键值存储系统,具有高可用和强一致性特点,广泛应用于Kubernetes等服务编排系统。其架构包含HTTPServer、Store、Raft和WAL四个核心模块,通过内存存储和预写日志(WAL)实现高效数据管理,配合快照机制防止数据过大。Raft算法确保集群一致性,读写请求分别由任意节点和Leader节点处理。部署时需配置三个节点,设置独立数据目录和集群参数,并通过etcdctl验证运行状态。etcd凭借其可靠的数据存储和故障恢复能力,成为分布式系统的关键组件。
2025-08-27 19:07:07
1073
原创 zookeeper-保姆级配置说明
摘要:ZooKeeper配置文件主要包含四类参数:1.基本配置(clientPort、dataDir、tickTime等);2.存储配置(preAllocSize、snapCount等);3.网络配置(maxClientCnxns、session超时等);4.集群配置(initLimit、server.x等)。其中tickTime是核心时间单位,影响心跳检测和超时判断;快照和日志配置影响性能与恢复;网络参数控制连接数和请求处理;集群配置则涉及选举、同步和节点角色。注意观察者节点、leader服务模式等特殊配
2025-08-26 18:39:56
351
原创 zookeeper原理-leader选举及请求处理
本文深入解析ZooKeeper的核心机制:Leader选举和请求处理流程。ZooKeeper集群包含Leader、Follower和Observer三种角色,其中Leader负责事务定序。选举采用投票机制,节点比较ZXID和myid,获多数票者当选,集群节点数建议为奇数以避免脑裂。请求处理方面,只读操作本地执行,写操作由Leader转化为事务并分配ZXID,确保原子性和顺序性。ZXID在选举时用于同步节点状态,保障集群一致性。文章还详细介绍了新建集群和运行中的选举流程。
2025-08-26 17:42:57
619
原创 zookeeper-znode解析
ZooKeeper采用类似文件系统的树形命名空间结构,每个节点(znode)存储数据并维护版本、时间等属性。znode分为四种类型:持久节点(永久存储)、临时节点(会话结束自动删除)及其有序版本(带自增序号)。关键特性包括:1)监视机制(watch)实现变更通知(单次触发需重复注册);2)数据原子性读写;3)版本控制(setData/delete操作需校验版本号)。每个变更会生成全局有序的zxid事务ID,节点状态记录创建/修改时间、子节点版本、数据长度等信息。这些特性使ZK适用于分布式协调服务场景。
2025-08-25 23:49:00
1026
原创 zookeeper基础概念及部署
ZooKeeper是一个分布式协调服务,基于ZAB协议实现,具有高可用和强一致性特性。它采用树形数据模型,节点分为持久/临时、顺序/非顺序四种类型,支持版本控制和Watcher事件通知机制。集群由Leader、Follower和Observer角色组成,通过奇数节点确保选举一致性。部署时需配置动态节点文件,指定各节点ID和通信端口。ZooKeeper广泛应用于分布式系统,提供配置管理、命名服务、分布式锁等功能。
2025-08-25 23:37:30
369
原创 consul-基础概念
Consul是一个基于Golang开发的开源服务网格解决方案,主要提供五大核心功能:服务发现、健康检查、状态监控、键值存储和多数据中心支持。其架构采用分布式设计,每个节点运行Agent,分为Server和Client两种模式。Server负责数据持久化和集群状态维护,建议每个数据中心部署3-5个Server节点以确保高可用性;Client则负责监控服务和转发请求。Consul支持跨数据中心服务调用,不同数据中心的故障不会相互影响。通过Leader选举机制和节点容错设计,Consul实现了高可靠的服务治理能力
2025-08-19 23:26:15
216
原创 redis-集成prometheus监控(k8s)
实现功能:如何在k8s中部署export并基于prometheus做es的指标采集,并绘制grafana dashboard看版
2025-08-18 21:01:55
426
原创 elasticsearch-集成prometheus监控(k8s)
如何实现:在k8s中部署export并基于prometheus做es的指标采集。并绘制监控看版
2025-08-18 20:48:07
488
原创 redis-保姆级配置详解
protected-mode yes #启用时,如果 Redis 没有绑定特定的 IP 地址(即通过 bind 参数指定),并且没有设置密码(通过 requirepass 参数设置),Redis 将只允许来自本地回环接口(127.0.0.1 和 ::1)的连接。maxmemory-policy noeviction #当 Redis 使用的内存达到或超过 maxmemory 限制时,Redis 会根据配置的内存淘汰策略来决定如何处理新的写入请求。从节点缓冲区超过 256MB 时立即断开。
2025-08-15 23:52:10
565
原创 redis-sentinel基础概念及部署
Redis Sentinel 是 redis 官方提供的高可用解决方案,主要用于监控 Redis 主从集群,在主节点故障时自动完成故障转移,确保服务持续可用。
2025-08-15 20:56:19
447
原创 elasticsearch冷热数据读写分离!
面对elasticsearch每天存储大量数据且存储时间很长的情况下,比较突出的一个问题是:非常大量的读IO及聚合计算时,很可能会导致后端Load升高,从而阻塞新数据的写入,影响效率。庆幸的是:es提供了一套冷热数据分离的机制。即:将冷数据与热数据通过node隔离;这样,写操作集中在 N 台热数据节点上,大范围的读操作集中在 M 台冷数据节点上。提升检索(消耗cpu及磁盘io)效率的同时,避免了堵塞影响。
2025-08-14 19:23:31
647
原创 nginx-集成prometheus监控(k8s)
本文介绍了Nginx监控的两种方案:1)官方nginx-exporter(社区版指标较少,plus版收费),适合基础监控;2)第三方nginx-vts-exporter,适合生产环境非plus版本。详细说明了两种方案的部署方式,包括Nginx配置、Exporter部署(支持Docker/K8s)以及Prometheus集成步骤。最后提到可通过开源Dashboard与Grafana集成可视化监控数据。
2025-08-14 18:33:28
396
原创 elasticsearch mapping和template解析(自动分词)!
摘要:本文介绍了使用ELK分析Nginx日志时遇到的URL路径分词问题及解决方案。
2025-08-13 23:26:54
1267
原创 elasticsearch基础概念与集群部署
Elasticsearch(ES)是一款基于Lucene的分布式开源搜索引擎,专注于实时全文检索和数据分析。本文介绍了ES的核心概念,包括文档、索引、分片、节点和集群,并详细说明了3节点集群的部署方法。部署步骤包括环境准备、用户配置、证书生成、配置文件修改及服务启动验证。文中还强调了禁用swap、使用SSD存储等性能优化建议。最后提供了运维专家的联系方式以方便技术交流。
2025-08-13 21:20:25
1042
原创 clickhouse基础概念及集群部署
ClickHouse是一款高性能列式存储数据库,专为海量数据实时分析而设计。其核心优势包括:列式存储显著提升查询效率(仅读取所需列)和压缩率;向量执行引擎实现并行处理;支持高吞吐实时写入;提供多种表引擎满足不同场景需求。原生支持分布式部署,适合日志分析、用户行为分析、业务监控和时序数据处理等场景。
2025-08-12 19:37:45
610
原创 nexus-集成prometheus监控指标
摘要:本文介绍了如何基于Prometheus对Nexus进行监控。Nexus自带metrics接口(/service/metrics/prometheus),通过授予nx-metrics-all权限并配置basic_auth后,Prometheus可采集三类指标:Component(核心组件运行状态)、Jetty(Web容器性能)、JVM(内存和GC情况)。文章简要说明了Prometheus配置步骤和Grafana看板绘制方法,为运维人员提供了Nexus监控的实用方案。
2025-08-12 17:32:29
275
原创 nacos集群部署
Nacos是阿里巴巴开源的微服务管理平台,集服务发现、配置管理和健康检查于一体。其核心功能包括:服务注册与发现、动态配置更新和服务健康监测。本文详细介绍了Nacos的集群部署方案,包括节点规划、MySQL数据库配置、环境依赖安装(JDK1.8+、Maven)以及集群配置文件修改等关键步骤,并提供了服务启动和状态检查方法。最后建议使用Nginx或云LB进行代理,为微服务架构提供高可用支持。
2025-08-11 15:02:34
444
原创 jenkins-提交gitlab代码自动触发构建
一套完善的CI/CD体系,在提高效率,便捷度方面,自动构建也是很重要的。这里通过jenkins实现。
2025-08-09 22:14:03
261
原创 kafka-关于ISR-概述
ISR 是指与 Leader 副本保持同步的 Follower 副本集合。ISR 机制的核心是确保数据在多个副本之间的一致性和可靠性,同时在 Leader 副本出现故障时能够快速进行故障转移,保证服务的可用性。
2025-02-27 21:46:22
1261
原创 kafka-web管理工具cmak
日常运维工作中,采用cli的方式进行kafka集群的管理,还是比较繁琐的(指令复杂?)。为方便管理,可以选择一些开源的webui工具。 推荐使用cmak。
2025-02-27 17:33:16
678
原创 kafka-leader -1问题解决
在 Kafka 中,leader -1 通常表示分区的领导者副本尚未被选举出来,或者在获取领导者信息时出现了问题。
2025-02-26 10:40:32
869
原创 kafka-集群缩容
一个 broker 下线,它上面的所有 partition 都会处于副本不足的状态,并且 Kafka 集群不会在其它的 broker 上生成这些副本,因此,在将一个 broker 从集群中移除之前,需要将这个 broker 上的 partition 副本都转移到最终会保留的 10 台机器上,怎么实现这个呢?在重分区过程中,很耗节点资源的(cpu,内存,IO),所以如果数据量大,需要按批次进行多次操作。可以看到 broker list,broker id 分别为 141,142,145,146 ....
2025-02-21 15:15:58
1093
AirSLAM是一种高效的视觉SLAM系统,旨在应对短期和长期的照明挑战 使用C++和NVIDIA TensorRT部署和加速特征检测和匹配网络
2024-12-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人