自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

赶路人儿

改变世界的是这么一群人,他们寻找梦想中的乐园,当发现找不到时,就亲手创造了她...

  • 博客(37)
  • 资源 (57)
  • 收藏
  • 关注

转载 activemq中持久订阅者和非持久订阅者区别

1、消息的传输类型:上文已经讲过,activemq支持两只传输的模式:持久化和非持久化。可以通过MessageProducer 类的 setDeliveryMode方法设置传输模式:MessageProducer producer = ...;producer.setDeliveryMode(DeliveryMode.PERSISTENT);持久传输和非持久传输最大的区别是:采用持久

2017-12-29 19:53:18 5595 1

转载 mysql之 double write 浅析

介绍double write之前我们有必要了解partial page write 问题 :     InnoDB 的Page Size一般是16KB,其数据校验也是针对这16KB来计算的,将数据写入到磁盘是以Page为单位进行操作的。而计算机硬件和操作系统,在极端情况下(比如断电)往往并不能保证这一操作的原子性,16K的数据,写入4K 时,发生了系统断电/os crash ,只有一部分写是成

2017-12-29 19:13:33 894

原创 ActiveMQ Message Persistence

1、JMS规范支持两种类型的消息传递:persistent and non-persistent。ActiveMQ支持这两种类型的传递方式;persistent 好处: 1)消息对消费者总是可用; 2)系统宕机后,消息不被丢失。2、ActiveMQ可将消息存储在三种类型介质中:file-based(存储在文件中)、in-memory(存储在内存中)、relational databas

2017-12-29 19:09:08 1384

原创 JMS基本概念

1、面向消息的中间件:Message-oriented middleware (MOM)——面向消息的中间件主要就是为了降低各个应用程序之间的耦合,引入MOM好处有:1)可以做到 不必要求发送者和接收者同时“在线”(actived)才能进行消息通信。发送者只管把消息发给MOM,然后可以“离开”,接收者可以在随后任何时间去取(取决于何种通信模式)即,发送者不需要知道接收者的存在,且可进行

2017-12-29 16:47:59 473

转载 JMS学习(八)-ActiveMQ Consumer 使用 push 还是 pull 获取消息

ActiveMQ是一个消息中间件,对于消费者而言有两种方式从消息中间件获取消息:①Push方式:由消息中间件主动地将消息推送给消费者;②Pull方式:由消费者主动向消息中间件拉取消息。看一段官网对Push方式的解释:采用Push方式,可以尽可能快地将消息发送给消费者(stream messages to consumers as fast as possible)而

2017-12-29 14:30:58 1220

转载 Maven生成可以直接运行的jar包的多种方式

Maven可以使用mvn package指令对项目进行打包生成jar文件,如果直接使用java -jar xxx.jar指令运行jar文件,会出现”no main manifest attribute, in xxx.jar”(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等错误。要想jar包能直接通过java -jar xxx.jar运行,需要满足:

2017-12-27 09:43:37 668

转载 Hive读取Flume正在写入的HDFS

Hive的表创建为外部分区表,例如: USE mydb;CREATE EXTERNAL TABLE mytable( c1 String, c2 INT, c3 INT, create_time String)PARTITIONED BY (dt STRING)ROW FORMAT DELIMITED FIELDS TERMINATED

2017-12-25 17:30:24 1898

原创 java对象池commons-pool-1.6详解(三)

前面讲述了不带key的对象池,本文重点介绍另一种对象池——带key的,这种对象池在实际应用中更加广泛。例如:我们在rpc的系统中,需要对rpc对象进行池化提升其效率,但在实际环境中我们通常考虑ha,会对一个rpc服务在不同服务器上部署多个,这种情况下如果使用普通的对象池就会把所有服务器上部署的rcp服务对象放到一个池子中,不利于负载均衡,使用带有key的对象池可以很好做到负载均衡和池化对象。一

2017-12-24 13:08:29 1669

原创 java对象池commons-pool-1.6详解(二)

上篇文章 我们详细介绍了commons-pool-1.6 java对象池的原理和基本概念,本文详细介绍不带key的对象池(ObjectPool)具体使用。1、重点接口介绍:在Apache-commons-pool-1.6中,定义了三个顶级接口:ObjectPool、ObjectPoolFactory、PoolableObjectFactory;其中ObjectPool和ObjectPo

2017-12-23 19:29:58 1311

原创 java对象池commons-pool-1.6详解(一)

对象的创建和销毁在一定程度上会消耗系统的资源,虽然jvm的性能在近几年已经得到了很大的提高,对于多数对象来说,没有必要利用对象池技术来进行对象的创建和管理。但是对于有些对象来说,其创建的代价还是比较昂贵的,比如线程、tcp连接、rpc连接、数据库连接等对象,因此对象池技术还是有其存在的意义。Apache-commons-pool-1.6提供的对象池主要有两种:一种是带Key的对象池,这种带

2017-12-23 17:14:39 21688 2

原创 命令模式

1、基本概念:      在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)。     将来自客户端的请求传入一个对象

