首页 文章 精选 留言 我的

精选列表

搜索[MIT协议],共10002篇文章
优秀的个人博客,低调大师

日志收集系统chukwa协议分析

chukwa是apache下的一个开源项目。主要是用于日志收集分析,结合hadoop进行有效的日志处理和计算。下面这张图片描述的比较形象。 在这个架构中可以看出主要由agent,collector,hadoop,这样几块组成。而我现在要关注的就是agent和collector的交互部分。原来的日志收集系统是直接使用chukwa的一整套服务搭建起来的。但是这样子的系统有一个比较明显的缺点就是不能达到实时处理的要求。正常的情况下,日志处理的延时在5到10分钟左右。因此,需要在此基础上修改这样的架构。分析后发现,chukwa的agent还是比较好用的,拥有很多的配置方法,方便对服务器的调控。另外因为是线上服务器,也不可以随便换用agent。因为决定自己实现collector端,收集agent发过来的数据。因此就需要研究chunkwa传输的时候是怎么编码的。下面这张图片是我分析后得到的结果: 每一次,agent会发送一个package过来,这个package包括很多个chunk。其中开始的4个字节表示的int值表示这个package有多少个chunk。上面这张图片表示的就是一个chunk的各个字段组成。因为这是一个流的形式字符,需要根据java中的相应编码方式使用python进行解码。但是我查看了一下,python中没有直接支持的包,不过有一个struct扩展模块,通过对该扩展模块进行简单包装,就可以实现读取Int型,Long型,UTF字符等。代码如下: # -*-coding: utf-8 -*- from struct import * class BinaryStream: def __init__(self,base_stream): self.base_stream = base_stream self.offset = 0 def readBytes(self,length): string, = unpack_from(str(length) + 's',self.base_stream[self.offset:]) self.offset += calcsize(str(length) + 's') self.offset +=1 return string def readUTF(self): length, = unpack_from('!H',self.base_stream[self.offset:]) self.offset +=calcsize('!H') string, = unpack_from(str(length) + 's',self.base_stream[self.offset:]) self.offset +=calcsize(str(length) + 's') return string def readLong(self): num, = unpack_from('!Q',self.base_stream[self.offset:]) self.offset +=calcsize('!Q') return num def readInt(self): num, = unpack_from('!I',self.base_stream[self.offset:]) self.offset += calcsize('!I') return num 使用这个方法就可以很简单的把收集到的package包中的chunk解码,并且提取其中的日志内容。通过这个方法基本上可以使得延时缩小到10秒以内。

优秀的个人博客,低调大师

MIT评出全球十大突破性技术 阿里巴巴连摘两项

免费开通大数据服务:https://www.aliyun.com/product/odps 2月21日下午,美国权威科学杂志《麻省理工科技评论》(MITTechnologyReview)发布2017年全球十大突破性技术榜单。在与Google、微软、IBM等科技巨头的较量中,阿里巴巴分别入选“强化学习”和“刷脸支付”两大突破性技术榜单。 作为全球最为著名的技术榜单之一,《麻省理工科技评论》全球十大突破性技术具备极大的全球影响力和权威性,至今已经举办了超过16年。每年上榜的技术突破,有的已经在现实中得以应用,有的还尚需时日,但注定将在未来对人类的经济政治生活产生重大影响,甚至会彻底改变整个社会面貌。 今年《麻省理工科技评论》公布的十大突破性技术榜单依次为强化学习、360°自拍、基因疗法2.0、细胞图谱、自动驾驶货车、刷脸支付、太阳能热光

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册