江哥架构师笔记

路漫漫其修远兮
吾将上下而求索

按时间排序目录 第2页

k8s学习:根据 PID 获取容器所在的 Pod 名称

– 在管理 Kubernetes 集群的过程中,我们经常会遇到这样一种情况:在某台节点上发现某个进程资源占用量很高,却又不知道是哪个容器里的进程。有没有办法可以根据 PID 快速找到 Pod 名称呢? 假设现在有一个 java ...

算法学习:bfs+dfs

– 概念 深度优先搜索算法(Depth-First-Search),是搜索算法的一种。它沿着树的深度遍历树的节点,尽可能深的搜索树的分 支。堆栈实现,递归实现 广度优先搜索算法(Breadth-First-Search),是一种...

算法学习:快排

目录 快速排序的介绍 快速排序的Python实现 快速排序的介绍 快速排序(quick sort)的采用了分治的策略。 分治策略指的是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原...

mysql学习:锁

– 共享锁与排它锁 共享锁【S锁】 又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做...

redis学习:分布式锁实现

前言 本篇文章主要介绍基于Redis的分布式锁实现到底是怎么一回事,其中参考了许多大佬写的文章,算是对分布式锁做一个总结 分布式锁概览 在多线程的环境下,为了保证一个代码块在同一时间只能由一个线程访问,Java中我们一般可以使用synchr...

redis学习:缓存穿透,缓存击穿,缓存雪崩解决方案分析

前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数...

容器化落地中网络配置实践

1 为什么需要kube-proxy         我们知道容器的特点是快速创建、快速销毁,Kubernetes Pod和容器一样只具有临时的生命周期,一个Pod随时有可能被终止或者漂移,随着集群的状...

rabbitmq学习(5):Topic

相比fanout类型,基于direct类型的交换器实现的日志记录系统,可以让我们有选择的接收日志。而在其他的一些场景下,direct类型交换器仍然不能够满足人们日益增长的需求。比如:不仅需要对日志的级别进行过滤,还要对日志源进行过滤。 1....

rabbitmq学习(4):Routing

与fanout类型的交换器绑定了的队列,会收到所有经过该交换器的消息,即fanout类型的交换器会转发所有消息到与之绑定的队列中。那么,如果消费者应用程序只想接收经过交换器的一部分消息,该怎么办呢? 1.再谈绑定 前面的章节中,我们已经介绍...

rabbitmq学习(3):Publish/Subscribe

前一篇文章学习了工作队列,细心的你或许会发现:生产者生产的每一条特定的消息要么被消费者C1消费,要么被消费者C2消费。也就是说,一条消息只能被一个消费者消费。那么,多个消费者如何消费同一条消息呢? 1.fanout类型交换器 我们将“向多个...