[置顶] flume高并发优化——(15)中间件版本升级

在系统平稳运行一年的基础上,为提供更好的服务,现针对java,kafka,flume,zk,统一进行版本升级,请各位小伙伴跟着走起来,不要掉队啊! 名称 老版本号 新版本号 jdk 1.7.0_25 1.8.0 kafka 2.10-0.8.0.1 2.10-0.10.2.1 flume 1.6.0 1.7.0 zookeeper 3.4.6...
阅读(1653) 评论(1)

[置顶] flume高并发优化——(14)解决空行停止收集数据问题,及offsets变小问题

日志平台运行一段时间,发现日志有部分丢失,通过检查日志,发现有两个问题导致数据丢失,一个是遇到空行后,日志停止收集,还有就是kafka监控offsets时变小,通过分析代码,找到如下方法:空行问题:  在系统稳定运行一段时间之后,发现了一个致命性的bug就是在遇到空行时,无法自动跳过,导致识别为文件结束,再次读取还是空行,跳入了死循环解决办法:  解决的办法也非常简单,就是增加对文件大小与当前行数的...
阅读(115) 评论(0)

[置顶] flume高并发优化——(13)扩展三级文件配置&利用Headers扩展属性

上篇博客中,我们对flume进行了文件组进行了扩展,但是我们现在的配置还是针对某组文件单独配置,这样的维护成本还是太高,为了持续优化,我们对常见的三级文件进行优化(**logs/**project/**type/*.log)利用公司内部的约定,大家一起为简单配置努力。1,规范目录结构        在本项目约定下,日志结构采取如下:/logs/*project/type-tomcat/*.log2...
阅读(1886) 评论(6)

[置顶] flume高并发优化——(12)filesource 支撑文件组&兼容cat监控

主因        在上篇博客中,我们已经做到了非常不错的多文件检索,但是,还有一个问题,就是针对不同的项目,需要多个配置文件,这样,对运维,是个非常繁琐的问题,针对这个问题,本版对flume扩展了文件组(以|切分父文件)。        cat监控,是个久经考验的监控报警平台,因此决定兼容cat的协议,对source进一步扩展。        针对很多人说方法过大的问题,本次也做了调整,优化了面...
阅读(1141) 评论(6)

[置顶] flume高并发优化——(11)排除json转换及中文乱码

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

[置顶] flume高并发优化——(10)消灭elasticsearch sink多次插入

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

[置顶] flume高并发优化——(9)配置文件交由zookeeper管理

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

[置顶] flume高并发优化——(8)多文件source扩展断点续传

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

[置顶] flume高并发优化——(7)RandomAccessFile升级多文件source

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

[置顶] flume高并发优化——(6)开发多文件检索source插件

To detect all files in a folder step: 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/...
阅读(6323) 评论(4)

[置顶] 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...
阅读(1883) 评论(3)

[置顶] flume高并发优化——(4)kafka channel

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

[置顶] flume高并发优化——(3)haproxy

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

[置顶] flume高并发优化——(2)精简结构

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

[置顶] flume高并发优化——(1)load_balance

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

[置顶] 权限管理框架实现(3)--jquery自定义标签

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

[置顶] 权限管理框架实现(2)--Struts中ValueStack使用

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

[置顶] 权限管理框架实现(1)--Struts切面处理

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

[置顶] RabbitMQ监控(5)——OpenCharts展示

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

[置顶] RabbitMQ监控(4)——URL监控

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

[置顶] RabbitMQ监控(3)——核心监控类实现

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

[置顶] RabbitMQ监控(2)——RabbitMQ-javaclient使用

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

[置顶] RabbitMQ监控(1)——RabbitMQ简介

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

Error UNKNOWN_MEMBER_ID occurred while committing offsets for group ***

Error UNKNOWN_MEMBER_ID occurred while committing offsets for group ***:增加配置 agent1.channels.c2.kafka.consumer.session.timeout.ms=100000 agent1.channels.c2.kafka.consumer.request.timeout.ms=110000 agent1.channels.c2.kafka.consumer.fetch.max.wait.ms=1000...
阅读(293) 评论(2)

深入jdk——追踪Collections.sort 引发的bug(3)TimSort源码解读

本来准备看Java容器源码的。但是看到一开始发现Arrays这个类我不是很熟,就顺便把Arrays这个类给看了。Arrays类没有什么架构与难点,但Arrays涉及到的两个排序算法似乎很有意思。那顺便把TimSort算法和双指针快速排序也研究一下吧。首先强调一下,这是个稳定的排序算法看过代码之后觉得这个算法没有想象的那么难。逻辑很清晰,整个算法最大的特点就是充分利用数组中已经存在顺序。在归并的过程...
阅读(355) 评论(2)

深入jdk——追踪Collections.sort 引发的bug(2)TimSort思路

1. 为什么写这篇文章这篇文章的根源是在产品中发现了一个诡异的bug:只能在产品环境下重现,在我的本地开发环境无法重现,而双方的代码没有任何区别。最后用remotedebug的方法找到异常所在:Exception in thread "main"java.lang.IllegalArgumentException: Comparisonmethod violates its general con...
阅读(357) 评论(2)

深入jdk——追踪Collections.sort 引发的bug(1)mergeSort

上篇博客介绍了因为重写比较方法引发的bug,这篇博客,咱们深入以下jdk对Collections.sort的实现,看看这个异常产生的原因,废话不多,先看源码:1,Collections.sortpublic static void sort(List list, Comparator c) { Object[] a = list.toArray(); Arrays...
阅读(307) 评论(1)

这个坑,你要注意:Comparison method violates its general contract!

背景有部分业务需要进行排序,对比的对象是某实体里的金额(double 类型),这样,我们实现了自定义的比较类,结果运行一段时间之后报了错误:Comparison method violates its general contract! ,经过校验,发现错误出现在自定义排序上,经网上各种查阅资料发现是jdk7的兼容问题,以下将解决过程分享给大家。错误截图:重写的比较方法:解决方案先说如何解决,解决...
阅读(577) 评论(4)

牛!用舞蹈演绎排序

找到完整版的排序算法舞蹈了,一起感受程序员的艺术吧。冒泡排序:http://t.cn/hrf58M 希尔排序:http://t.cn/hrosvb,选择排序:http://t.cn/hros6e插入排序:http://t.cn/hros0W快速排序:http://t.cn/ScTA1d归并排序:http://t.cn/Sc1cGZ...
阅读(329) 评论(2)

git简易使用指南

git - 简易指南助你开始使用 git 的简易指南,木有高深内容,;)。Tweet作者:罗杰·杜德勒 感谢:@tfnico, @fhd and Namics其他语言 english, deutsch, español, français, italiano, nederlands, português, русский, türkçe, မြန်မာ, 日本語, 한국어 如有纰漏,请到 gith...
阅读(348) 评论(4)

P2P之关资金存管(三)我们的模式:懒猫

先看懒猫自己平台的介绍:银行资金存管系统银行资金存管系统服务是懒猫联银深入网贷行业,为商业银行搭建合规、易用的网贷行业专属的银行资金存管系统,旨在为网贷行业的健康可持续发展保驾护航。目前,懒猫联银已协助厦门银行、中信银行上线网贷行业专属的银行资金存管系统并已商用,且与多家银行达成战略合作意向。其中,懒猫联银协助厦门银行成为网贷行业银行资金存管领域市场占有率第一的商业银行。厦门银行已接入91旺财、人...
阅读(529) 评论(3)

P2P之关资金存管(二)模式

来源:凤凰财经WEMONEY 作者:吴炜凤凰WEMONEY讯 8月17日,凤凰WEMONEY发表了一篇名为《P2P资金存管多方画像:银行“打太极”!第三方支付真的要倒霉?》的文章,对银监会下发的《网络借贷资金存管业务指引(征求意见稿)》(下称“《指引》”)进行了解析,引发了大家的热议。据了解,目前银行与P2P平台进行资金存管合作有三种模式,分别是银行直连、直接存管和联合存管。许多读者在后台留言,“...
阅读(667) 评论(2)

P2P之关资金存管(一)意义

2017年,是P2P生死之年,因为这是网贷要求分布的整改结束年,今年将决定谁能活下去的问题,而在全国人民喜大普奔的日子里,我们先来稍微了解下,存管对于各方的意义:1,政府        在政府眼中,这是必须要做的事情,实际上我国政府的宽容度是非常高的,对于当下“看不懂”的问题,一般会给适应期,在P2P金融前期,政府的介入就非常微小,为企业的生存发展提供了宝贵的空窗期,尝试各种新奇的方法,将各方资金...
阅读(416) 评论(3)

微服务(Microservice)那点事

WHAT - 什么是微服务微服务简介这次参加JavaOne2015最大的困难就是听Microservice相关的session,无论内容多么水,只要题目带microservice,必定报不上名,可见Microservice有多火。最喜欢其中一页。关于这个典故,可以参考this,此图适用于一切高大上的名字——技术有SOA,Agile,CLOUD,DevOps等等,古代有道,气,八卦等等。此类名词的最...
阅读(573) 评论(1)

spring事件机制——异步配置

这里讲解一下Spring对异步事件机制的支持,实现方式有两种:1、全局异步即只要是触发事件都是以异步执行,具体配置(spring-config-register.xml)如下:  通过注入taskExecutor来完成异步调用。具体实现可参考之前的代码介绍。这种方式的缺点很明显:要么大家都是异步,要么大家都不是。所以不推荐使用这种方式。2...
阅读(1033) 评论(2)

Spring事件机制的简单例子

本例子模拟一个给多个人发送内容(类似于报纸新闻)的例子。1、定义事件package com.xvshu.hello; import org.springframework.context.ApplicationEvent; public class ContentEvent extends ApplicationEvent { public ContentEvent(final...
阅读(583) 评论(3)

P2P关卡——资金存管与资金托管

最近公司在进行资金存管,正好借着这个机会了解下这个P2P的关卡,以下是一篇比较好的文章转载《南方财富网》资金存管与资金托管有什么区别?资金存管是怎么存钱有哪些好处?  《关于促进互联网金融健康发展的指导意见》中的第十四条明确提到了“客户资金第三方存管制度”,原文如下:“除另有规定外,从业机构应当选择符合条件的银行业金融机构作为资金存管机构,对客户资金进行管理和监督,实现客户资金与从业机构自身资金分...
阅读(665) 评论(3)

一起学docker(3)--安装并运行ubuntu

看了前两篇博客,是否是已经摩拳擦掌了,我们马上开始1,docker安装(ubuntu系统)        docker还是对linux做的最好,如果你是windows,建议先安装个虚拟机,装一个linux,然后在进行实验,毕竟线上环境大多是linux。sudo apt-get install docker.io静静等待,一路yes下去,docker就在你面前。2,下载镜像安装好docker后,启动...
阅读(1193) 评论(5)

一起学docker(2)--基本概念

学习docker,几个概念非常重要,总结一句话,安装过系统吗?和安装系统的概念是一样一样的:        镜像( Image)        容器( Container)        仓库( Repository)我们来一个个解释,我们虽然复用了系统底层,但是我们要启动一个服务,需要完整的一个操作系统服务(不是完整的操作系统,有地方调用就行),那么我们就要整合,而整合好的这些服务,我们和我们不...
阅读(686) 评论(5)

一起学docker(1)--简介

最近几年docker非常火爆啊,正好公司也有需求,那么,自然就是学习docker的最佳时机,既有欲望,又有需求,对于程序员来说,就像是遇到了“林妹妹”一样,还要老办法,学习任何一种技术,我们都要带着这几个问题:        docker是啥?        docker怎么做?        为什么是docker?        下面我们就一步步开始解开这几个问题。docker是啥?...
阅读(702) 评论(7)
239条 共12页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:561040次
    • 积分:13205
    • 等级:
    • 排名:第355名
    • 原创:225篇
    • 转载:14篇
    • 译文:0篇
    • 评论:4512条
    博客专栏
    最新评论