`
无尘道长
  • 浏览: 157766 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

java nio

    博客分类:
  • java
     Java中nio有3个核心概念:channel,buffer,selector,在网络nio中,把channel的事件注册到selector,当网络就绪后进行读写操作,channel之间通过buffer传递数据。   Channel          一共有4种通道:           FileChannel       ...
原文地址:http://my.oschina.net/zhengyang841117/blog/188723     在这里主要分析一下HFile V2的各个组成部分的一些细节,重点分析了HFile V2的多级索引的机制,接下去有时间的话会分析源码中对HFile的读写扫描操作。 HFile和流程: 如下图,HFile的组成分成四部分,分别是Scanned Block(数据block)、Non-Scanned block(元数据block)、Load-on-open(在hbase运行时,HFile需要加载到内存中的索引、bloom filter和文件信息)以及trailer(文件尾)。 ...
原文地址:http://san-yun.iteye.com/blog/1993519   OpenTSDB是一个架构在Hbase系统之上的实时监控信息收集和展示平台。 它在海量数据的压力下,仍然保证了存储的效率,那么它背后有什么值得借鉴的地方呢? 1)使用AsyncHbase而非HBase自带的HTable。使用线程安全、非阻塞、异步、多线程并发的HBase API,在高并发和高吞吐时,可以获得更好的效果。建议在使用AsyncHBase​时,在CPU core有保证的前提下,可以设置16或者24。 2)采用固定长度的Rowkey,让Rowkey包含尽可能多的检索信息。这一点的话,O ...
  前几天感恩节,发现公司机房出口带宽增长1倍,经过排查发现是提供图书下载的服务器输出流量大增,查看源码,定位到问题:   走CDN的下载接口中带有机型、渠道、版本等参数,而这些参数的组合场景可达到百万级,从而导致大量的请求穿透,而感恩节的运营策略是重点推精品书,每天会有免费,而一本精品书可以达到几十M大小,对于一本精品书可能就会有n多请求回源到程序机房,严重浪费机房带宽,1年的损失相当大(至少百万级),而这只是之前的程序员考虑不周,一个小小的改进就可以解决这个问题,由此可总结:   1、靠谱的程序员是很重要,多花的几万工资,1年下来带来的收益很有可能远远大于这几万,人不在多,在于精,这个 ...
    HBase的数据备份或者容灾方案有这几种:Distcp,CopyTable,Export/Import,Snapshot,Replication,以下分别介绍(以下描述的内容均是基于0.94.20版本)。   一、Distcp    在使用distcp命令copy hdfs文件的方式实现备份时,需要禁用备 ...
hbase-daemon.sh中停止RS的脚本如下: if [ -f $pid ]; then       # kill -0 == see if the PID exists       if kill -0 `cat $pid` > /dev/null 2>&1; then //判断进程是否存在         echo -n stopping $command         echo "`date` Terminating $command" >> $loglog         kill `cat $pid` ...
   快速解决线上系统问题,对于公司可减少损失,对于相关技术人员,可改善睡眠                       
   公司部分项目是用python实现的,由于python的内存泄露问题,每两天凌晨均会重启一次python服务,有一次在业务高峰期,python服务的内存大增,导致操作系统的free memory低于/proc/sys/vm/min_free_kbytes设置的值,触发了linux的oom killer,由于在该python服务器上部署有memcached服务,在oom killer的算法下kill了memcached的进程,但是在重启的过程中由于申请不到memcached设置的内存,重启失败,导致依赖该memcached的服务出现大面积延时。    这里有2个问题:    1、应尽量 ...
    生产系统出的问题中,请求响应慢是很常见的问题,如何快速定位慢的源头非常重要,通过对之前遇到的问题总结,发现一般都是依赖服务慢或者出现线程阻塞导致,对于这两种问题简单有效的定位方法如下:    1、打印超过阀值的依赖服务访问时长到日志,通过日志定位     2、使用java的jstack命令查看java线程是否阻塞    其中简单介绍一下如何利用日志定位问题:       对每个项目依赖的服务,比如:http,redis,hbase,mysql,memcached,kafka添加访问时长的日志,对超过设置阀值的信息输出到同一个单独的日志文件中,当出现服务慢等问题时,打开该文件就 ...
根据以往经验总结一下架构设计的要点,记录下来,以后定期修整并添加新的感悟: 1. 了解需求,对现有需求,未来可能的需求均要了解,需求变化很正常,从架构层面做到开闭原则,以便可持续发展,如何做到,比如osgi这 ...
   在8月5、6、7连续三天晚上10点出现充值相关几个消息堆积的问题,经过分析发现主要问题是充值项目对mq的使用存在一些不合理的地方,当mq负载高时会出现堆积现象。 具体原因如下:    1、采用的消息模式是get模式,而不是高效的deliver模式,经过在新搭建的mq服务器测试发现,get模式:5000条/秒便会出现严重堆积, deliver模式:20000条/秒不会堆积,如果按照充值项目的写法由于存在后续的问题,每秒几百条的写入就会经常出现消息堆积;   2、消息的生产和消费共用mq链接和channel      a)    共用链接会导致:当触发mq的限流控制时,阻塞消费; ...
Hbase的RPC主要由HBaseRPC、RpcEngine、HBaseClient、HBaseServer、VersionedProtocol 5个概念组成。 1、HBaseRPC是hbase RPC的实现类,核心方法: 1)、RpcEngine getProtocolEngine():返回RpcEngine对象 2)、<T extends VersionedProtocol> T waitForProxy():调用RpcEngine的getProxy()方法,返回一个远程代理对象,比如:第一次访问HRegionServer时需要执行该方法,设置代理后,会缓存该对象到HC ...
在android里,有4种activity的启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance”   它们主要有如下不同:   1. 如何决定所属task “standard”和”singleTop”的activity的目标task,和收到的Intent的发送者在同一个task内,除非intent包括参数FLAG_ACTIVITY_NEW_TASK。 如果提供了FLAG_ACTIVITY_NEW_TASK参数,会启动到别的task里。 “singleTask”和”singleInstance ...
Activity在屏幕当中显示的方向。属性值可以是下表中列出的一个值:   "unspecified" 默认值,由系统来选择方向。它的使用策略,以及由于选择时特定的上下文环境,可能会因为设备的差异而不同。 "user"
android.permission.ACCESS_CHECKIN_PROPERTIES允许读写访问"properties"表在checkin数据库中,改值可以修改上传( Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded)     android.permission.ACCESS_COARSE_LOCATION允许一个程序访问CellID或WiFi热点来获取粗略的位置(Allow ...
Global site tag (gtag.js) - Google Analytics