系统实现
clamaa
这个作者很懒,什么都没留下…
展开
-
Java多线程简单实现取消和进度
Java中简单实现多线程调度时的可取消和显示进度 一个简单的多线程调度实现,统一开始,为了使得所有线程统一开始,类似运动员在听到发令枪时一起进行,使用了CountDownLatch进行控制。CountDownLatch beginLatch = new CountDownLatch(1);CountDownLatch endLatch = new CountDownLatch(...原创 2013-03-25 10:39:03 · 293 阅读 · 0 评论 -
JedisCluster中应用的Apache Commons Pool对象池技术
对象池技术在服务器开发上应用广泛。在各种对象池的实现中,尤其以数据库的连接池最为明显,可以说是每个服务器必须实现的部分。 apache common pool 官方文档可以参考:https://commons.apache.org/proper/commons-pool/。 结合JedisPool看Commons Pool对象池技术 结合JedisPool,我们来了解一...2016-07-19 08:31:13 · 224 阅读 · 0 评论 -
RedisCluster读写分离改造
RedisCluster模式启动的环境中,通过Redis中的每个连接,都可以访问 cluster nodes 访问到所有的服务器列表以及其所处于的角色(master/slave)。对于RedisCluster来说,在实际运行时,只会访问到其中的master节点,slave既不能用于write操作,也不能进行read。 原有JedisCluster Je...原创 2016-08-04 20:45:21 · 353 阅读 · 0 评论 -
MapReduce项目中的一个JVM错误问题分析和解决
最近一周都在查项目的各种问题,由于对原有的一个MapReduce分析数据的项目进行重构,减少了运行时的使用资源,但是重构完成后,在Reduce端总是不定时地抛出JVM的相关错误,非常随机,没有发现有什么特殊的规律性。问题在Reduce的控制台显示信息: Exception from container-launch: org.apache.hadoop.util.Shell$Exi...2014-10-17 10:28:25 · 169 阅读 · 0 评论 -
总结线上遇到的MySQL死锁问题
线上遇到了MySQL死锁的相关问题,需要查看MySQL出现的Deadlock日志,可以通过执行: show engine innodb status 来查看innodb类型数据库的状态,查找laster detected deadlock部分,可以看到最近造成死锁的两条sql ------------------------LATES...原创 2016-11-04 01:02:13 · 271 阅读 · 0 评论 -
项目中Map端数据处理不均匀性分析
Map任务的不均匀性 最近发现Map端数据越来越不均匀,而处理输入的数据,写到本地磁盘的数据量都差不多,我们随便拿出来两个attempt任务(当前map数量为64个),33和45,33的counter: 下面是000045的Counter数据 可以看出Counter中的数据也是差不多,但是CPU时间以及GC时间相差比较大(实际上以ms为单位,也就相差不太大)...原创 2014-10-23 22:41:25 · 94 阅读 · 0 评论 -
项目中Map端内存占用的分析
最近在项目中开展重构活动,对Map端内存尽量要省一些,当前的系统中Map端内存最高占用大概3G左右(设置成2G时会导致Java Heap OOM)。虽然个人觉得占用不算多,但是显然这样的结果想要试图去说服一些对内存占用非常挑剔的C++程序员们理由还是不够,于是便通过一定的方式对内存的占用进行了分析,刨根问底。 关于运行时内存占用可以参考文章:http://brandnewuser....2014-11-02 21:30:27 · 217 阅读 · 0 评论 -
Web项目中定时任务无法绑定SessionFactory的问题解决
正常我们在web开发中,由于需要在页面上或者脱离事务时使用到懒加载对应的对象,一般都采用Open Session In View模式。 Open Session In View OpenSessionInView 模式用法探讨,在没有使用Spring提供的Open Session In View情况下,因需要在service(or Dao)层里把session关闭,所...2016-03-04 22:17:46 · 88 阅读 · 0 评论 -
ApacheOFBiz的相关介绍以及使用总结(一)
由于最近一段时间在给一个创业的公司做客户关系管理CRM系统,限于人力要求(其实是没有多少人力),只能看能否有稳定,开源的半成品进行改造,而且最好不需要前端(js)相关开发人员的支援就可以把事情做成,经过一段时间(其实也就是1周)的调研,最好把目标锁定在OFBiz上。 OFBiz简介,什么是OFBiz OFBiz is an Apache Software Foundation ...原创 2016-03-13 15:03:24 · 362 阅读 · 0 评论 -
ApacheOFBiz的相关介绍以及使用总结(二)
OFBiz的实体配置 实体定义文件一般存放位置是在对应模块的entity文件夹下面,在该模块对应的ofbiz-component.xml配置文件中加入一行,用来声明实体定义文件路径: <entity-resource type="model" reader-name="main" loader="main" location="entitydef/enti...原创 2016-03-14 10:03:23 · 103 阅读 · 0 评论 -
微信公众号支付整体流程记录备忘
相比支付宝支付,微信公众号支付的实现以及过程真的是比较复杂,而且坑多,都是血泪史。 首先,需要登录微信公众平台,https://mp.weixin.qq.com 查看微信支付的开发配置,这里就可以看到对应的支付授权目录以及测试目录,可以选择使用线上作为支付测试,但是不推荐。使用测试授权目录时,注意需要设置测试白名单,规定哪些人可以进行支付测试。 ...2016-03-14 16:45:25 · 201 阅读 · 0 评论 -
微信APP支付整体流程记录备忘
支付整体流程见文档:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3 商户系统和微信支付系统主要交互说明: 步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。参见【统一下单API】。步骤3:统一下单接口返回正常的pr...原创 2016-03-15 17:21:32 · 157 阅读 · 0 评论 -
ApacheOFBiz的相关介绍以及使用总结(三)
Ofbiz中还提供了一些基础性服务,可以直接用来使用,下面就简单介绍说明一下。 ofbiz邮件发送服务 ofbiz中提供发送邮件相关功能:sendMailFromScreen context.get(“userLogin”),可以拿到当前登录用户的所有信息,其中的属性 userLoginId用户登录ID,可以用于获取用户登录的相应信息。 发送邮件的...原创 2016-03-19 22:32:01 · 147 阅读 · 0 评论 -
Spring主从数据源动态切换
参考文档:http://uule.iteye.com/blog/2126533http://lanjingling.github.io/2016/02/15/spring-aop-dynamicdatasource/ 我们的需求达到的目标和现有的条件: 不同类型数据源都可能存在master和slave区分;数据源之间已经可以通过package区分,不同pack...2016-05-18 13:43:36 · 157 阅读 · 0 评论 -
一种SequenceFile的格式研究
最近仔细研究了以下公司中使用的SequenceFile文件格式,SequenceFile的格式比较紧凑,实现了从中间读取文件内容(便于hadoop将文件进行适当地切分),同时也可以支持仅读取文件的元数据功能。 概述经过总结后的文件格式图大概如下: 其中进入到SequenceFile的所有记录,都需要根据一定的hash规则确定一个HashKey。相对而言,记录块是比较简单的,...原创 2014-10-08 23:00:56 · 93 阅读 · 0 评论 -
Solr-DIH建立索引并执行简单初步的查询
我们将solr的安装目录设置为$SOLR_INSTALL, ./solr start,不使用任何原有的examples来进行,启动完成后,不存在任何的core,提示No cores available。 在手动执行Add Core操作时,需要保证instanceDir和dataDir事先必须存在,以便能够建立目录成功。 根据错误提示,目录应该建立在$SOL...2016-05-04 13:40:31 · 98 阅读 · 0 评论 -
eclipse插件开发简介
1. 概述eclipse最初是由IBM公司开发的下一代IDE开发环境,现在由eclipse基金会管理。eclipse已经成为最流行的Java IDE。 说起eclipse,就离不开OSGi。自从eclipse3.0开始,其内核被移植到OSGi框架上,OSGi的bundle也成为插件的同意词。可以说,想要深入地了解eclipse插件开发,就必须同时对OSGi的相关内容进...原创 2014-05-27 08:48:23 · 459 阅读 · 0 评论 -
SWT/JFace中Table相同列多种类型CellEditor以及参照类型编辑器的实现
JFace的TableViewer中,通过方法TableViewer.setCellEditors(…)方法可以设置每一列对应的CellEditor。但是如果这样做的话,就会导致无法根据当前行的信息来设置不同的CellEditor,这里介绍一种可以根据不同行设置同一列对应的CellEditor: EditingSupport。 TableColumn paramNameColum...原创 2014-05-27 11:59:59 · 426 阅读 · 0 评论 -
SWT实现简易Cron表达式编辑器
1. 关于Cron表达式这部分内容参考了http://blog.csdn.net/tiwen818/article/details/69881051.1 表达式格式一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。 {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} 1.2 ...原创 2014-05-29 09:01:42 · 214 阅读 · 0 评论 -
eclipse更新站点(update site)的建立
我们在进行eclipse插件开发时,通常通过分发jar包的方式将插件文件包发送给使用的人安装。通常的安装eclipse插件方式是直接copy到对应的eclipse/plugins目录下(或dropins, link方式),这种方式虽然简单,但是在插件文件更新(版本升级)时通常还需要再次分发插件文件包,进行本地安装,非常不方便。 经过严格设计(这考虑到OSGi组件、服务的松耦合)的...原创 2014-06-12 13:33:39 · 1998 阅读 · 0 评论 -
使用DOSGi在OSGi环境下发布Web Services
前言Apache CXF是一个开源的服务框架项目,而Distributed OSGi子项目提供了基于OSGi远程服务规范的分布式组件实现。它使用Web Services,HTTP上的SOAP手段实现了远程服务的功能,对外暴露了WSDL规约。本篇就是介绍使用dosgi在OSGi环境下将OSGi的服务暴露成Web Services的过程。 DOSGi的项目主页:http://cxf.a...原创 2014-06-15 17:20:21 · 138 阅读 · 0 评论 -
一个简单的Java Web项目搭建流程
今天试图在服务器上搭建一个web服务器,顺便回顾了java web项目的入门,使用Servlet处理HTTP请求,并记录日志等操作。当很久没有做过web项目时,有些东西还是很容易忘记的。 Maven配置使用maven进行整个项目的构建,使用intellij idea IDE,填写完groupId和artifactId之后,声明packaging元素为war包,在build...原创 2014-07-05 19:02:57 · 110 阅读 · 0 评论 -
Equinox容器的搭建
OSGi是基于Java的服务平台的规范,本质是将Java面向对象的开发转向面向组件和服务的开发,具有服务组件模块化,动态加载应用等特点。Equinox 则是Eclipse所使用的OSGi框架,是Eclipse强大的插件体系的基础,是Eclipse著名的PDE开发环境的底层,Eclipse的稳定可靠性也为该框架带来了声誉。 Equinox是EclipseRT工程的一部分,为Eclipse...2014-02-18 13:51:03 · 111 阅读 · 0 评论 -
扩展ant实现Web Service调用
背景NC规则系统需要与持续集成对接,需要在进行持续构造的过程中与Hudson集成,让持续构造工具能够时刻执行规则系统中的规则,并生成结果。为了满足这个要求,在OSGi端分离了单独的Equinox OSGi容器,把规则执行所使用的bundle部署至容器中,并通过/cxf-dosgi-ri-singlebundle-distribution对OSGi中的声明式服务包装,发布成Web Ser...2014-02-18 16:43:13 · 107 阅读 · 0 评论 -
JPA基本介绍以及使用
JPA即Java Persistence Architecture,Java持久化规范,从EJB2.x版本中原来的实体Bean分离出来的,EJB3.x中不再有实体Bean,而是将实体Bean放到JPA中来实现。可以说,JPA借鉴了Hibernate的设计,JPA的设计者就是Hibernate框架的作者。 JPA的底层实现是一些流行的ORM框架,比如Hibernate,Ecl...2014-12-27 22:40:46 · 108 阅读 · 0 评论 -
Spring MVC中发布Restful Web服务
对于企业应用来说,数据是许多业务的命脉,软件通常是可替换的,但是多年积累的数据是永远不能替换的。 近些年来,以信息为中心的表述性状态转移(Representational State Transfer, REST)已成为替换传统SOAP Web服务的流行方案,为了帮助Spring开发人员,Spring3.0以上的版本中封装了对REST的良好支持。Spring对REST的支持是构建...原创 2015-01-02 23:43:33 · 162 阅读 · 0 评论 -
记一次数据处理效率优化过程
我们最原始的产品使用hive来进行数据分析和处理,由于我们的业务模型所限制,往往需要经过多轮的MR来完成任务,经过多轮的优化,虽然取得了一定的成果,但是执行速度还是不能满足产品的要求。 其实,当时考虑使用hive,是由于其基于SQL良好的扩展性为前提的,也就是说,以后我们在增加功能的时候,修改的部分很少,只需增加一些where,group by条件,就可以达成目的,hive也确实能...2015-03-25 14:19:12 · 96 阅读 · 0 评论 -
Spring的事务管理
虽然我们在用Spring的事务管理,但总体感觉使用的时候未知(未搞懂)的概念还是挺多的,心里总是没有底,在使用的过程中也比较容易用错误的方式来实现。 关于Spring声明式事务,具体可以参考下面这篇文章: http://www.cnblogs.com/hellojava/archive/2012/11/21/2780694.html 目前我们使用的是第五种方...2016-04-13 21:46:00 · 111 阅读 · 0 评论 -
APP推送通知相关实现
关于推送通知,iOS推送主要是通过服务端来实现的,相关过程可以参考下面两篇文章: http://cshbbrain.iteye.com/blog/1859810 http://zxs19861202.iteye.com/blog/1767727 文章中介绍的jar包列表: bcprov-jdk16-145-1.jarcommons-io-2....2016-03-21 17:08:20 · 144 阅读 · 0 评论