2017-12-23 16:45:11 334

转载 Retry重试机制

1、业务场景       应用中需要实现一个功能: 需要将数据上传到远程存储服务,同时在返回处理成功情况下做其他操作。这个功能不复杂,分为两个步骤:第一步调用远程的Rest服务逻辑包装给处理方法返回处理结果;第二步拿到第一步结果或者捕捉异常,如果出现错误或异常实现重试上传逻辑,否则继续逻辑操作。2、常规解决方案演化1)try-catch-redo简单重试模式:包装正常上传逻辑基

2017-12-21 19:19:04 3232

转载 几种简单的负载均衡算法及其Java代码实现

什么是负载均衡负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题

2017-12-21 19:13:30 374

转载 Spring-retry 1.1.4重试功能

在实际项目中,经常需要在某种情况下对调用的方法进行重试,例如超时重试。通过Spring-retry能简化重试功能的实现,并实现更多样的重试操作。Spring-retry提供的RetryOperations接口,定义如下:public interface RetryOperations { T execute(RetryCallback retryCallback) throw

2017-12-21 16:00:39 1196

原创 thrift服务化改造原理分析

上面文章(http://blog.csdn.net/liuxiao723846/article/details/78846007)介绍了一个thrift的服务框架,本文介绍如何使用,以及背后的一些原理。将上文中的项目打包成jar,引入到一个工程中,然后通过spring的配置方式模拟一个服务端和客户端。一、thrift model:用来定义thrift的消息和服务,然后通过maven命令

2017-12-19 19:57:42 563

转载 thrift服务化改造——注册、发现

系统服务化过程中会面临很多问题:服务注册、服务发现、服务降级、故障转移、负载均衡、流量控制等。本文介绍一种以thrift、zookeeper等技术实现的一套服务化框架,主要包含一下几点:1)利用zookeeper,实现服务端注册、客户端自动发现;(由于原生zookeeper的api比较负责,这里用了一个zk的框架curator)2)客户端对远程server的连接进行池化技术(使用java的

2017-12-19 18:58:01 5459

原创 分布式系统架构演进

技术为业务而生,随着业务不断的壮大,系统会遇到各种各样的瓶颈,为了解决这些瓶颈问题,催生了不同的架构。下面,我讲解一下一般大型分布式系统的架构演进。上图是阿里技术演进图,绝大多数系统基本上会按照这个流程发展。1、单体应用(all in one):以Java来说,可能只是一两个war包就解决了;这时的用户量、数据量规模都比较小,这样的架构既简单实用、便于维护,成本又低,成为了这个

2017-12-19 18:32:21 481

转载 使用FactoryBean自定义实例化逻辑

Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean,这两种Bean都被容器管理,但工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该FactoryBean的getObject方法所返回的对象。在Spring框架内部,有很多地方有FactoryBean的实现类,它们在很多应用如(Spring的AOP、ORM、事务管理)及

2017-12-18 17:43:58 1079

原创 spring依赖注入引发的一点思考

java中bean 分为普通的java bean和spring的bean两种。1)通过spring的配置文件或者注解,在进程启动时由spring对其初始化、并最终最终放到spring容器中,这就是spring的bean,否则就是java  bean。2)如果是spring的bean,那么在代码中直接getbean("beanname")使用即可;如果是普通的java bean 使用时直接

2017-12-18 15:11:17 383

转载 HDFS NameNode内存全景

一、概述从整个HDFS系统架构上看,NameNode是其中最重要、最复杂也是最容易出现问题的地方,而且一旦NameNode出现故障,整个Hadoop集群就将处于不可服务的状态,同时随着数据规模和集群规模地持续增长,很多小量级时被隐藏的问题逐渐暴露出来。所以,从更高层次掌握NameNode的内部结构和运行机制尤其重要。除特别说明外,本文基于社区版本Hadoop-2.4.1[1][2],虽然2

2017-12-13 17:15:59 321

转载 HDFS NameNode内存详解

