自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ESOO

君子不器

  • 博客(337)
  • 资源 (1)
  • 收藏
  • 关注

原创 flume高并发优化——(11)排除json转换及中文乱码

在使用flume收集数据,转换为json格式时,常常遇到特殊符号的问题,而json对于”引号,是非常敏感的,大家处理json数据的时候,要特别注意,在前不久,向es插入数据时,报错就是json转换失败原因:       json通用格式:        {"key":"value"}       {"key":{}}       {"key":[]}       ["one","two"]

2016-08-19 18:31:04 5447 3

原创 flume高并发优化——(10)消灭elasticsearch sink多次插入

在flume作为通道接收json数据时,最近遇到一个问题,当flume-es-sink遭遇一个错误的时候,会不断尝试插入数据,而以前的数据又没有进行回滚,导致数据重复插入,脏数据累积,为了解决这个问题,现解决如下:原因如下:        1,事务控制在channel端        2,事务回滚,未处理已插入es中数据解决方案:        1,es批量操作不做回滚        2,es插入

2016-08-19 18:14:42 5480 9

原创 flume高并发优化——(9)配置文件交由zookeeper管理

我们都希望,配置文件是从一个服务引出,然后客户端监听服务端变化,实时重启自身加载最新配置,这样,我们就不用维护每个独立的客户端配置,更新也变得非常简单,而flume,显然意识到了这一个巨大的实惠,他是支持配置文件交由zookeeper维护的,这样我们在修改配置时,flume会自动重新加载。1,zookeeper 添加节点        我们利用博客《使用zkweb维护zookeeper数据》中介绍

2016-07-22 14:49:09 9167 3

原创 netty学习(三)——开始传送对象喽!!

上篇博客中,我们学习了如何简单建立链接,在本篇中,我们开始利用netty传输简单的对象,做一个简单的范例:1,服务端        1.1 服务端package com.xvshu.test.two;import org.jboss.netty.bootstrap.ServerBootstrap;import org.jboss.netty.channel.*;import org.jbo

2016-07-13 21:16:46 4235 5

原创 netty学习(二)——Hello world!

在认识完基本概念后,我们开始进行我们自己的hello world 简单范例,以此来揭开netty的第一层面纱:1,maven        首先我们需要引入netty的jar包,依赖如下: io.netty netty 3.10.5.Final2,服务端        服务端的简单逻辑就是监听8000端口,注册消息处理方法,在获取到客户端链接的方法中打印 hello worldpackag

2016-07-13 21:07:28 2161 4

原创 netty学习(一)——概念简介

一,netty是啥?        首先要有一句话总结netty是什么的问题,这样我们就有中心思想,知道如何去使用它,“高性能NIO通信框架”,我觉得这是对netty的总结,他的实现很巧妙,但是还是为这个目的服务,有了他,我们就能做到心中有数!二,同类型产品        我们最熟悉的NIO产品,应该就是java自身的NIO框架,这个没有实践过,不过多阐述,netty是我接触到的第一个nio通信框

2016-07-13 20:55:56 2877 4

原创 linux 安装supervise服务

今天给大家介绍一款linux上非常实用的小工具,supervise,这款工具可以监控某服务运行状态,检测到某服务死掉后会自动执行某命令重启服务,现在我们一起学习一下1,扩展yum源 在某路径下执行以下命令        1.1,安装atomic源                 # wget http://www.atomicorp.com/installers/atomic  #下载     

2016-06-30 19:07:46 12082 4

原创 flume高并发优化——(8)多文件source扩展断点续传

