自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 问答 (3)
  • 收藏
  • 关注

将博客搬至CSDN

将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN

2014-10-18 11:21:39 108

原创 Solr 全文索引详解(一)

本系列文章系翻译整理官方文档,结合实践的总结而来。1. 概述Solr是一个基于lucene的开源全文索引引擎。具有良好的伸缩性,并且具有良好的可编程性,支持多种插件。本文档提供简单的基础技术支持,包含了部署的步骤、solr数据类型定义、索引与基础数据操作、搜索等方面。本文档介绍的内容基本属于Solr4.x(1.4)。2. 部署SolrSolr的部署非常简单,...

2014-07-23 17:32:46 367

Solr 初探

Solr似乎是目前开源界比较流行的全文索引工具了。译自Solr官网。http://lucene.apache.org/solr/index.htmlSolr的主要特点:包含强大的全文索引,搜索关键词高亮,接近实时的索引,数据库集群整合,丰富的文档支持。Solr是高可用的,伸缩性强的,容错性高的,并且提供分布式索引的功能。Solr为客户端提供近REST风格的API,支持X...

2014-06-12 19:07:10 146

LVS的几种链接模式

本文系本人从LVS官网译来。官网地址:http://www.linuxvirtualserver.org/Virtual Server via NAT(NAT)处于安全考虑,很多服务器都会使用内网地址,而不与外网直接相连,NAT是一个根据IP地址来映射的工具。当用户要访问集群提供的服务的时候,请求的报文首先会到达虚拟Ip(VIP)指向的负载均衡服务器。负载均衡服务器会检查请...

2014-06-05 14:35:07 150

TDDL 配置数据源

TDDL用diamond来配置数据源参数,但是这个配置的参数着实复杂,这里记录一下。TDDL里有两种数据源,对应到两种使用方法。1、TAtomDataSource的配置这是最基本的数据源,用来做 动态创建,添加,减少数据源等配置:GlobaldataId组成规范: com.taobao.tddl.atom.global.${dbKey}配置内容:ip ...

2014-05-08 17:06:20 611

Maven 常用命令

Maven其实挺强大的,一直想研究,但是又懒得去研究,现在发现广大开源社区的项目都用上了maven,没有了maven还用不了开源了,迫不得已只能开始研究maven了。但是我还是不喜欢过度封装的技术,所以maven在eclipse中的什么乱七八糟的插件都没装,还是喜欢知根知底的操作,不容易出问题。这里记录一些常用的命令作为备用。mvn eclipse:eclipsemvn...

2014-04-27 18:10:45 82

taobao diamond

taobao diamond是一个c-s结构的配置中心,存储全局统一的配置信息,并且支持发布订阅/可用性比较高下面是从《阿里中间件博客》里挖出来的一些文章,留着备用。简介和快速使用:http://jm-blog.aliapp.com/?p=1588核心原理介绍:http://jm-blog.aliapp.com/?p=1592diamond架构:http://jm-blog...

2014-04-14 17:06:53 153

java 对象内存膨胀与Set内存占用问题研究

遇到一个有意思的业务。有两个单列文件,一个500M一个700M,共1.2G,2E个数据,要将这两个单列文件中的数据提取出来去重。最简单的思路,理论大小为1.2G的数据塞进Set里直接去重,发现程序跑着跑着就跑不动了,用jstat查看,发现原来没有赋予初始化参数,默认的初始化堆内存太小,导致程序跑不动。[b]于是在启动的时候加上了-Xms3000m -Xmx3000m[/b]...

2014-01-22 14:23:41 729 1

服务器启动与本机IP获取问题

启动一个服务器的时候,服务器端需要做Socket的绑定,以前没有仔细的研究过这一块的API,今天做了一些研究,特此记录按照一般的思路,绑定一个Socket,首先要查找到本机的IP地址,查找本机的IP地址有两种思路:1、是直接取物理设备的信息,然后去筛选; 优点:绝对不会漏IP 缺点:不能直接定位想取的IP,可能会取到虚拟机的IP,外网IP、内网IP一堆IP2、是...

2013-12-05 19:17:05 241

Java读取Classpath文件

