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

Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的。下面我们就针对Dubbo的每种协议详解讲解,以便我们在实际应用中能够正确取舍。 dubbo协议 缺省协议,使用基于mina1.1...

2018-12-29 10:44:10

阅读数 30

评论数 0

Clickhouse集群应用、分片、复制

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

2018-11-30 19:03:27

阅读数 154

评论数 0

[Curator] Leader Election 的使用与分析

【转载】http://www.voidcn.com/article/p-ornzyvyy-bqr.html Leader Election Curator在选主方式上除了提供Leader Latch,还有一个更为经典的方式:Leader Election,一种基于选举而非抢占的选主方式。 1...

2018-11-20 20:27:29

阅读数 153

评论数 0

[Curator] Path Cache 的使用与分析

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

2018-11-20 20:24:25

阅读数 144

评论数 0

ReentrantLock实现原理深入探究

前言 这篇文章被归到Java基础分类中,其实真的一点都不基础。网上写ReentrantLock的使用、ReentrantLock和synchronized的区别的文章很多,研究ReentrantLock并且能讲清楚ReentrantLock的原理的文章很少,本文就来研究一下ReentrantLo...

2018-11-19 20:10:08

阅读数 45

评论数 0

Java并发之AQS详解

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

2018-11-19 20:08:33

阅读数 36

评论数 0

Hadoop2源码分析-MapReduce v2架构

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

2018-10-17 13:56:33

阅读数 114

评论数 0

Hadoop2源码分析-准备篇

1.概述   我们已经能够搭建一个高可用的Hadoop平台了,也熟悉并掌握了一个项目在Hadoop平台下的开发流程,基于Hadoop的一些套件我们也能够使用,并且能利用这些套件进行一些任务的开发。在Hadoop的应用级别上,我们接着往后面去研究学习,那就是Hadoop的源码了,作为Hadoop开...

2018-10-17 13:45:03

阅读数 30

评论数 0

MapReduce的执行机制

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

2018-10-17 13:41:11

阅读数 37

评论数 0

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

转载:https://www.cnblogs.com/esingchan/p/3940565.html 在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程。中间留了一个问题,就是任务到底是怎么分配的。任务的分配自然是由JobTracker做出来...

2018-10-17 13:39:15

阅读数 41

评论数 0

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

运维焦油坑 随着互联网+和去IOE浪潮的推进,传统行业X86服务器的数量逐渐增多。服务器数量剧增带来的直接后果就是运维复杂度的增加。原本一个人可以轻松维护十几台甚至几十台服务器:写几个常用的监控和配置下发脚本、或者利用cronTab制作几个定时任务就可以搞定。当服务器的数量由几十上升到几百,...

2018-09-18 16:53:18

阅读数 326

评论数 0

elasticJob分片跑批

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

2018-09-18 10:18:23

阅读数 1121

评论数 0

gRPC服务发现&负载均衡

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

2018-07-03 20:48:55

阅读数 231

评论数 0

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

此篇文章基于hive官方英文文档翻译,官方的英文地址为:1.https://cwiki.apache.org/confluence/display/Hive/StorageHandlers2.https://cwiki.apache.org/confluence/display/Hive/HBas...

2018-07-03 14:16:11

阅读数 489

评论数 0

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

初次运行 Git 前的配置一般在新的系统上,我们都需要先配置下自己的 Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,你随时可以用相同的命令修改已有的配置。Git 提供了一个叫做 git config 的工具(译注:实际是 git-config 命令,只不过可以通...

2018-06-29 10:25:19

阅读数 146

评论数 0

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

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

2018-05-29 20:01:14

阅读数 231

评论数 0

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

一、环境准备  在文件读取的时候,第9步我们发现spring会根据标签的namespace来选择读取方式,联想spring里提供的各种标签,比如<aop:xxx>等应该会有不同的读取和解析方式,这一章我们来找一个其他文件,了解下spring自定义标签和配...

2018-05-29 11:21:14

阅读数 78

评论数 0

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

一、环境准备  对于学习源码来讲,拿到一大堆的代码,脑袋里肯定是嗡嗡的,所以从代码实例进行跟踪调试未尝不是一种好的办法,此处,我们准备了一个小例子:package com.zjl; public class Person { private String name; publi...

2018-05-29 11:20:10

阅读数 51

评论数 0

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

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

2018-05-29 11:18:07

阅读数 64

评论数 0

Spring InitializingBean init-method @PostConstruct 执行顺序

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

2018-05-28 15:17:11

阅读数 577

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