在很多情况下,我们为了不丢失数据,一般都会为数据收集端扩展断点续传,而随着公司日志系统的完善,我们在原有的基础上开发了断点续传的功能,以下是思路,大家共同讨论:核心流程图:                         源码:/* * 作者:许恕 * 时间:2016年5月3日 * 功能:实现tail 某目录下的所有符合正则条件的文件 * Email:xvshu1@163.com * T

2016-06-22 18:21:43 9567 4

原创 使用ZKManager维护zookeeper数据

在项目上经常使用zookeeper作为注册端与管理端,而我们需要一款软件帮助我们维护zookeeper上的数据,在使用flume配置端zk化,之后,这种需求日益强烈,为此,我从网上找到一款不错的开源软件,推荐给大家        这是源码地址:http://code.taobao.org/p/zkweb/wiki/index/        这是我修复部分bug版地址:http://pan.bai

2016-06-22 18:02:54 8853 3

原创 Linux 安装与使用H2数据库

很多人在windows平台上使用过H2数据库,但是安装到linux,还不知道怎么做,现在,跟着我一起在linux安装:1,下载jar包 下载h2-1.3.176.jar 这个包(部分服务版本不一致,请自行更换版本)2,启动服务 复制到linux服务器 /opt/h2/bin/ 下 在目录下启动 3,使用web工具

2016-06-22 17:35:34 13208 2

原创 翼龙贷——优化经验分享

2016-05-31 13:38:53 5784 7

原创 flume高并发优化——(7)RandomAccessFile升级多文件source

本篇文章旨在解决tail文件io断裂问题,我们使用linux原生的tail ,启动多个线程,做到对多个文件的数据收集,但是,随着业务日志增多,日志以日期分割,是个常用的做法,但是这样,就使得我们的flume插件在日期交换的凌晨,出现io断裂,造成不能继续收集数据

2016-05-11 11:54:02 5474 2

转载 基于zookeeper的配置中心

转载自:https://github.com/knightliao/disconfDistributed Configuration Management Platform(分布式配置管理平台)专注于各种 分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务。包括 百度、滴滴出行、银联、网易、拉勾网、苏宁易购、顺丰科技 等知名互联网公司正在使用!「disconf」在「2015 年度新

2016-05-04 17:48:55 22168 3

原创 flume高并发优化——(6)开发多文件检索source插件

To detect all files in a folderstep: 1,config one path 2,find all file with RegExp 3,tail one children file 4,batch to channal demo: demo.sources.s1.type = org.apache.flume.source.ExecTailSource demo.sources.s1.filepath=/export/

2016-05-03 18:20:01 8803 3

原创 flume高并发优化——(5)KafkaOffsetMonitor

本片博客是介绍一款kafka监控的软件,以配合查看flume的kafka channel性能,其实这是个非常简单的项目,我们只需要下载好jar包,就可以使用了1,下载jar包http://pan.baidu.com/s/1eSPlzpw2,启动java -cp KafkaOffsetMonitor-assembly-0.2.0.jar \ com.quantifind.kafka.offseta

2016-04-25 18:05:14 3430 3

原创 flume高并发优化——(4)kafka channel

在上篇博客中,我们还留了一个小疑问,就是我们对最后一个flume的优化是如何做的,关于这一点,我们的思路是这样的,file的瓶颈是io,而我们使用的硬盘是5400转1t硬盘,如果想要优化,我们必须找到性能和memory相当,但是又能较好的保存数据,保证事务性的channel,符合这样要求的一款channel进入了我们的视线,就是kafkachannel,具体怎么做的,请大家看详细介绍:优化之前的架

2016-04-25 17:40:04 13582 6

原创 flume高并发优化——(3)haproxy

在上篇博客中,我们虽然进行了较大的改动,但是,没有料到的是,flume的file性能瓶颈会如此快的到来,由于我们使用了一个filechannel作为负载均衡的通道,导致性能瓶颈很快到来,为了应对这样的瓶颈,我们对结构进行了第三次升级,替换了负载均衡的前端,换为性能更好的haproxy作为分发端,大家一起来看看是如何优化的。        还是老样子,大家看看上次优化过之后的结构:        我

2016-04-25 17:09:14 6896 6

原创 flume高并发优化——(2)精简结构

大家在上篇博客中,可以看到,对flume本身的优化,我们可以说是一个较大的进步,但是,后期梳理时,发现,数据的处理经过了很多没有必要的步骤,我们的处理有些多余,但是精简哪里,又成为了一个问题,本篇博客带领大家一起看看,精简的关键位置及效果。还是老样子,大家会议上篇博客的架构:        不难看出,有一个性能点就是从主端口下发的时候,三个端口到es的过程中,为了让数据有较好的缓冲,我们使用了ka

2016-04-25 16:51:27 8221 9

原创 flume高并发优化——(1)load_balance

通过一年多时间的使用,统一日志系统,已经接入公司前台,在20个节点,几十万用户,数百亿交易额的大压力下,仅仅使用了一个普通的服务器,承受住了严峻的考验,在公司今年更宏大的目标,也是为了给大数据组提供更加全面信息的需求下,公司所有项目,要接入ULOG系统,主要包含管理后台,wap,app等,流量一下达到一个峰值,flume的瓶颈凸显出来,在解决的过程中,对flume的了解以及性能调优,有了更深入的认

2016-04-25 16:33:22 13875 9

转载 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换

软件开发的一般流程为工程师开发 -> 测试 -> 上线,因此就涉及到三个不同的环境,开发环境、测试环境以及生产环境,通常这三个环境会有很多配置参数不同,例如数据源、文件路径、url等,如果每次上线一个新版本时都手动修改配置会十分繁琐,容易出错。spring 为我们提供了 profile 机制来解决这个问题。spring允许我们通过定义 profile 来将若干不同的 bean 定义组织起来,从而实

2016-04-12 15:22:21 18773 5

原创 权限管理框架实现(3)--jquery自定义标签

上篇文章,介绍了,使用ValueStack对权限进行控制,但是还是需要前台工作者去写,其实,我们利用jquery,就可以做到对html标签的控制,基本思路如下:1,获取所有特殊标签集合2,ajax后台申请权限3,判断返回值,没有权限则消除标签具体js代码如下1,获取集合 var authObjs = $("auth[TestAuth='true']");2,ajax申请后台 $.ajax({

2016-04-12 15:07:33 5778 2

原创 权限管理框架实现(2)--Struts中ValueStack使用

众所周知,struts中,数据交互是走的ValueStack,在权限交互中,我们有些数据,存储到ValueStack中,更容易被用户利用,用户可以在jsp或者其他框架下,利用已有的数据,让前台不需要关心权限数据是如何存储的,只需要关心我们某一个权限标示是否被通过了,这是如何实现的呢?大家看源码。1,生命周期        在struts-default.xml文件中决定了在web容器启动时将会创建

2016-04-12 14:48:00 3222 1

原创 权限管理框架实现(1)--Struts切面处理

要做一款权限架构,就要适用几个流行的相关框加,struts2是我们公司首先需要考虑的,考虑到侵入性,决定通过切面的方式,在每个Action前进行权限验证,基本思路是:        1,自定义通用权限注解        2,开发抽象切面,预留传入uid的接口        3,配置struts切面,做权限拦截以下源码是对上边功能的实现:1,权限注解/** * 自定义权限注解 */@Targe

