
分布式系统设计
文章平均质量分 78
分布式系统设计
闫同学鸭
让旷野天空放一片晴
展开
-
浅谈分布式共识算法概念与演进
分布式共识中达成共识的手段几乎都是投票机制,使用投票机制的主要原因是为了在多个节点之间达成一致的决定,可以有效帮助算法在分布式环境中解决冲突和分歧,确保所有节点都能够达成共识。原创 2023-08-26 22:49:31 · 530 阅读 · 6 评论 -
分布式锁:不同实现方式实践测评
Hello读者朋友们,今天打算分享一篇测评实践类的文章,用优雅的代码与真实的数据来讲述在分布式场景下,不同方式实现的分布式锁,分别探究每一种方式的性能情况与最终的优劣分析。原创 2022-11-26 19:41:35 · 732 阅读 · 16 评论 -
玩转gRPC—深入概念与原理
本篇文章属于一篇知识的捡漏和复盘类的文章,主要目的就是为了复盘一下gRPC的相关概念,并剖析其原理。原创 2022-07-04 20:22:30 · 1340 阅读 · 10 评论 -
一文带你搞懂HTTP和RPC协议的异同
1 什么是RPC协议1.1 简介这是老生常谈的协议了,RPC即远程过程调用(Remote Procedure Call),RPC协议是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。1.2 原理及模型RPC协议广泛的应用于分布式系统中,主要用于不同计算机(即服务节点)间的通信,RPC主要是基于Socket,而Socket又基于TCP,因此我们可以理解为RPC基于TCP协议(部分RPC框架基于HTTP协议),在TCP的基础上增加了编程语言的机制,比如反射、编码与解码、以及动态原创 2022-05-08 20:27:51 · 5800 阅读 · 0 评论 -
分布式系统设计之常见的负载均衡算法
分布式系统设计之常见的负载均衡算法0 什么是负载均衡?负载均衡(Load Balance),其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,从而协同完成工作任务。负载均衡都分为哪些种类?软件和硬件负载均衡软件负载均衡硬件负载均衡本地和全局负载均衡本地负载均衡全局负载均衡本篇文章的负载均衡算法是属于软件层面的负载均衡。1 轮询顾名思义,将子任务在子节点中一个接一个有序的询问请求。var list = make([]string, 0)var原创 2022-01-30 21:30:36 · 1409 阅读 · 0 评论 -
分布式系统设计之共识算法—2PC、3PC、 Paxos
分布式共识协议有什么作用?共识问题分布式计算中最基本的概念之一,是让分布式系统中的一组节点就某事达成一致的问题的一个价值、一个行动方案或一个决定。达成共识允许分布式系统充当单个实体,每个单独的节点都知道并同意整个网络的行为。例如,共识的一些可能用途是:分布式事务处理分布式不同节点间同步时钟决定分布式算法的下一阶段(这是著名的复制状态机方法)选举一个领导节点来协调一些更高级别的协议Google Chubby Service的发明者 Mike Burrows 说“只有一种共识协议,那就是 Pa原创 2022-01-23 14:42:14 · 1928 阅读 · 4 评论 -
玩转Elasticsearch—Go整合ES7.16.2
下载依赖:go get -u github.com/olivere/elastic/v7Init.gopackage mainimport ( "context" "fmt" "github.com/olivere/elastic/v7" "log")var ctx = context.Background()var Url = "http://127.0.0.1:9200"var esClient *elastic.Clientvar index = "原创 2022-01-22 19:16:24 · 2382 阅读 · 0 评论 -
初探Apollo远程服务配置中心
Apollo远程配置中心官方文档:https://www.apolloconfig.com/#/zh/README1 简介Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。Apollo支持4个维度管理Key-Value格式的配置:application (应用)environment (环境)cluster (集群)name原创 2021-12-02 13:44:26 · 979 阅读 · 0 评论 -
浅谈Redis实现分布式锁
1 回顾下单机JVM锁1.1 为什么要引入锁?因为,线程是进程的一个实体,同一进程下的多个线程可以进行资源的共享,多个线程共享一个资源时则会进行资源的竞争进而引发线程异常。无锁模式下资源不同步的体现:代码:public class Test1 { Ticket ticket = new Ticket(); private void sellTest() { ThreadPoolExecutor executor = new ThreadPoolExecutor(原创 2021-10-31 15:45:17 · 430 阅读 · 2 评论 -
分布式系统设计理论之一致性哈希
分布式系统设计理论之一致性哈希主要参考和围绕这篇论文讲解:Consistent Hashing1 问题引入什么是一致性哈希?为什么要用一致性哈希?2 一致性哈希算法出现之前的分布式系统设计例如系统需要构建分布式缓存,多个节点分别部署而形成的一个分布式集群,当有请求到来时进行负载均衡,具体的负载均衡方式就是将节点的ID(唯一标识)进行哈希值的取余运算,得到结果的机器就是进行请求处理的机器。上述方式存在的问题:当一个节点进行更换(增加或删除节点)时,原有的节点消失或增加新的节点,会导致多个请求原创 2021-10-16 20:06:07 · 299 阅读 · 0 评论 -
翻译翻译,什么是CAP
翻译翻译,什么是CAP1 CAP定理CAP,是一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)三个英文单字首字母的缩写,是分布式系统设计中应用最为广泛的技术理论之一,代表着分布式系统设计中三个最重要的实现瓶颈,而且CAP三者中只能选择其中两种进行实现,这两种一般是CP和AP,具体细节,请看下文分解:2 翻译翻译什么是一致性、可用性、分区容错性2.1 一致性(Consistency)概念:指分布式系统的各个子节点的数据在同一时原创 2021-10-04 07:55:36 · 1317 阅读 · 0 评论 -
Zookeeper实现分布式服务配置中心
1 Linux安装并启动Zookeeper1.1 安装下载链接:https://archive.apache.org/dist/zookeeper/1.1.1 安装[root@iZ1608aqb7ntn9Z tmp]# lsapache-zookeeper-3.5.7-bin.tar.gz hsperfdata_root[root@iZ1608aqb7ntn9Z tmp]# tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz apache-zookeepe原创 2021-08-22 09:31:34 · 330 阅读 · 2 评论 -
Spring Boot + Dubbo + Zookpeer分布式案例
整体架构:下载链接:Doubbo:https://github.com/apache/dubboZookeeper:https://downloads.apache.org/zookeeper/Doubbo-admin:https://github.com/apache/dubbo-admin1 首先安装Zookpeer[root@bogon tmp]# lsapache-zookeeper-3.7.0-bin.tar.gz jdk1.8.0_141 jdk8.tar.gz[root@原创 2021-08-07 13:01:25 · 285 阅读 · 2 评论