3 可爱马莲花

尚未进行身份认证

暂无相关描述

等级
TA的排名 32w+

精通Dubbo——Dubbo支持的协议的详解

Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的。下面我们就针对Dubbo的每种协议详解讲解,以便我们在实际应用中能够正确取舍。dubbo协议缺省协议,使用基于mina1.1.7+hessian3.2.1的tbremoting交互。 连接个数:单连接 连接方式:长连接 ...

2018-12-29 10:44:10

Clickhouse集群应用、分片、复制

通常生产环境我们会用集群代替单机,主要是解决两个问题:效率 稳定如何提升效率?一个大大大任务,让一个人干需要一年,拆解一下让12个人同时干,可能只需要1个月。对于数据库来说,就是数据分片。如何提升稳定性?所谓稳定就是要保证服务时刻都能用,也常说高可用。这就像团队里必须有二把手,老大有事不在,老二要能顶上。对于数据库来说,就是数据备份。而集群是解决这两个问题的最佳手段。话说,三个臭皮...

2018-11-30 19:03:27

[Curator] Leader Election 的使用与分析

【转载】http://www.voidcn.com/article/p-ornzyvyy-bqr.htmlLeaderElectionCurator在选主方式上除了提供LeaderLatch,还有一个更为经典的方式:LeaderElection,一种基于选举而非抢占的选主方式。1.关键APIorg.apache.curator.framework.recipes.leade...

2018-11-20 20:27:29

[Curator] Path Cache 的使用与分析

PathCachePathCache其实就是用于对zk节点的监听。不论是子节点的新增、更新或者移除的时候,PathCache都能对子节点集合的状态和数据变化做出响应。1.关键APIorg.apache.curator.framework.recipes.cache.PathChildrenCacheorg.apache.curator.framework.recipes....

2018-11-20 20:24:25

ReentrantLock实现原理深入探究

前言这篇文章被归到Java基础分类中,其实真的一点都不基础。网上写ReentrantLock的使用、ReentrantLock和synchronized的区别的文章很多,研究ReentrantLock并且能讲清楚ReentrantLock的原理的文章很少,本文就来研究一下ReentrantLock的实现原理。研究ReentrantLock的实现原理需要比较好的Java基础以及阅读代码的能力,有...

2018-11-19 20:10:08

Java并发之AQS详解

一、概述  谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronized(AQS)!  类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。  以下是本文的目录大...

2018-11-19 20:08:33

Hadoop2源码分析-MapReduce v2架构

转载:http://www.cnblogs.com/smartloli/p/4434490.html1.概述  前面我们已经对Hadoop有了一个初步认识,接下来我们开始学习Hadoop的一些核心的功能,其中包含mapreduce,fs,hdfs,ipc,io,yarn,今天为大家分享的是mapreduce部分,其内容目录如下所示:MapReduceV1 MapReduceV2...

2018-10-17 13:56:33

Hadoop2源码分析-准备篇

1.概述  我们已经能够搭建一个高可用的Hadoop平台了,也熟悉并掌握了一个项目在Hadoop平台下的开发流程,基于Hadoop的一些套件我们也能够使用,并且能利用这些套件进行一些任务的开发。在Hadoop的应用级别上,我们接着往后面去研究学习,那就是Hadoop的源码了,作为Hadoop开发人员,我们得去学习和研究Hadoop得实现原理,底层框架的设计,编码的实现过程等等,下面就开始我们今...

2018-10-17 13:45:03

MapReduce的执行机制

当我们只用几行代码就可以运行一个MapReduce作业时,我们是否知道其实里面隐藏着大量的执行细节.本文就是来揭示一个Hadoop运行作业的执行细节.运行MapReduce作业的过程将包含以下四个实体1.客户端.提交hadoop作业2.分布式文件系统(一般为HDFS),3.JobTracker.协调作业的运行4.TaskTracker运行作业划分后的任务客户端提交作业:1....

2018-10-17 13:41:11

MapReduce剖析笔记之五:Map与Reduce任务分配过程

转载:https://www.cnblogs.com/esingchan/p/3940565.html在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程。中间留了一个问题,就是任务到底是怎么分配的。任务的分配自然是由JobTracker做出来的,具体来说,存在一个抽象类:TaskScheduler,主要负责分配任务,继承该类的有几个类:C...

2018-10-17 13:39:15

分布式任务编排调度框架设计