前言《HDFS NameNode内存全景》中,我们从NameNode内部数据结构的视角,对它的内存全景及几个关键数据结构进行了简单解读,并结合实际场景介绍了NameNode可能遇到的问题,还有业界进行横向扩展方面的多种可借鉴解决方案。事实上,对NameNode实施横向扩展前,会面临常驻内存随数据规模持续增长的情况,为此需要经历不断调整NameNode内存的堆空间大小的过程,期间会遇

2017-12-13 17:06:21 851

转载 HDFS NameNode重启优化

一、背景在Hadoop集群整个生命周期里,由于调整参数、Patch、升级等多种场景需要频繁操作NameNode重启,不论采用何种架构,重启期间集群整体存在可用性和可靠性的风险,所以优化NameNode重启非常关键。本文基于Hadoop-2.x和HA with QJM社区架构和系统设计(如图1所示),通过梳理NameNode重启流程,并在此基础上,阐述对NameNode重启优化实

2017-12-13 09:54:48 655

转载 Hadoop 2.0 NameNode HA和Federation实践

一、为什么需要HA和Federation:1. 单点故障在Hadoop 2.0之前,也有若干技术试图解决单点故障的问题,我们在这里做个简短的总结:Secondary NameNode。它不是HA,它只是阶段性的合并edits和fsimage,以缩短集群启动的时间。当NameNode(以下简称NN)失效的时候,Secondary NN并无法立刻提供服务,Secondary

2017-12-12 18:57:32 463

转载 HDFS Federation设计动机与基本原理

HDFS Federation是Hadoop最新发布版本Hadoop-0.23.0中为解决HDFS单点故障而提出的namenode水平扩展方案。该方案允许HDFS创建多个namespace以提高集群的扩展性和隔离性。本篇文章主要介绍了HDFS Federation的设计动机和基本原理。(个人认为federation不是解决ha的,只是用来解决nn水平扩展的)1. 当前HDFS概况1.1 当前...

2017-12-12 18:25:20 614

转载 Hadoop NameNode 高可用 (High Availability) 实现解析

在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode 的单点问题尤为严重。因为 NameNode 保存了整个 HDFS 的元数据信息,一旦 NameNode 挂掉,整个 HDFS 就无法访问,同时 Hadoop 生态系统中依赖于 HDFS 的各个组件,包括 MapReduce、Hive、Pi

2017-12-11 18:33:01 365

原创 yean体系架构介绍

YARN是Hadoop 2.0的资源管理器。它是一个通用的资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。1、从Hadoop0.23版本开始对于mapduce计算框架进行升级,引入了YARN。老的版本MRv1存在诸多问题,和YARN对比如下:1) MRv1中Jobtracker中存在单点问题,功能比较多的问题,负责资源

2017-12-11 15:26:21 824

转载 Hive分区修复命令MSCK介绍与使用

我们在使用Hive的时候肯定遇到过建立了一张分区表,然后手动(比如使用 cp 或者 mv )将分区数据拷贝到刚刚新建的表作为数据初始化的手段;但是对于分区表我们需要在hive里面手动将刚刚初始化的数据分区加入到hive里面,这样才能供我们查询使用,我们一般会想到使用 alter table add partition 命令手动添加分区,但是如果初始化的分区太多,这样一条一条地手动添加分区不免过于麻

2017-12-07 11:38:52 2778

转载 hive报错:Execution failed with exit status: 3

在hive上执行了一个join的sql,运行时报如下错误:2016-07-06 05:35:32 Processing rows: 1400000 Hashtable size: 1399999 Memory usage: 203699304 percentage: 0.3962016-07-06 05:35:32 Processing

2017-12-07 11:33:07 1417

转载 hive mapjoin 使用 和个人理解

1、遇到一个hive的问题,如下hive sql:select t1.a,t1.b from table t1 join table2 t2  on ( t1.a=t2.a and t1.datecol=20110802)该语句中B表有30亿行记录,t1表只有100行记录,而且t2表中数据倾斜特别严重,有一个key上有15亿行记录,在运行过程中特别的慢,而且在reduece的过程中遇有内存

2017-12-07 11:12:43 7741

原创 elasticsearch-java api之搜索(三)

前两篇文章介绍了es的简单查询、聚合查询;本文再重点介绍一下es的复杂查询,包括:排序、limit、复合查询等。1、排序:1)代码public static void sortQuery(String indexName, String indexType) { QueryBuilder qb = QueryBuilders.termQuery("team", "war");

2017-12-06 10:35:26 3319

原创 elasticsearch-java api之搜索(二)——聚合

前面一篇文章描述了es一些基本搜索的用法(match、term、fruzzy、matchPhraseQuery等),这篇文章我们着重讲解一下聚合查询的用法。假设es中有如下数据1、group by /count:select team,count(*) from table group by team;1)代码:public static void aggre1Quer

