进阶学习-zk、dubbo、kafka、k8s、docker
学习记录专用
陈汤姆
一只叫做汤姆的程序员
展开
-
Apache Druid初识
角色OverloadOverload是MiddleManager的master节点,负责索引任务管理MiddleManager索引节点。负责处理索引任务(数据导入)将数据转换为列式存储,负责实时segement的查询。CoodinatorCoodinator是Historical的master节点,负责负载混哼,确保Segement在历史节点之间尽量均衡。Historical历史节点,负责将Segemt加载到本地,负责历史Segement的查询Broker查询节点,负责接受Client查原创 2020-11-18 18:28:20 · 370 阅读 · 0 评论 -
Elasticsearch的分布式存储与分片内部原理
1、文档如何存储1.1、分片与路由当索引一个文档的时候,文档会被存储到一个主分片中。 Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?当我们创建文档时,它如何决定这个文档应当被存储在分片 1 还是分片 2 中呢?首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了。实际上,这个过程是根据下面这个公式决定的shard = hash(routing) % number_of_primary_shardsrouting 是一个可变值,默认是文档的 _id ,也可以原创 2020-11-06 16:34:20 · 976 阅读 · 0 评论 -
《后端知识体系系列》之分布式系统中的CAP理论
最近看了分布式是相关知识,所以边看边总结吧!分布式系统的特点随着互联网技术的发展,产生的数据量越来越大,对系统的要求更高,这就要求系统需要支持高并发和海量数据处理。分布式系统技术就是用来解决集中式架构的性能瓶颈问题。以上图为例,系统中实现了登录、订单、支付模块,这些模块都只通过一个系统来承载,那么当大量的请求过来时,这个系统就会存在一定的性能问题,就是所谓的集中式架构的性能瓶颈。分布式系统的核心是可扩展性,通过对服务、存储的扩展,来提高系统的处理能力,通过对多台服务器协同工作,来完成单台服务.原创 2020-08-16 21:14:47 · 399 阅读 · 0 评论 -
《深入理解Java虚拟机》一书总结(干货满满)
看完《深入理解Java虚拟机》一书,做了一些简单总结,其中复杂的部分自己也没有搞懂,所以就不发表任何总结!1、概念1.1、首先说何为Java虚拟机?Java虚拟机从字面意思直接理解就是运行Java的虚拟机器,既然是虚拟的,那么就是从物理层面来说是不存在于实际的一个机器,它不像电脑这种机器,是实际存在的,而是人们想象的一个机器,因为它能像机器一样做机器可以做的事情。1.2、为什么要使用Java虚拟机我们都知道Java语言是一种高级语言,我们可以从Java语言的特性中进行分析,Java特性包括面向.原创 2020-08-13 22:47:02 · 434 阅读 · 0 评论 -
《Java后端知识体系》之理解Restful架构
知之为知之,不知为不知,是知也!Restful架构一、什么是Restful来自百度百科RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。二、起源REST全程是Representational State Transfer的缩写,翻译过来就是表现层状态转换(摘自),如果一个应用程序应用了该架构,那.原创 2020-07-26 22:37:21 · 250 阅读 · 0 评论 -
ZAB协议的四个阶段
ZAB协议的四个阶段1、选举阶段节点在一开始都处于选举阶段,只要有一个节点得到超过半数节点的票数,那么它就可以当选准Leader,只有到达第三阶段(同步阶段)这个准Leader才会成为真正的Leader。Zookeeper规定所有有效投票都必须在一个轮次中,每个服务器在开始新一轮的投票时,都会对自己维护的logicalClock进行自增操作。每个服务器广播自己的选票前,都会将自己的投票箱(recvset)清空。该投票箱记录所收到的选票。这一阶段的目的就是为了选出一个准Leader,然后进入下一阶段转载 2020-06-27 22:21:02 · 840 阅读 · 0 评论 -
zookeeper中的ZAB协议
zookeeper总结文章内容来源于以下文章集群角色Leader:同一时间集群总只允许有一个Leader,提供对客户端的读写功能,负责讲数据同步至哥哥节点Follower:提供对客户端读功能,写请求则转发给Leader处理,当Leader崩溃失联后参与Leader选举Observer:与Follower不同的是不参与Leader选举服务状态LOOKING:集群中没有Leader时的状态,此状态下可以选举LeaderFOLLOWER:follower角色的状态LEADER:leader角色的转载 2020-06-25 22:33:35 · 201 阅读 · 0 评论 -
RPC框架的超时实现原理(Dubbo实现原理)
本片内容转载自:原文章1、超时原理以Dubbo为例进行超时设置时,可以在provider和consumer设置超时时间,如果服务端(provider)设置了超时时间,那么消费端(consumer)就不需要设置超时时间了,因为可以通过注册中心传递给消费端,这样一方面简化了配置,另一方面服务端更清楚自己的接口性能,将超时时间交给服务端自己管理也合理。dubbo支持非常细粒度的超时设置,包括:方法级别、接口级别和全局。如果各个级别同时配置了,优先级为:消费端方法级 > 服务端方法级 > 消转载 2020-05-28 11:06:08 · 1584 阅读 · 0 评论 -
从源码分析@EnableDubbo的作用
前言:最近研究Zookeeper以及Dubbo,在使用Dubbo时有配置文件以及注解的两种方式,为了图方便使用了注解的方式,但是爆出了空指针的问题,分析才发现自己没有加@EnableDubbo注解,于是想研究下@EnableDubbo是如何实现配置文件功能的。从源码分析@EnableDubbo的作用1. 查看@EnableDubbo/** * Enables Dubbo compon...原创 2020-05-05 15:58:42 · 3238 阅读 · 0 评论 -
学习进阶之Zookeeper学习
理解zookeeper?在一个系统中,多个服务可能都会请求一个资源,多个服务同时请求时可能存在脏数据的问题,为了避免这种问题我们需要对多个服务进行上锁,可以通过调度算法来规范服务之间的请求次序。这样其中一个服务请求时,其它服务就等待。在单个系统中可以直接这样实现,但是对于分布式系统不一样。在分布式系统中通过网络连接多个服务,多个服务同时去请求一个资源,那么就需要特定的角色来管理服务的请求次序,...原创 2020-04-26 22:30:48 · 181 阅读 · 0 评论