运维焦油坑随着互联网+和去IOE浪潮的推进,传统行业X86服务器的数量逐渐增多。服务器数量剧增带来的直接后果就是运维复杂度的增加。原本一个人可以轻松维护十几台甚至几十台服务器:写几个常用的监控和配置下发脚本、或者利用cronTab制作几个定时任务就可以搞定。当服务器的数量由几十上升到几百,几千时,量变就引起了质变;而且随着应用数量的增多,需要同时对多个应用进行快速高效的备份或者持续部署等非...

2018-09-18 16:53:18

elasticJob分片跑批

业务迅速发展带来了跑批数据量的急剧增加。单机处理跑批数据已不能满足需要,另考虑到企业处理数据的扩展能力,多机跑批势在必行。多机跑批是指将跑批任务分发到多台服务器上执行,多机跑批的前提是”数据分片”。elasticJob通过JobShardingStrategy支持分片跑批。跑批配置需要做如下修改: shardingTotalCount:作业分片总数。jobShardingStrateg...

2018-09-18 10:18:23

gRPC服务发现&负载均衡

构建高可用、高性能的通信服务,通常采用服务注册与发现、负载均衡和容错处理等机制实现。根据负载均衡实现所在的位置不同,通常可分为以下三种解决方案:1、集中式LB(ProxyModel)在服务消费者和服务提供者之间有一个独立的LB,通常是专门的硬件设备如F5,或者基于软件如LVS,HAproxy等实现。LB上有所有服务的地址映射表,通常由运维配置注册,当服务消费方调用某个目标服务时,它向LB发起...

2018-07-03 20:48:55

hive存储处理器(StorageHandlers)以及hive与hbase整合

此篇文章基于hive官方英文文档翻译,官方的英文地址为:1.https://cwiki.apache.org/confluence/display/Hive/StorageHandlers2.https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration 一 存储处理器介绍通过HIVE存储处理器,不但可以让hive基于hbase实...

2018-07-03 14:16:11

【git】初次运行 Git 前的配置

初次运行Git前的配置一般在新的系统上,我们都需要先配置下自己的Git工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,你随时可以用相同的命令修改已有的配置。Git提供了一个叫做 gitconfig 的工具(译注:实际是 git-config 命令,只不过可以通过 git 加一个名字来呼叫此命令。),专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决...

2018-06-29 10:25:19

redis源码解读总结(redis一致性哈希实现)

最近工作中一直在用redis进行缓存功能的实现,redis的源码虽然只有一万多行,但是确实值得研究一下,以下个人的一点研究和看法(本来打算用图表示,实在找不到一种好的画图工具来描述,因此就用文字描述了),希望能跟各位共勉之。一、1.构建JedisShardInfo列表List<JedisShardInfo>jedisShardInfoList,其中JedisShardInfo包含了服...

2018-05-29 20:01:14

【spring ioc源码学习】三、自定义配置文件读取

一、环境准备  在文件读取的时候,第9步我们发现spring会根据标签的namespace来选择读取方式,联想spring里提供的各种标签,比如<aop:xxx>等应该会有不同的读取和解析方式,这一章我们来找一个其他文件,了解下spring自定义标签和配置的读取流程。  手边正好有一套dubbo的源码,因此为了区别与spring的原生读取,就使用它来进行分析。  首先spring的配置...

2018-05-29 11:21:14

【spring ioc源码学习】二、配置文件读取

一、环境准备  对于学习源码来讲,拿到一大堆的代码,脑袋里肯定是嗡嗡的,所以从代码实例进行跟踪调试未尝不是一种好的办法,此处,我们准备了一个小例子:packagecom.zjl;publicclassPerson{privateStringname;publicStringgetName(){returnname;}...

2018-05-29 11:20:10

【spring ioc源码学习】一、IOC简介

一、程序实例  假设一个简单地实例,我们有一个人,人可能有姓名,年龄等属性,每天上下班的时候需要坐车,他可能做小轿车,suv等,这样一个场景。我们很容易想到如下代码:  1、人的对象类,包括两个属性,姓名和车packagecom.zjl.ioc;publicclassPerson{Stringname;Driveabledriveable;public...

2018-05-29 11:18:07

Spring InitializingBean init-method @PostConstruct 执行顺序

Spring容器中的Bean是有生命周期的,Spring允许在Bean在初始化完成后以及Bean销毁前执行特定的操作,常用的设定方式有以下三种: 通过实现InitializingBean/DisposableBean接口来定制初始化之后/销毁之前的操作方法;通过元素的init-method/destroy-method属性指定初始化之后/销毁之前调用的操作方法;在指定方法...

2018-05-28 15:17:11

查看更多

勋章 我的勋章
    暂无奖章