Classloader是从classpath中读取资源的一个类,一般我们用classloader来加载class,实际上,但凡是处在classpath中的文件,我们称之为资源,都可以用classloader来读取。在java中的API里,有两种方式来使用classpath读取资源。[code="java"]System.out.println(Bootstrap.class.get...

2013-12-04 20:10:25 907

ClassLoader的一次探索

来自深入java虚拟机的介绍,关于JVM加载class的原理,主要有几个重点。1. ClassLoder的种类内置的ClassLoader有3种,一是BootstrapClassLoader,这是根loader,负责加载JDK中的核心类库,如:rt.jar、resources.jar、charsets.jar等;二是ExtensionClassLoader,负责加载Java的扩展类库,...

2013-11-13 15:59:42 57

JDK调优工具的研究

JVM 调优工具研究JDK自带了一系列的工具,一般可用于JVM的调优实践,这里做一个研究。1、jpsjps工具可以查看到当前机器上运行的Java程序的JVM进程id,这个id通常是后续其他工具使用的基础。另外,jps工具还有一些其他的参数,可以允许我们查看到Java程序的启动参数和当前JVM的启动参数。exp: [root@test13 tmp]# jps8...

2013-10-15 17:08:51 112

Android 对apk进行重新签名

由于某些限制,会有这样的需求:拿不到apk源码的情况下要对其中的一些资源进行修改,在Android签名的限制下,直接解压修改会导致签名不一致,这样的apk文件在手机上是无法被安装的,这样就只能对apk进行重新签名来生成新的apk包。从另外一个角度上来说,这也是从系统的级别来保证安全:一个被特定私钥签名的apk是无法被篡改且无法抵赖的。要对apk进行重新签名,首先要生成自己的公私钥对,然后删...

2013-07-29 12:57:32 419

Redis 应用示例

在大数据高并发的背景下,数据库就成为了性能的瓶颈,这时在架构设计的角度上,都会在DB层上加一层缓存。Redis就是这样一种缓存,普遍应用于互联网的业务中。相较于memcache,作为缓存从性能上说二者都非常优秀,都是符合需求的,区别在于redis在数据结构上选择更多,不是纯粹的K-V;redis自带有持久化的功能,可以定期将内存数据写进磁盘。Redis中支持5种数据类型,分别是...

2013-06-03 17:43:53 69

ZooKeeper的应用场景

根据ZK的官方文档,ZK在分布式的环境中提供协调服务可以提供几大保障:1、同步性,客户端提交的更新会按照其提交的顺序执行。2、原子性,更新要么成功要么失败,没有中间状态。3、单一镜像,客户端不管连接哪一个ZK服务器,都将看到同一个结果。4、可靠性,一个更新一旦提交,将持久化5、timeliness, The clients view of the system is guara...

2013-05-31 15:40:39 103

ZooKeeper 应用概述

ZooKeepr, 其官网对它的描述为:A Distributed Coordination Service for Distributed Applications。 译为,为分布式应用提供分布式的协调服务,在我的理解里,就是协调和管理分布式服务。这里的核心概念是Coordination,协调。在实际的生产环境中,大型的系统往往有很多服务器构成一个个服务模块来组成一个完整的系统,这些服务...

2013-05-31 14:31:10 82

Andengine 学习笔记 - 图片处理

选关界面中有一个对图片进行加灰处理的操作,看了一下引擎中Entity的源码,其中有一个Color属性,原来以为这个属性代表的是颜色,仔细的研究之后发现Color属性并不完全代表实体的颜色,它代表的是对实体整个图像的处理,除了颜色之外还有色相、亮度、饱和度。Andengine有个ColorUtil工具类可以根据属性值来生成Color对象。[code="java"]/** * @...

2013-05-22 14:43:55 102

Andengine 学习笔记 - 山寨保卫萝卜的总结

出于练手的目的,山寨了一个保卫萝卜,过程中有一些经验和教训,记录一下,备忘。一、框架设计对于游戏来说,引擎已经替我们完成了底层绘图的操作,而我们只需要管理图片的加载和生成逻辑上的各个实体,这样整个游戏很好模块化:资源模块、实体模块、管理模块。1、模块之间的访问会比较频繁,所以使用的是中介者模式,以减少模块之间的耦合;2、管理模块中对于被管理的所有实体,必须池化以减少内存开销...

2013-05-20 14:11:46 145

Andengine 学习笔记- 事件的传递

在Andengine的API中,Andengine负责捕获触摸事件,如果我们需要监听触摸事件,则需要向Scene注册。[code="java"]mScene.registerTouchArea(touchArea);[/code]通过查阅IToucheArea的源码发现[code="java"]@Override public boolean contai...

2013-04-09 18:49:41 91

Andengine 学习笔记-整体框架认知

浏览了一下Andengine的源码,总结一下整个Andengine的框架的抽象方法。大体上来说,Andengine的API分为几类,一类关注于图像的处理:如何将图片资源从文件读取到内存,并且做好缓存等管理工作;一类则关注于构建游戏:将整个游戏画面抽象为一个一个的Scene、每个Scene里又有一层一层的图像。图像处理的API又有两层抽象,第一层是图像本身的抽象,父接口是ITextu...

2013-04-07 14:52:51 100

原创 Andengine 学习笔记- 加载图片的方法

在Andengine的世界里,一切看到的对象都是Entity,而Entity需要由图片来装饰才是我们真正看到的东西。这里的图片在Andengine里就是Texture(通常翻译为纹理,不过LZ不太喜欢这个翻译,太生硬)。这里总结一下将图片资源Load到内存成为Texture的几种情况。1、 Load单个的图片 首先要生成一个Atlas(纹理地图), 这个地图可以容纳很多的...

2013-04-02 17:38:46 99

Android 声明自身为应用市场

Android的启动Activity中有一些有意思的category,其中有一个功能是可以把自身声明为一个应用市场,在一些机型上,系统按照这种category来找到这些特殊的Application,这里就是应用市场。点击菜单上的按钮就可以找到机器上所有的注册过的应用市场。 <activity android:name=".LoadingActivity"...

2013-03-07 15:35:20 108

Android 修改默认的ProgressBar的动画效果

自定义Loading动画可以有一种最简单的方法:修改ProgressBar默认的动画。   <ProgressBar android:id="@+id/pro_loading" android:layout_width="19dp" android:layout_height="19dp...

2013-02-28 20:10:54 274

探索Android 下拉刷新效果的实现

下拉刷新的功能很常见,以新浪微博为例,下拉刷新获取新的微博。 这里也有两种实现的思路,一种有点类似于前面介绍的置顶标题的实现,即动态的画出下拉刷新这个View,但是LZ经过了很多尝试,发现和ListView的结合不是很好,所以没有成功,故而放弃,转向第二种思路,也就是网上资料比较多的一种思路:利用ListView的head来实现。 这里有几个最重要的点:1. 如何展现和隐藏h...

2013-02-01 12:48:32 86

探索Android 滑动置顶标题的实现

滑动置顶标题在QQ中的好友列表、Android的通讯录中可以见到,用户在滑动的时候可以随时看到当前的内容的标题。 这个效果的实现,思路是在Android的Listview的顶部动态的生成一个与标题等高等宽的View,并且实时监听Listview滑动的状态,当Listview滑动到第一项和第二项的标题不一致的时候,动态的重画View,让它有一种向上滑动的效果,当完全滑出以后再重画生成新的...

2013-01-29 14:19:37 350

探索Android 滑动主界面的实现

滑动主界面也是UI设计中常用的一种,实现的效果可以类比QQ的主界面。 滑动的实现其实比较简单,Android内置了一个组件叫做ViewPager,只要使用这个组件,就可以轻松的实现主界面的滑动。 这个组件相对简单,不多说,上干货 附带侧边栏开发传送门 http://ygydaiaq-gmail-com.iteye.com/blog/1775395...

2013-01-28 12:53:37 115

原创 探索Android 侧边栏开发的方法

看到人人网的客户端,不管是ios还是android都有好看的侧边栏滑动的效果,点击上部的按钮可以滑动展开侧边的目录。觉得这个效果比较炫,所以研究了一下实现的方法。关于滑动,实现的思路大概有两种, 一种是利用ScrollView的滑动效果来做,另外一种就是直接使用Animation来作了。 1、使用ScrollView来实现ScrollView的使用是规则是,当View的Size大于屏幕的边界的...

2013-01-25 11:16:00 175

Linux中root用户找不到JAVA_HOME

    折腾虚拟机环境的时候遇到了这样的问题,root用户找不到JAVA_HOME,但是普通用户可以找到。       在Ubuntu环境中安装好Java环境后设置环境变量:在/etc/profile中设置好了JAVA_HOME变量并引入到PATH中,用于Ubuntu默认是不以root用户登录的,这时echo $PATH可以看到JAVA_HOME已经被设置好了,java命令也可以执行。接下...

2012-12-06 18:42:34 445

原创 Hbase 学习笔记(四): Hbase的架构和实现原理

一、架构思路    Hbase是基于Hadoop的项目,所以一般情况下我们使用的直接就是HDFS文件系统,这里我们不深谈HDFS如何构造其分布式的文件系统,只需要知道虽然Hbase中有多个RegionServer的概念,并不意味着数据是持久化在RegionServer上的,事实上,RegionServer是调度者,管理Regions,但是数据是持久化在HDFS上的。明确这一点,在后面的讨论中,...

2012-11-22 16:03:26 285

Quartz的故障恢复

     在默认的情况下,Quartz中所提交的任务都是独立的运行在内存中的线程,这意味着一旦机器出现故障或任何原因这个线程被干掉,那么提交的任务就无法继续也无法恢复。如果我们想要在系统出现故障的情况下恢复Quartz中的任务,就要把当前任务状态持久化,然后在系统恢复之后恢复任务的执行,这就是基本的解决思路。Quartz在这方面也提供了支持。      首先,持久化的问题。要进行恢复就要...

2012-11-19 16:45:31 1191

神奇的线程安全问题

    读完了《Java并发编程实践》这本书以后,以为对一般的线程安全问题有一个大概的理解,但是今天遇到的这个问题着实非常神奇,在书中也没有被提到过,这里特别记录下来。 public class Test { public void test1(O o) throws Exception { System.out.println("begin o:" + ...

2012-11-09 20:11:35 48

Hbase 学习笔记(三):管理模块

    上一篇我们介绍了对Hbase中数据的一些高级的操作,至此,我们可以很好的管理和操作Hbase的数据了,这一篇将主要介绍Hbase提供的管理(Administrative)模块,可以让我们完成类似RDBMS中的DDL操作,即,表定义、管理表结构、管理集群状态等。下面介绍的API都出自HBaseAdmin对象。一、表定义    在Hbase的API中,代表一个表结构的类叫HTableDes...

2012-11-09 16:07:59 72

原创 Hive 常用命令小记

hadoop job  -Dmapred.job.tracker=master:9001 -kill job_201210301532_0351 命令可以把已经提交的mapred任务干掉,kill后面的参数可以在web管理界面上查到 LOAD DATA LOCAL INPATH '/usr/local/hive-0.7.1/bin/go.log' OVERWRITE INTO TABLE ...

2012-11-07 15:08:10 96

原创 Hbase 学习笔记(二): 高级模块

    上一篇介绍了Hbase在操作数据中的基本的API,包括增删查。增删都是相对简单的操作,与传统的RDBMS相比,这里的查询操作略显苍白,只能根据特定的主键查询(Get)或者根据主键的一个范围来查询(Scan)。Hbase提供了更加高级的过滤器来查询,当然还有另外一些高级的模块,我们将在这一篇里看到。一、过滤器(Filter)    基础API中的查询操作在面对大量数据的时候是非常...

2012-11-05 20:05:10 218

Hbase 学习笔记(一): 基础客户端API

一、环境  在Hadoop上快速搭建Hbase环境非常简单,下载软件包解压以后写好配置文件就可以直接运行了,不多作叙述。 二、基础客户端API1、Bytes类    Hbase中所有的值都是以字节数组的形式存在的,所以在使用客户端API和Hbase交互的过程中难免会经常的要操作字节数组,这里Hbase提供了一个工具类,Bytes类。其中有很多的静态方法可以方便的将各种类型的值转...

2012-10-31 11:22:39 127

原创 Quartz的使用心得

项目中要用到定时调度的功能,使用的是quartz,使用中遇到了一些问题,特地记下来。一、quartz概述quartz是一个任务定时调度的框架,支持定时的调用特定的方法,支持与Spring的整合。二、配置步骤quartz与Spring整合,需要一个配置文件来管理quartz中的类。 <?xml version="1.0" encoding="UTF-8" ?> ...

2012-10-29 15:17:51 91

原创 java socket建立连接的过程

1、 首先调用Socket类的构造函数,以服务器的指定的IP地址或指定的主机名和指定的端口号为参数,创建一个Socket流,在创建Socket流的过程中包含了向服务器请求建立通讯连接的过程实现。  2、 建立了客户端通讯Socket后。就可以使用Socket的方法getInputStream()和getOutputStream()来创建输入/输出流。这样,使用Socket类后,网络输入输出也转...

2012-04-17 10:26:21 712

分布式文件系统

分布式文件系统提供像访问本地文件那样访问远程文件的文件访问服务, 即允许用户使用网络结点中的文件。 特点: 用户像访问本地文件一样的访问网络文件,或者说用户的文件访问服务由分布式文件服务器来提供,文件的存储细节被隐藏,而用户的存储请求可以突破本地存储的限制。 分布式文件系统提供存储、管理、访问控制等服务。 体系结构: 由三个组件构成: 平面文件服务、 目录服务、 客户端...

2012-04-08 21:26:01 82

空空如也

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

TA关注的人

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