小破站,记录和学习
图灵机与冯诺依曼模型 图灵机与冯诺依曼模型
图灵机是─种抽象的机器,一种抽象的计算模型。由数学家阿兰·图灵提出来的,尽管这个机器很简单,但它可以模拟计算机的任何算法,无论这个算法有多复杂。 当今的计算机都是图灵机的实现,要想知道程序执行的原理,我们可以先从「图灵机」的工作原理说起,图
2022-05-04
线程间的通信 线程间的通信
在Java中线程之间通信一般使用共享变量的方式,用同步锁来实现。在Golang中不推荐使用共享变量的方式,而是更多使用管道来实现信息同步。本文总结一下在Java中线程间通信的方式 要实现线程间通信的模型有两种:共享内存和消息传递,以下方式
2022-05-02
详细解读Raft共识算法 详细解读Raft共识算法
业界最著名的一致性算法就是大名鼎鼎的Paxos(Chubby的作者曾说过:世上只有一种一致性算法,就是Paxos)。但Paxos是出了名的难懂,而Raft正是为了探索一种更易于理解的一致性算法而产生的。Raft是分布式环境下的一致性算法,它
2022-05-01
布隆过滤器详解 布隆过滤器详解
布隆过滤器在wiki上的介绍: 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般
2022-04-17
关于Kubernetes 关于Kubernetes
虽然 Docker已经很强大了,但是在实际使用上还是有诸多不便,比如集群管理、资源调度、文件管理等等。那么在这样一个百花齐放的容器时代涌现出了很多解决方案,比如 Mesos、Swarm、Kubernetes 等等,其中谷歌开源的 Kuber
2022-04-16
云计算与虚拟化随笔 云计算与虚拟化随笔
对于微服务技术栈我比较熟悉的是Spring Cloud,最近公司在各应用升级到K8S部署。虽然对Docker与K8S我有所了解,但是一直没有深入的使用过。任何框架或者中间件的登场和消亡都有其历史原因,从历史角度会对各技术的演变有更深刻的理解
2022-04-10
Spring的循环依赖与三级缓存 Spring的循环依赖与三级缓存
我们都知道Spring通过三级缓存来解决循环依赖的问题,那么是不是必须是三级缓存?二级缓存不能解决吗?先说一下什么是循环依赖,Spring在初始化A的时候需要注入B,而初始化B的时候需要注入A,在Spring启动后这2个Bean都要被初始化
2022-04-05
时间轮算法 时间轮算法
时间轮算法在很多开源的中间件被广泛应用, Redisson 分布式锁中使用时间轮算法实现看门狗,来为锁续时。另一个场景是使用时间轮算法来实现心跳续时,在使用长连接的时候,我们通常需要使用心跳机制来防止意外断开的无效连接浪费系统资源。心跳机制
2022-04-05
分布式锁的设计 分布式锁的设计
分布式锁的实现有多种方式,但是不管怎样,设计分布式锁一般要满足以下条件: 互斥性:任意时刻,只能有一个客户端获取锁,不能同时有两个客户端获取到锁。 安全性:锁只能被持有该锁的客户端删除,不能由其它客户端删除。 避免死锁:分布式锁一定能得到
2022-04-03
中台架构之DDD领域驱动 中台架构之DDD领域驱动
DDD,全称Domain-Driven Design, 是一种处理复杂领域的设计思想,它试图分离技术实现的复杂性,并围绕业务概念构建领域模型来控制业务的复杂性,以解决软件难以理解,难以演进的问题。它通过边界划分将复杂业务领域简单化,帮我们设
2022-03-27
2 / 6