项目实践
文章平均质量分 86
crazzy_lp
这个作者很懒,什么都没留下…
展开
-
定时任务管理之java篇quartz使用
在开发过程中,我们经常会遇到一些需要异步定期执行的批处理任务。比如夜里低峰时段的备份、统计,或者是每周、每月对数据库表进行整理,这时就需要通过使用定时任务管理器来辅助我们完成这些任务的定时触发。常见的定时任务管理器多分为三类,分别是: ①操作系统(OS)级别的定时任务管理器,例如linux的crontab、windows自带的计划任务。OS级不用专门开启监听器,占用系统资...原创 2014-07-18 20:38:19 · 2298 阅读 · 0 评论 -
定时任务管理之Linux篇crontab使用
在工程项目中,难免需要用到一些定时执行的任务。对于java这种常驻内存的语言,比较容易解决,java自身就提供了定时任务,而且还有优秀的第三方开源工具quartz。但是像php、python这样脚本语言,定时任务就需要借助于操作系统的定时任务管理。不过python也有一个优秀的第三方开源插件celery完成定时任务的执行。这里我们就看一下linux操作系统定时任务管理器crontab...原创 2014-08-08 16:07:40 · 498 阅读 · 0 评论 -
认识缓存之客户端缓存
缓存的最后一层,是直接面对客户端的客户端缓存。通常也把这部分称为web缓存。web缓存位于客户端。缓存会根据进来的请求保存输出内容的复本,例如html页面、图片文件等,然后,当下一个请求来到时,如果是相同的URL,缓存直接使用复本相应请求访问,而不是向源服务器再次发送请求。 web缓存的具体实现是由浏览器来实现的。浏览器在计算机上开辟一块磁盘空间用于存储已经看过的网站的副本。...原创 2014-08-11 14:48:54 · 392 阅读 · 0 评论 -
认识缓存之Memcached【1】特点结构
一、认识memcached1、为什么使用memcached 随着互联网的发展,传统关系型数据库开始出现瓶颈,很多方面不能满足我们的要求:例如:①对数据库的高并发读写;②对海量数据的处理;2、memcached的特点 memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高web应用的速度和扩展性。memcached有如下优...原创 2014-08-12 13:44:42 · 132 阅读 · 0 评论 -
认识缓存之Memcached【2】安装使用
一、安装Memcached服务器1、在安装Memcached之前,必须先安装依赖库libevent,安装方法如下:wget https://github.com/downloads/libevent/libevent/libevent-2.0.15-stable.tar.gztar -zxvf libevent-2.0.15-stable.tar.gzcd libevent-2...原创 2014-08-12 14:39:29 · 159 阅读 · 0 评论 -
认识缓存之memcached【3】分布式部署
就像memcached章节【1】中“典型应用”结构图中表示的那样,很多时候1台memcached服务器根本不能满足我们的要求,需要布置多台memcached服务器。这个时候就需要我们解决如何将数据保存到多台memcached服务器上。有两种解决方案:第一种是普通Hash分布;第二种是一致性Hash分布。一、普通Hash分布1、普通hash分布,hash算法如下:functi...原创 2014-08-13 11:04:42 · 121 阅读 · 0 评论 -
认识缓存之redis【1】安装使用
redis本质上是一个key-value类型的内存数据库,它的功能比memcached强大的多。其中value可以是String、list、Set、Sorted Set、Hash等类型的数据结构。目前,已经有很多大型网站中大量使用。 在本次博客中,仅仅介绍redis作为缓存服务器的使用。有关redis数据库(事物处理、主从同步)特性和Redis与VM的后台操作不做详细介绍,如...原创 2014-08-14 11:33:34 · 91 阅读 · 0 评论 -
认识缓存之redis【2】特点结构
一、redis持久化 redis是基于内存的数据库,内存数据库有个严重的弊端;突然宕机或者断电时,内存的数据不会保存。为了解决这个问题,redis提供了两种持久化方式:内存快照(Snapshotting)和日志追加(Append-only file)。1、内存快照 内存快照方式是将内存中的数据以快照方式写入二进制文件中,默认文件名为dump.rdb。 redi...原创 2014-08-14 11:34:12 · 106 阅读 · 0 评论 -
python环境搭建【virtualenv实现环境隔离】
一、为什么要使用virtualenv 在python的实际开发过程中,会遇到python多版本共存的情况,当前常用的python版本有2.6、2.7以及经过重新设计的3.0+。在实际项目的开发过程中,这些版本都有可能采用,所以python多版本共存开发需要进行妥善处理。因此我们在linux服务器中需要安装多个版本的python环境,进行开发测试。在服务器中安装多个版本的python环境,...原创 2014-08-18 10:02:20 · 315 阅读 · 0 评论 -
通过shell脚本自动初始化python环境
在项目周期内需要经历三个过程,分别是开发、测试、部署。在这三个过程中,一般需要有三个环境分别与之对应,分别是:开发环境、测试环境和生产环境。为了维护这三个环境的一致性(至少是环境所提供的依赖库和功能一致)和环境的快速搭建,因此在项目的推进过程(环境搭建和代码部署)中,都强调实施的自动化。这时通过编写shell脚本可以满足这一需求。 像python这种脚本语言,有着强大的第三方...原创 2014-08-18 10:02:37 · 1391 阅读 · 0 评论 -
定时任务管理之python篇celery使用
一、为什么要用celery celery是一个简单、灵活、可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必须工具。他是一个专注于实时处理的任务队列,同时也支持任务调度。 celery是异步任务队列/基于分布式消息传递的作业队列。它侧重于实时操作,但对调度支持也很好。celery用于生产系统每天处理数以百万计的任务。 【注:何为任务队列?任务队列是一种...原创 2014-08-19 10:46:42 · 755 阅读 · 0 评论 -
详解RabbitMQ
一、介绍1、异步消息 异步消息是一个非常普通并且广泛使用的技术,例如Skype。这些服务都有如下特征:他们会在传输消息的时候或多或少加入一些随意的内容和一些比较正式的路由信息;他们都是异步的,也是就是说他们将生产者和消费者区分开来,因此可能将消息加入队列(例如某人发送给你一条消息,但是你不在线或者你的邮箱会受到一封Email)。生产者和消费者是具有不同知识的不同角色...原创 2014-08-21 15:13:39 · 222 阅读 · 0 评论 -
python与hive通信交互
一、python与hive1通信#!/usr/bin/python2.7#hive --service hiveserver >/dev/null 2>/dev/null&#/usr/lib/hive/lib/pyimport sysfrom hive_service import ThriftHivefrom hive_service.ttypes ...原创 2014-08-21 15:41:59 · 362 阅读 · 0 评论 -
hbase热点问题(数据倾斜)解决方案---rowkey散列和预分区设计
Hbase的表会被划分为1....n个Region,被托管在RegionServer中。Region二个重要的属性:Startkey与EndKey表示这个Region维护的rowkey的范围,当我们要读写数据时,如果rowkey落在某个start-end key范围内,那么就会定位到目标region并且读写到相关的数据。 默认情况下,当我们通过hbaseAdmin指定Tab...原创 2016-07-05 14:39:42 · 1868 阅读 · 0 评论 -
HBase Rowkey设计
一、HBase的Schema和cf列族1、Schema的创建修改 Hbase模式建立或更新可以通过Hbase shell工具或者Hbase java API中的Admin类。当列族发生变动时hbase表必须处于disabled状态。例如:Configuration config = HBaseConfiguration.create();Admin admin = new...原创 2016-07-07 15:00:23 · 254 阅读 · 0 评论 -
hbase rowkey 查询
一、hbase查询方式 hbase的查询实现只提供两种方式:按指定rowkey获取唯一一条记录:get方法。按指定条件获取一批记录:scan方法。 实现条件查询功能使用的就是scan方式,scan在使用时有以下几点值的注意:scan可以通过setCaching与setBatch方法提高速度(以空间换时间)scan可以通过setStartRow与setE...原创 2016-07-07 15:46:08 · 6851 阅读 · 0 评论 -
认识缓存之服务器缓存(varnish)
在没有任何优化的情况下,每个HTTP请求,web服务器都必须从服务器磁盘中读取请求页面的数据,然后发送给客户端。相对于内存访问速度来说,磁盘访问的速度极其缓慢。把要访问的页面缓存到内存中,下次访问直接从内存中读取,能有效加快web应用的访问速度。一、传统代理和反向代理 一般情况下,使用浏览器直接连接其他web站点取得网络信息,直接联系到目的站点服务器,目的站点服务器把信息...原创 2014-08-08 15:24:10 · 358 阅读 · 0 评论 -
认识缓存之服务器缓存(Nginx)
不管是前面介绍的Apache缓存还是现在要介绍的Nginx缓存,其实他们都借鉴了squid。随着web服务器的发展,web服务器的缓存功能已经越来越强大,通过配置使用web服务器的缓存功能,我们在很多时候已经没有必要去实用squid了。下面是Nginx的proxy_cache模块的介绍。二、Nginx缓存1、依赖组件 从Nginx-0.7.44版本开始,Nginx开始...原创 2014-08-08 10:52:33 · 360 阅读 · 0 评论 -
log4j的配置详解
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。在这里讲解log4j,一方面因为log4j在Java开发中是非常常用的日志输出控制部件,也是因为在hadoop中有一个flume组件,它监听数据的方式配置与这里非常相似,所以在这里...原创 2014-07-18 22:39:26 · 132 阅读 · 0 评论 -
java web编程web.xml详解
一般的java web工程中都会用到web.xml,web.xml在Java web工程的WEB-INF目录下,web.xml主要的功能就是用来配置站点信息,主要的配置项有:①站台的名称和说明;②针对环境参数(Context)做初始化工作;③Servlet的配置(包括Filter、Listener、Servlet);④Tag Library的对应;⑤JSP网页设定;⑥Mime Typ...原创 2014-07-19 17:20:40 · 432 阅读 · 0 评论 -
WebService编程详解之配置篇
一、采用CXF+Spring构建WebService服务端(1)在Myeclipse中创建一个web工程,并将Apache-cxf-2.3.x/lib中的jar包拷贝到:工程名\WebRoot\WEB-INF\lib下。(2)在工程中编写WebService的interface和implements,注意在编写接口和实现类的过程中需要应用到各种类型的Annotation,用来描述web...原创 2014-07-19 17:52:56 · 399 阅读 · 0 评论 -
WebService编程详解之Interceptor和Handler
一、有关调用CXF拦截器 1、拦截器概述 Interceptor是CXF架构中一个很有特色的模式。你可以在不对核心模块进行修改的情况下,动态添加很多功能。这对于CXF这个以处理消息为中心的服务框架来说是非常有用的,CXF通过在Interceptor中对消息进行特殊处理,实现了很多重要功能模块,例如:日志记录,Soap消息处理,消息的压缩处理。 在Interc...原创 2014-07-19 18:01:14 · 346 阅读 · 0 评论 -
WebService编程详解之安全应用
一、概述CXF 的 WS-Security 实现基于开放源码的 WSS4J 库。Axis2 代码也使用这个库,因此这两个堆栈的 WS-Security 配置细节有一些相似之处。但是,通过解释 WS-SecurityPolicy 配置 WSS4J 的代码层不一样。在 Axis2 中这由单独发布的 Rampart 模块处理,而在 CXF 中由 cxf-rt-ws-policy 和 cxf-rt...原创 2014-07-19 18:19:28 · 191 阅读 · 0 评论 -
WebService编程详解之客户端编写
一、wsdl2java用法wsdl2java -p com -d src -all aa.wsdl -p 指定其wsdl的命名空间,也就是要生成代码的包名: -d 指定要产生代码所在目录 -client 生成客户端测试web service的代码 -server 生成服务器启动web service的代码 -impl 生成web s...原创 2014-07-19 18:26:32 · 120 阅读 · 0 评论 -
SVN与测试环境集成
在上一章中讲述了非Apache模式的svn安装。安装完成svn后,就可以实现svn提交代码同步更新测试环境中的代码了(即实现svn和测试环境的集成)。 当然,我们在开发中会存在至少三套环境,即:开发自测环境(本地生产环境)、专业测试环境(与正式环境同步)、正式服务环境。要处理好三套环境中的代码管理,这也不是一件很容易的事情,需要根据各公司项目组的安排。我就不讲我们的处理方案了(呵呵保...原创 2014-07-28 11:20:56 · 332 阅读 · 0 评论 -
php读取word中的数据
1、安装antiword 下载地址:http://www.winfield.demon.nl/ 解压:tar -zxvf filename 安装:make && make install 安装过程中,自动安装到了/root目录下,只有root才能执行该命令,我们需要修改一下路径。copy到/usr中。 cp /root/bin/*antiword /usr/local/bin/ m...原创 2014-08-03 16:28:57 · 502 阅读 · 0 评论 -
制作百度文库文件转换环境准备
系统环境:CentOs5.5 用到的工具:ImageMagick,Openoffice 3,Openoffice-sdk 3,Jodconverter(这是一个jar包), Pdf2Swf tool,FlexPaper。网上找了些资料,早有人已经实现了这样的功能,结合网上的资料根据实现操作经验。记录并总结一下:整体思路如下:实现步骤: 1.图片和文档上传 2.图片和文档转成PDF 3...原创 2014-08-03 16:33:15 · 125 阅读 · 0 评论 -
如何才能做到网站高并发访问【转】
在这里我转发一篇文章【如何才能做到网站高并发访问】,去了解怎样架构才可以撑得起一个高并发访问的站点。并通过这篇文章的介绍,我们逐步深入学习文章中涉及到的技术。 作者:老男孩linux运维 文章地址:http://oldboy.blog.51cto.com/2561410/615721/ 高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”。...原创 2014-08-04 16:12:22 · 117 阅读 · 0 评论 -
认识缓存之理论篇
随着网络的发展,数据越来越多,从而导致运算压力越来越大,为了解决这个问题,就需要合理的分级计算机资源,充分利用已有资源。缓存的工作实际上就是资源的合理分配。 一个网站或者应用的一般形式是:浏览器发应用请求,应用服务器做一堆计算和逻辑判断后再向数据存储层发出请求,数据存储层收到请求后再通过计算把数据返回给应用服务器,应应用服务器再次计算后把数据返回给浏览器。这是标准流程。...原创 2014-08-05 14:23:53 · 121 阅读 · 0 评论 -
认识缓存之mysql查询缓存
mysql的query cache用来缓存和query有关的数据。具体来说Query cache有其特殊的业务场景,它不像其他的数据库产品,缓存查询语句的执行计划等信息;而query cache则是缓存客户端提交给mysql的select语句以及语句的结果集,就是将select语句和语句的结果做hash映射关系后保存在一定的内存区域内。一、工作原理 查询缓存的工作原理,...原创 2014-08-05 15:43:20 · 127 阅读 · 0 评论 -
认识缓存之Opcode缓存
一、php加速器介绍 一个php程序在运行完成后,内存马上释放,基本上所有数据都在此时销毁(仅有极少数据会缓存),也就是说此时计算机内存中基本上不存在这个php代码中的数据,这和常驻内存的java等语言有显著区别。这种缓存机制具有如下的优缺点: 优点:有效避免内存泄露,内存回收机制更简单,避免因为一个程序的问题而连累整个服务器。 缺点:无法复用已有数据,每个p...原创 2014-08-05 16:50:40 · 229 阅读 · 0 评论 -
认识缓存之文件缓存
一、文件缓存产生原因 文件缓存是把缓存数据存储到文件系统即硬盘文件中。与内存相比,硬盘属于比较慢的存储设备。那为什么还需要用到文件存储呢?原因如下:磁盘容量大,可以存放足够多的数据。现在的常规磁盘已经进入TB级别,但内存还处于GB级别。磁盘价格远远低于内存价格,通常只有同样大小内存价格的百分之一到十分之一;磁盘与内存相比更稳定更可靠,断电后数据不丢失,存储也比较简单可靠;...原创 2014-08-06 16:40:46 · 524 阅读 · 0 评论 -
认识缓存之服务器缓存(Apache)
当前web服务器功能异常强大,除了能够提供高性能的HTTP服务,还可以提供反向代理、页面缓存的功能。比较流行的web服务器如:Apache、Nginx。这些服务器都已经提供了成熟的插件,实现缓存功能。只需要我们在安装这些web服务器的时候,将所需的插件编译进去,并通过配置文件配置说明,就可以使用。一、Apache缓存1、依赖组件 Apache服务器从2.0开始就已经可...原创 2014-08-07 11:31:46 · 393 阅读 · 0 评论 -
oozie详解
1、什么是OozieOozie是一种java web应用程序,它运行在java servlet容器中,并使用数据库来存储一下内容: ①工作流定义 ②当前运行的工作流实例,包括实例的状态和变量Oozie工作流失放置在控制依赖DAG(有向无环图)中的一组动作(例如:hadoop的Map/Reduce作业、pig作业等),其中指定了动作执行的顺序。我们会使用hPD...原创 2014-11-20 16:10:48 · 1771 阅读 · 0 评论