代码改变世界

带上下限的红包算法实践总结

2017-03-03 14:01 by hduhans, 2665 阅读, 2 推荐, 收藏, 编辑
摘要:最近项目开发中遇到一个随机红包需求,与微信红包不同的是,我们项目需要设置随机上下限范围,避免每位用户分配到的红包差距过大,从而导致大多用户的抱怨。 一、需求分析与实现-带上下限对称随机红包算法 网上有很多关于微信红包的实现算法,笔者也特意请教了一位曾经参与红包算法的大牛,最早期的微信红包算法完全是按 阅读全文

基于spring的aop实现读写分离与事务配置

2016-11-11 19:23 by hduhans, 1770 阅读, 0 推荐, 收藏, 编辑
摘要:项目开发中经常会遇到读写分离等多数据源配置的需求,在Java项目中可以通过Spring AOP来实现多数据源的切换。 一、Spring事务开启流程 Spring中通常通过@Transactional来声明使用事务,我们先来研究一下Spring是如何开启事务的。调试代码,可以发现进入事务方法体内前,会 阅读全文

使用nginx-http-concat添加nginx资源请求合并功能

2016-07-14 13:55 by hduhans, 3626 阅读, 0 推荐, 收藏, 编辑
摘要:web项目中有时候一个页面会加载多个js或css资源请求,导致页面加载耗时较长,这时优化的方向可以采用资源合并,可以在客户端事先合并,也可以在服务端进行资源合并,服务端合并的方式使用起来更灵活。 nginx-http-concat是阿里云开发的nginx开源组件,可以在nginx编译安装时添加模块, 阅读全文

PHP服务器配置环境变量

2016-06-22 16:42 by hduhans, 2562 阅读, 0 推荐, 收藏, 编辑
摘要:我们写的PHP应用程序,通常会分别在本地、开发、测试、RC、生产环境中运行,不同环境中全局变量各不相同。通常简单的部署做法是,每次部署到一个环境,都需要先修改对应的全局变量,然后再部署代码。如果部署频率很高,则这种部署方案比较耗费人力,同时也会增加生产环境的部署风险。 如果将各种环境的差异配置在服务 阅读全文

只需三步--轻松反编译Android Apk文件

2015-12-20 12:17 by hduhans, 682 阅读, 0 推荐, 收藏, 编辑
摘要:安卓程序是通过java语言进行编写的,可以很容易进行反编译。很多apk文件被反编译后再二次打包,就成了自己的产品,很是流氓。下面我们来看看如何进行apk的反编译,以及常用的防反编译手段。 一、反编译APK文件 1、第一步 将apk文件在pc上进行解压,解压后拷贝classes.dex文件。 2、第二 阅读全文

使用mybatis-generator自动生成映射配置

2015-11-01 21:08 by hduhans, 946 阅读, 0 推荐, 收藏, 编辑
摘要:使用mybatis时,编写实体类与数据库的映射是一项繁琐的工作,很容易出错,而mybatis-generator工具很好地解决了这个问题。一、工具下载与配置 下载地址:①https://github.com/mybatis/generator/releases; ②http://pan.bai... 阅读全文

Hadoop2.x的Eclipse插件编译与安装

2015-06-16 16:05 by hduhans, 3141 阅读, 0 推荐, 收藏, 编辑
摘要:Eclipse的Hadoop插件在开发hadoop应用程序中可以提供一些很方便的操作,可以直接Eclipse中浏览HDFS上的文件,可以直接新建选择MapReduce项目,项目自动包含所有需要的hadoop jar包,不必再手动拷贝。一、安装Ant工具 Ant是一种Java的项目打包管理工具,... 阅读全文

Hadoop平台常用配置及优化建议

2015-06-09 15:42 by hduhans, 4230 阅读, 0 推荐, 收藏, 编辑
摘要:当发现作业运行效率不理想时,需要对作业执行进行性能监测,以及对作业本身、集群平台进行优化。优化后的集群可能最大化利用硬件资源,从而提高作业的执行效率。本文记录了在hadoop集群平台搭建以及作业运行过程中一些常用优化手段,在使用中会不断补充,不断翻阅。一、对应用程序进行调优1、避免输入大量小文件... 阅读全文

使用MapReduce实现join操作

2015-06-07 15:28 by hduhans, 3335 阅读, 2 推荐, 收藏, 编辑
摘要:在关系型数据库中,要实现join操作是非常方便的,通过sql定义的join原语就可以实现。在hdfs存储的海量数据中,要实现join操作,可以通过HiveQL很方便地实现。不过HiveQL也是转化成MapReduce来完成操作,本文首先研究如何通过编写MapReduce程序来完成join操作。一... 阅读全文

Hadoop等软件常见运行问题及解决办法

2015-06-06 20:41 by hduhans, 265 阅读, 0 推荐, 收藏, 编辑
摘要:Hadoop常见问题及解决办法1、问题:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries 解决:在程序中添加hadoop.home.dir设置,如:“Syste... 阅读全文