2016-04-12 14:16:29 3544 2

原创 这个bug很简单-log4j:ERROR Attempted to append to closed appender named

最近调试log4j的时候,一直遇到这个错误:log4j:ERROR Attempted to append to closed appender named一直未找到原因,看了几篇博客后知道,是有配置重合了,大家看:这是以前的配置文件:这样就会导致,log4j会清楚所有的appender,删除后,问题就排出了,这个bug督促我们,要努力看源码啊!

2016-03-31 17:54:45 10873 2

原创 RabbitMQ监控(5)——OpenCharts展示

有了前几篇博客的基础,我们可以从容应对监控的实现,但是还有一个问题,我们没有解决,就是图形化展示监控结果,在网页上画图,我们的确有很多种方案,以前我们使用过highcharts,但是学习还好,在公司使用不是很合适,我们需要一款,简单,易上手,的绘图插件,这里带领大家一起熟悉一款这样的软件,opencharts。

2016-03-23 14:17:23 2510 4

原创 RabbitMQ监控(4)——URL监控

在监控的过程中,我们除了监控一些服务性能情况,还有一些服务的存活也需要监控,这时候,我们就可以用到java自带的url操作类,完成,整体思路是通过一个请求的状态码判断某请求,是否存在,达到监控的目的,为了更可靠,我们重复请求五次,都失败再警告,现在我们一起来实现它。

2016-03-23 14:00:43 3498 3

原创 RabbitMQ监控(3)——核心监控类实现

在监控时,我们的思路大概是这样的,使用rabbitmq的java客户端开发检测端口,发现不符合要求的性能参数,予以警告,给负责人发送短信或邮件,并提供前台可视化的监控界面,大家先看整体设计:

2016-03-23 13:45:19 3988 2

原创 RabbitMQ监控(2)——RabbitMQ-javaclient使用

本文旨在为大家打开java关于rabbitmq操作的窗户,简单应用,帮助理解官方文档,详细内容,还是要参考官方文档,这里是官方文档的中文过渡区

2016-03-23 13:20:00 6455 3

原创 RabbitMQ监控(1)——RabbitMQ简介

最近公司想要开发一套针对RabbitMQ的监控系统,和短信及邮件接口整合,对性能做到实时的监控,表示这个真的很及时,这样我们就能“24小时不离岗”只要手机开着,就对网站性能有较好的把控,下面将分几部介绍如何实现。

2016-03-23 12:54:57 4676 2

原创 提升用户体验之A/B测试(5)——linux安装python(pip)插件

