自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

禤永豪

热爱编程热爱生活

  • 博客(27)
  • 收藏
  • 关注

原创 MongoDB上MapReduce的实现以及项目实例探索

0x01 数据存储结构前段时间发现公司原来的一个业务,使用mysql分月创建表记录用户登陆记录信息,在表数量达到千万级后,查询变得超级慢,并且时不时的卡死终端,为了解决这个问题,没有选择花大力气去优化,而是选择了使用MongoDB数据库去存储,记过几个月的数据存储,数据量早已达到五千万级别,但查询速度依然很快。MongoDB存储了大量的用户登录记录,文档结构如下:{ "_id" :

2018-01-12 15:35:46 2128 1

原创 细说在一次中间件开发中如何实现每次业务调用的唯一标识之流水号生成以及应用

在web系统中,谁也不能保证每一次的业务调用都能正常的执行,在这样的情况下,我们该如何去处理?如果能保证每一次的业务调用的结果都持久化到数据库,而出现异常后,能根据数据库记录去检索日志文件,定位到异常信息,进而分析异常快速找到异常产生原因,我觉得这是一个很好的处理方案,核心是确保每一次义务调用都可追溯。由于前段时间工作需要,写了一个消息推送的中间件,其中业务涉及到上述问题和解决方案,所以特

2018-01-11 13:19:20 2172

原创 spring上使用mybatis快速生成插件快速生成xml、model、mapper

你是否厌倦了每次用mybatis都要写一大堆配置文件?是否厌倦每一个sql操作都要写一大堆东西?好,厌倦就对了,这里献上快速生成方法。首先数据库得先来一个。一、建库建表 id name age 1342424252353 xyh 22create database testDB;use testDB;create table test(id varchar(20) pri

2017-08-10 16:23:50 2503 1

原创 在Spring项目中集成使用dubbo实现分布式服务

一、配置启动ZookeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。下载http://www-eu.apache.org/dist/zookeeper/配置Zookeeper安装目录的con

2017-08-09 11:30:31 3160

原创 在Spring项目中集成使用MongoDB

这里使用的是maven工程,所以依赖jar包都是pom.xml配置型式。pom.xml引入依赖<properties> <spring.version>4.3.5.RELEASE</spring.version></properties><dependency> <groupId>org.springframework.data</groupId> <artifactId

2017-08-09 11:19:22 6526

原创 MongoDB菜鸟入门(三):创建用户使用鉴权、使用聚合aggregate

一、创建用户创建管理员账户//以--auth启动数据库服务器mongod --dbpath=C:\data\shard\test --port 27000 --auth//以admin登录且切换到admin数据库mongo admin --port 27000//创建管理员db.createUser({user:"root",pwd:"12345",roles:["userA

2017-08-09 09:42:54 510

原创 MongoDB菜鸟入门(二):使用分片和主从副本实行高性能髙可靠数据库

上一篇简单的记录了一下本人的学习笔记,下面描述的是如何配置分片和主从副本集。一、分片由于使用一些传统的数据库(例:mysql等)数据存储量一旦达到某种程度后,查询操作可能会非常耗时,而使用某些内存数据库(例:redis等)则受内存空间大小的限制。而使用mongodb分布式数据库则可以解决此些问题。此处笔记记录了我个人使用了两个分片实践,由于没有更多的机器,此处仅使用单台主机实践。分片1(sha

2017-08-05 11:30:22 559

原创 MongoDB菜鸟入门(一):概念与增删改查、建立索引

一、启动指定–dbpath为存储文件夹,使用默认端口启动mongod.exe --dbpath c:\data\db二、windows添加服务若要把mongodb设定为windows服务mongod.exe --bind_ip yourIPadress --logpath "C:\data\dbConf\mongodb.log" --logappend --dbpath "C:\data\db" -

2017-08-05 11:06:21 687

原创 mysql数据库上使用定时器定时执行存储过程建表(月表)

最近有个需求,在mysql数据库中每个月建自动一个表,把该月的数据存储到该月对应的表中。一、创建存储过程期望表名: login_history_2017_07(login_history_YYYY_MM) 字段: id (int(11) primary key auto_increment) uid (char(10) not null) ip (char(200) not null)DE

2017-07-30 21:41:34 4504

原创 在spring使用activeMQ订阅多个topic并实现监听器监听

最近有个需求,在spring上集成activeMQ且订阅多个topic,并且需要实现监听器监听多个topic。一、maven依赖配置pom.xml<!-- activemq --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>4

2017-07-30 21:16:00 8406

原创 继承LinkedHashMap实现自定义HashMap设定条件触发删除eldest元素

分析LinkedHashMapLinkedHashMap是继承HashMap的一个子类,除了包含HashMap的方法外,还提供了removeEldestEntry方法,该方法在源码中实现:protected boolean removeEldestEntry(Map.Entry<K,V> eldest) { return false;}该方法好像没什么作用,先不要这么快急着下结论,让我们先

2017-07-17 16:08:43 4514 2

原创 探究java中String.replaceAll方法把换行符(\n)替换为明文显示(\n)为何需要四个反斜杠(\\\\n)

最近需要解析一个JSONArray类型的字符串[{"key":"姓名","value":"XX"},{"key":"资质","value":"从事贵金属投资行业10年国家期货二级分析师上金所荣誉长老"},{"key":"其他","value":""}]在key资质对应的value中包含三条分行显示的信息,那么坑就来了,当JSON解析遇到\n(换行)就会抛出异常,那怎么办? 还好,想到了一个对策

2017-07-13 14:22:20 28958

原创 Spring上设置mysql数据源动态切换(master写、slaver读)

一般情况下,很多项目(spring)由于对数据库(mysql)的并发量上来之后,都会配置主从机数据库,写数据使用主机数据库,而读数据使用从机数据库。那么如何使得对主从机数据源的使用能动态根据业务切换?一、一些配置和依赖1、一些需要的jar包由于我这边使用了maven,也用到了aspect、mysql,so附上maven依赖,方便copy。<properties> <spring.versio

2017-07-12 11:30:37 902

原创 在Spring上集成使用ehcache缓存框架以及实现集群缓存同步

周一第一天实习,老大给了个任务给我,让我看看j2cache两级缓存框架,然后我在开源中国了解到,开源中国目前就用到这个缓存框架,主要是为了减少redis的负荷,这个两级缓存框架使用了ehcache作为一级L1缓存,使用redis作为二级L2缓存,了解到这个之后,我果断学习了一波ehcache在spring的使用。一、依赖jar包这里使用maven:<properties> <spring.v

2017-06-29 22:38:58 2629

原创 实现SpringMVC中使用@Responsebody注解返回任意POJO对象转换成JSON

最近去实习,在第三天老大终于给个项目源码来学习学习了,很难得,然后在阅读源码过程中,发现了很多值得学习的东西,比如一些规范、面向对象设计、框架使用等。 以前以为SpringMVC中使用@Responsebody注解后,只能返回JSONObject,今天让我学到很多东西,原来只要是对象都能返回,只是我们需要把对象转换成JSON类型的字符串。一、核心依赖jar包:我这里使用的是maven,so附上ma

2017-06-29 21:55:19 16416

原创 Android自动化测试uiautomator入门

一、准备jar包在sdk的platforms子目录下找到对应android系统版本的sdk,我这里模拟器中启动的是android4.4.2,所以我选择的是android-19,取得该目录下的两个jar包1、android.jar2、uiautomator.jar二、创建java project打开eclipse,新建java project,把上一步中取得的jar包添加到依赖。 新建一个packa

2017-06-02 20:23:57 846

原创 如何在linux(ubuntu)上使用java的jni

最近发现java可运行代码太容易被反编译,想到java的jni,jni是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。一、编写java代码JNIDemo.java 我们这里仅以一个最经典的helloworld来展示public class JNIDemo { static{

2017-05-17 11:30:11 1465

原创 如何安装nginx且使用反向代理

最近有朋友问我借了云服务器,并在服务器安装了tomcat,由于我的服务器原本也存在正在服务的tomcat,尴尬啊两个tomcat,为了我们的web应用都能在80端口被访问,我使用了nginx反向代理。一、安装必备组件1、PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。 访问http://www.pcre.or

2017-05-13 20:24:49 660

原创 如何在Spring项目中使用Mybatis

warning:下面一切的内容必需基于你的spring能正常使用,不能使用的你还是先不要看。。。zzz一、准备工作jar包下载 mybatis-3.4.4.jar mybatis-spring-1.3.1.jar spring-jdbc-4.2.4.RELEASE.jar mysql-connector-Java-5.1.10.jar(由于我这里使用mysql为例) spring-tx-

2017-05-12 22:19:23 6337 1

原创 html中使用Ajax与后台接口api交互(以登录功能为例)

一、查阅开发文档首先,要做这个功能前,我们必须先查阅后台接口文档,了解使用登录接口时,需要提交哪些参数,并且接口使用返回的数据。 这里我使用了一个返回json格式数据的登录接口为例,讲解怎么使用Ajax与后台接口交互。由上图开发文档里,我们可以清楚的知道,要使用这个登录接口,我们只需要提交账号adminName和密码pwd两个参数。二、编写javascript(Ajax)实现登录var xmlh

2017-03-25 12:55:50 34396

原创 基于RTOS的c语言实现http文件上传

本实验为了减少代码量,使用了封装比较完善的http库,本文主要讲述http文件上传的主要要求。一、分析http关键头部信息为了分析http header,我们通过chrome得到上传文件时的http信息:通过上面的截图我们可以发现,关键头部信息为Content-type和Content-length。一般我们写html上传时,都会在form标签加一个multipart-data属性表示该表单有文件上

2017-03-24 17:59:01 2248 1

原创 spi传输音频数据结构和流程机制的设计(master->slave)

一、数据结构的设计数据的传输我们可以稍微参考一些网络协议,一段数据在传输过程中可能会由于各种原因使得数据不能正确被接收,那么一个好的数据结构和传输机制将会让数据传输更有保障。struct spi_data{ char sync_byte;//同步位,数据的开始 spicmd cmd;//命令,数据的意义 uint16 seq;//数据的序号,用于确保该条数据

2017-03-24 17:58:19 1473

原创 嵌入式openwrt平台(mt7688)上使用讯飞语音服务

还记得第一次接触嵌入式开发,boss拿着一块widora的mt7688板子让我去开发openwrt环境下的使用讯飞语音技术的应用。我的天啊,我第一次接触,这是什么东西。因此,我这个新手走了不少弯路,但是最后成功使程序跑起来了,嘻嘻。废话不多说,为了让后来者少走点弯路,在这里我说说怎么在openwrt上运行讯飞语音应用。第一步(应用的创建和SDK的下载):首先你需要一个讯飞开放平台的开发者账号,登陆后

2017-03-24 17:57:29 8787 4

原创 Android不使用第三方升级库实现应用升级

现在很多第三方都提供应用升级的集成,可能只需要把jar包导入,然后加入几行代码就可以了,但是这样的使用不利于我们对Android的理解。废话不多说,先讲讲怎么实现吧!1、检查版本号获取本地版本号:public static String getVersionCode(Context context){ PackageManager packageManager = context.getPac

2017-03-24 17:55:49 582 1

原创 Android团队协作中正确的启动Activity方法

1、不合适的启动方式在很多初学者认为,启动Activity不就以下这样简单? Intent intent = new Intent(Src.this,Target.class); intent.putExtra("data","hello"); startActivity(intent);对的,启动Activity就这么简单,某人当初也是这样认为。但在单人开发的项目中问题可能就

2017-03-24 17:55:13 600

原创 Android程序如何在任意处完全退出应用

市面上99.9的Android程序都是免费安装的,不像ios需要收取昂贵的费用,因此,很多Android开发者都会在自己的应用加入启动界面广告,以获取微小的辛苦费。广告界面(Advertise)是一个独立的Activity并且是主界面,我们会让程序在这个界面停留几秒钟,让用户观看我们的广告,然后 startActivity(new Intent(Advertise.this,Main.class)

2017-03-24 17:54:23 361

原创 Android中(java)读取以key=value形式保存在txt等文本文件的数据

最近业务上用到了天气查询接口,因为输入源仅有城市名称,接口需要用到的是城市代码,为了实现功能,以key=value形式把全部城市和代码持久化到了本地txt文件。这是用StringTokenizer(虽然这是一个遗弃类,但是对于小萌新来说还是挺不错的)做的一个功能函数读取txt中的key=value保存到map集合返回:public Map readKeyValueTxtToMap() {

2017-03-24 17:46:35 3555

空空如也

空空如也

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

TA关注的人

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