2017-12-06 09:50:29 1862

原创 elasticsearch-java api之过滤

一、过滤相关点:1、查询与过滤:Elasticsearch 使用的查询语言(DSL) 拥有一套查询组件,这些组件可以以无限组合的方式进行搭配。这套组件可以在以下两种情况下使用:过滤情况(filtering context)和查询情况(query context)。当使用于 过滤情况 时,查询被设置成一个“不评分”或者“过滤”查询。即,这个查询只是简单的问一个问题:“这篇文档是否匹配

2017-12-05 11:03:05 11144

原创 elasticsearch-java api之搜索(一)

1、全文搜索两个最重要的方面是:1)相关性(Relevance)它是评价查询与其结果间的相关程度,并根据这种相关程度对结果排名的一种能力,这种计算方式可以是 TF/IDF 方法(参见 相关性的介绍)、地理位置邻近、模糊相似,或其他的某些算法。2)分析(Analysis)它是将文本块转换为有区别的、规范化的 token 的一个过程,(参见 分析的介绍) 目的是为了(a)创建倒排索引以

2017-12-04 17:07:51 4274

原创 elasticsearch-java api之文档(document)各种操作

使用java api和es交互时,可以是json字符串、map对象;es中内置Jackson json序列化机制,可以将自定义对象转成string或者byte,然后传给es-java api使用。1、添加document:public static boolean add(String indexName,String indexType,Map data){ IndexRespo

2017-12-04 14:36:06 7541 1

原创 elasticsearch-java api之索引(index)的各种操作

1、创建索引:1)简单索引——没有指定mappingpublic static boolean createIndex(String indexName) { IndicesAdminClient indicesAdminClient = transportClient.admin() .indices(); CreateIndexResponse response = i

2017-12-04 10:23:10 16489 5

原创 flume之Channel

Channels 是一个 Agent上存储 events 的仓库,Source 向其中添加 events,而 Sink从中取走移除 events。本文重点介绍memory channel和file channel。1、memory channel:Source 添加的 events 都暂存在内存队列中,它非常适合那些需要更高吞吐量的数据流,但代价是一旦一个 agent 失败后,其中存储的e

2017-12-01 14:46:24 2681

原创 flume1.6自定义elasticsearch2.3的sink插件

目前官方Flume最新的版本仍然不支持Elasticsearch2.x版本,flume的老版本(1.6)只支持Elasticsearch1.7.x的版本,因为Elasticsearch2.x版本做了比较大的改动,很多API都已经废弃不用了。在github上找了一个项目:https://github.com/lucidfrontier45/ElasticsearchSink2  也是按照flum

2017-12-01 10:20:40 1799

jdt.astview-1.4

eclipse的astview插件

2023-12-18

macOS eclipse Launcher

在windoes平台上,双击桌面eclipse的图标就可以启动多个eclipse示例,打开不同的workspace进行开发。在mac上,eclipse默认只能打开一个workspace,通过该插件支持在eclipse界面上打开多个workspace

2023-12-18

nmon analyser

nmon可以采集服务器 cpu 内存等指标,通过nmon analyser来分析采集指标,生成直观的直方图。

2022-01-26

parquet-tools-1.6.0rc3.zip

parquet-tools-1.6.0rc3-SNAPSHOT.jar是一个查看parquet数据文件schema的工具,github地址:https://github.com/apache/parquet-mr/tree/master/parquet-tools?spm=5176.doc52798.2.6.H3s2kL 下载后mvn编译。附件是编译好的文件。

2020-07-24

jQuery-Plugin-For-Easily-Readable-JSON-Data-Viewer.zip

一个格式化json的jquery插件。支持折叠、打开,而且在折叠后可以看到下面有多少个子节点。有源码、示例。

2019-12-31

yesmeck-jquery-jsonview-v1.2.3-14-g01b1eb8.zip

一款格式化json的jquery插件。该插件支持展开、折叠等操作api。唯一不足的是折叠后不显示元素个数。

2019-12-30

cmake-3.8.1.zip

linux上cmake工具库——用于构建各种c++代码的一个工具。

2019-08-24

gflags-2.2.0.zip

linux上C++的gflags库。gflags是google开发的命令行工具库。

2019-08-24

glog-0.3.5.zip

linux环境下C++的一个日志类库,出品自google。类似于java的log4j、slf4j

2019-08-24

protobuf-3.6.0.tar.gz

在linux上安装protobuf3的安装包,下载后解压、编译、安装即可。

2019-08-20

ModelGoon-4.4.1-site

ModelGoon是一款eclipse的uml作图插件,可以生成类图等。

2019-04-13

mermaid-demo

mermaid是一款开源的画流程图、时序图、甘特度的工具,提供了命令行和html两种使用方法。本例是在html中使用mermaid画出各种图的例子。

2018-10-30

graphite-soft

压缩包中包含了在linux上安装graphite软件需要的一些依赖包。

2018-09-18

btrace1.3.11

btrace1.3.11,用来动态跟踪线上java代码的隐藏bug、OOM、GC等问题。

2018-05-03

linux解析json工具——jq

linux下解析json数据的一个工具包。是一个可执行文件,下载后放到某个目录中就可直接使用。详见:https://www.ibm.com/developerworks/cn/linux/1612_chengg_jq/index.html

2017-09-16

gcviewer-1.35-SNAPSHOT

gcviewer是一款不错的可视化gc查看工具,但官网上现在的只支持jdk1.4版本,这个是版本是支持1.4以上的。

2017-05-31

GCLogViewer-0.3-win64.zip

GCLogViewer是一款可视化的gc查看工具,官网下载无法运行在64位的jdk上。这个版本是兼容jdk64的。

2017-05-31

node-zk-browser-master

一个基于nodejs的zookeeper可视化软件包。内部已经安装好了nodejs所需要的各种依赖,直接解压就可以使用。

2017-01-23

perfMon插件

jmeter的插件管理,perfMon插件相关的jar包(server agent、collection)

2016-10-12

zookeeper ui

使用java语言开发了一个本地ui(swing),可以对zookeeper集群上的节点做增、删、改、查操作。

2016-06-20

CodeFolding

CodeFolding,eclipse的一个插件,支持代码折叠

2016-04-05

maven2eclipse 图形pom编辑插件

maven2eclipsec图形pom编辑插件

2016-03-28

js表格拖拽

使用纯js完成了table(表格)列的拖拽;同时支持列位置的调整。

2015-12-31

tomcat7+jedis+common_pool

tomcat7下,将session保存到redis中,需要用到的jar包。

2015-12-11

Quartz1.7 动态添加、修改和删除定时任务(非spring集成版)

Quartz1.7 动态添加、修改和删除定时任务(非spring集成版)

2015-06-21

dbforge studio

dbforge studio

2015-04-21

jquery定时界面

大家都知道linux的conrtab,在web开发中,我们有时候也要实现类似的功能,该文件就是jQuery是实现的crontab。

2015-03-29

jquery 全屏显示插件

jquery 全屏显示插件,实现网页的全屏显示。适用各种不同的浏览器,包括FF 10, Chrome 和 Safari。它用于为用户提供了一个更容易阅读的网页版本,可缩放和元素。

2015-03-20

小图标素材

312个16×16的精美小图标素材,涵盖了大部分功能用到的小图标,非常不错。

2015-03-16

dbforgemysql

dbforgemysql是一款调试mysql 存储过程、函数的工具,使用它可以单步、断点调试mysql存储过程。

2015-03-11

jquery 下拉左右选择控件

基于jquery 实现的下拉框左右选择控件 支持多选 按住ctrl shit多选

2015-02-27

自定义树表格

基于jquery开发的可以分页的输表格。参照网址http://blog.sina.com.cn/s/blog_3efe6ef10100fcv2.html

2015-02-11

eclipse插件-jad

eclipse的插件——jad.zip,可以通过简单的配置,实现反编译class,获得源码

2015-02-05

jquery.radio.js

jquery的easyUI框架,单选按钮插件封装

2015-01-20

easyUI后台demo

easyUI后台demo 是一个使用easyui框架搭建的一个后台管理系统的界面。

2015-01-19

easyUIdemo(疯狂的秀才)

easyUIdemo(疯狂的秀才)是一个使用easyui框架搭建的一个后台管理界面。

2015-01-19

easyUI-api文档

easyUI框架-api中文文档,包含easyUI框架包。

2015-01-04

SQLyog_Enterprise

连接mysql的客户端,SQLyog_Enterprise。带验证码

2014-11-17

eclipse-maven3-plugin

eclipse-maven3-plugin:eclipse的maven离线插件包

2014-10-23

apache-maven-3.2.3-bin

apache-maven-3.2.3-bin:eclipse中离线安装maven的工具包,把它直接拷贝到eclipse的安装路径下,配置好maven.link等信息后,就可以安装好了。

2014-10-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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