此片博客作为工具片存在,帮助大家在安装sixpack时,升级python到2.7后安装pip工具,方便安装sixpack

2016-03-02 13:42:06 1723 3

原创 提升用户体验之A/B测试(3)——sixpack-js客户端

在上篇博客中,我们介绍了sixpack的安装,在安装好后,我们再接再厉,试试一个官网提供的小例子,结合例子,大家再体会下第一篇博客中介绍的A/B测试流程:

2016-03-02 13:24:16 1649 1

原创 提升用户体验之A/B测试(2)——Sixpack安装

上篇博客给大家介绍了A/B测试的相关流程,是不是已经摩拳擦掌了,别着急,跟着我,咱们马上进入,sixpck的世界,而且不要担心,更文太慢,这次一次发表5篇博客,力求最大可能帮助大家认识和熟悉sixpack,帮助大家提升自己的眼界与掌握一个流行的中间件。

2016-03-02 13:23:52 2094 1

原创 提升用户体验之A/B测试(4)——linux升级python到2.7

此片博客作为工具片存在,帮助大家在安装sixpack时,升级python到2.7一般linux系统都会预装python,但是一般版本较低,我的测试服务器版本为2.4.4,要升级到2.7.3,大家仅作参考,服务器为redhat版本。

2016-03-02 13:23:09 1260 2

原创 提升用户体验之A/B测试(1)——简介sixpack

在项目过程中,我们有很多时候,觉得用户改怎么样?或者用户能怎么样,但是在《粘住》这本书中,提出一个概念,”我们以为用户和我们一样“,就是,专业人员,比如it从业者,在设计自己的程序时,或多或少都以为,用户应该懂这个啊,用户应该知道单击哪个按钮,用户应该知道这是多选的,等等这些问题,实际上,大部分的用户是不知道的,这时候,我们不防先用A/B测试工具实验一把,将用户真实的反应统计下来,这样我们就能一步步离用户近了!

2016-03-02 12:36:48 3677 4

转载 如何处理PB级别数据(2)——Apache Solr 之 使用SolrJ操作索引库

Solrj是Solr搜索服务器的一个比较基础的客户端工具,可以非常方便地与Solr搜索服务器进行交互。最基本的功能就是管理Solr索引,包括添加、更新、删除和查询等。对于一些比较基础的应用,用Solj基本够用,而且你可以非常容易地通过使用Solrj的API实现与Solr搜索服务器进行交互,实现对Solr的基本管理功能。如果你的应用比较复杂,可以扩展Solrj来满足需要。       使用

2016-02-26 14:59:56 1605 3

转载 如何处理PB级别数据(1)——Elasticsearch与Solr 选型

搜索引擎选择: Elasticsearch与Solr搜索引擎选型调研文档Elasticsearch简介*Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™

2016-02-26 14:58:16 5203 2

原创 项目修炼之路(7)iftop查看耗费流量的进程

我们知道在linux中,top命令可以查看服务器中资源的一些情况,cpu,内存等,还可以看到是谁在消耗内存或cpu,但是,有些时候,我们发现,cpu和内存并不吃紧,但是服务器依然很慢,这时候,我们需要多一个维度来帮助我们分析问题,就是流量的统计,今天给大家介绍一个工具iftop,希望帮助大家解决这个问题。

2016-02-22 17:05:27 14299 4

原创 项目修炼之路(6)Redis批量删除某数据库下的key

我们做测试时,一直想模拟线上第一次运行的环境,所以会涉及对某个索引下的某类key值进行删除的操作,下面给大家介绍下具体操作步骤:

2016-02-19 11:09:34 5620 3

原创 项目修炼之路(5)高并发下优化Redis缓存效率

最近,公司给了个优化任务,某个耗时的操作,在百亿的交易额下,处理异常缓慢,需要优化,以为每日发息做准备,在这里给大家介绍下我的优化思路,共同探讨下:

2016-02-17 17:31:11 13355 3

原创 项目修炼之路(4)aop+注解的自动缓存

在项目中,使用缓存的方式有很多种,一般我们会封装出一个工具类以供使用,但是这样对代码的侵入性还是太强,在这里给大家介绍一种,使用自定义注解自动缓存内容,降低缓存与逻辑代码的耦合性,也省去了大家封装的时间,注意:key生成策略为(标识字符+首个参数值)

2016-02-17 16:33:56 3104 3

安卓带记忆功能计算器源码

一款使用sqlite保存的带记忆功能计算器的安卓源码,仅供参考。

2017-08-11

空空如也

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

TA关注的人

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