- 博客(42)
- 收藏
- 关注
原创 Mysql数据导入失败(sql_mode)
准备在本地搭建测试库环境,把远程测试库结构及数据导出。在本地建库还原过程中一直失败,之前一直这么干的,所以很纳闷。报错信息中提示invalid value for timestamp,时间字段的默认值被设置为“0000-00-00 00:00:00”。通过度娘定位可能是sql_mode问题,通过“select @@sql_mode”命令查询本:sql_mode(本地库)ONLY_FULL_...
2017-08-23 14:36:01
540
Shiro知识点备忘录
1、Shiro手动认证[code="java"]Subject currentUser = SecurityUtils.getSubject();UsernamePasswordToken token = new UsernamePasswordToken(user.getUserName(), user.getPassword()); // 开始进入shiro的认证流程curre...
2017-06-06 17:31:17
194
Http请求模拟工具Postman
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件,离线包下载地址:[url]http://chromecj.com/web-development/2014-09/60/download.html[/url]离线安装方式:[url]http://chromecj.com/utilities/2014-09/181.html[/url]只能通过Chrome网...
2017-05-04 14:28:29
214
Oracle数据同步解决方案之databus
[list][*][b]概述[/b][/list]目前了解到基于Oracle的开源数据同步项目有yugong、databus、SymmetricDS,之前尝试了yugong,很容易上手。使用时需要注意两点:1、物化视图和回表查询对源库会产生比较大的影响;2、每一个表有一个单独的实例去处理整个流程,数据抽取、转换、入库不能分离;3、yugong设计的目的是为了去IOE,做切库使用,多次增量同步确...
2017-03-24 15:39:19
2121
图像缩略图的Java类库Thumbnailator
今天经同事介绍了一款java图像缩略图类库Thumbnailator,尝试了下,效果还不错,使用也比较方便,收藏一下。github地址:[url]https://github.com/coobird/thumbnailator[/url],简介和使用范例:[url]https://www.oschina.net/question/76860_25758?sort=default&p=2[/url]...
2017-03-20 15:50:10
240
Oracle数据同步项目yugong
[list][*][b]概述[/b][/list]之前尝试了基于物化视图+java source的oracle数据同步方案,为了把物化视图的变化信息传递给java source发送给外部程序,需要使用触发器、存储过程/函数。触发器用于监控物化视图的数据变化,调用存储过程从而间接调用java source(存储过程可以指向一个java source)。该方案的缺点如下:1、给每个同步表建立物...
2017-03-14 11:16:57
1075
1
原创 maven-dependency-plugin插件
maven-dependency-plugin插件的使用[quote][url]http://liugang594.iteye.com/blog/2093082[/url][/quote]除了maven-dependency-plugin,[color=blue]liugang594[/color]还写了不少其它插使用,比较详细,在此感谢!文章列表如下:[quote][url]http:/...
2017-02-27 16:28:26
235
基于oracle的增量数据采集实现总结
[list][*][b]项目打包方案[/b][/list]在“基于oracle的增量数据采集”一文中提出了基于[color=blue]触发器》物化视图》存储过程》java source》外部程序[/color]数据采集方案。本文初步对其进行了实现,利用maven-assembly-plugin进行打包,输出结构如下:bin、conf、lib,分别存放命令文件、配置文件、jar包,需注意在bin...
2017-02-27 15:52:08
1353
eclipse中maven项目默认jdk版本
使用eclipse创建maven项目时,默认jdk版本为1.5,每次手动改为需要的jdk版本,例如1.8,在执行maven-update project后,手动设置的jdk版本又切换为默认jdk1.5,很是头疼。解决办法:修改maven安装目录下conf中settings.xml[code="java"] jdk-1.7 true...
2017-02-20 15:20:55
190
基于oracle的增量数据采集
之前调研了下基于mysql的数据增量采集方案,目前有阿里的canal和Open Replicator,均是基于MySQL binlog分析的开源项目。Open Replicator仅提供了binlog解析;canal基于数据库增量日志解析,提供增量数据订阅&消费,在binlog分析的基础上进行了封装,并有相匹配的canal消费端项目开源: Otter(分布式数据库同步系统),相对有一套比较完整的增...
2017-02-20 11:13:31
2071
ZooKeeper客户端框架Curator
[list][*][b]Curator介绍[/b][/list]关于Curator不多介绍,网上很多,可以参考这篇:[quote][url]http://macrochen.iteye.com/blog/1366136/[/url][/quote][list][*][b]Curator工具类[/b][/list][code="java"]import java.util.List;...
2017-02-17 10:29:25
297
基于MySQL binlog分析的开源项目收录
[b]canal[/b]:阿里巴巴mysql数据库binlog的增量订阅&消费组件,开源地址:[url]https://github.com/alibaba/canal[/url],论坛讨论:[url]http://www.iteye.com/topic/1129002[/url][b]Open Replicator[/b]:Open Replicator是一个用Java编写的MySQL ...
2017-02-04 16:07:30
274
原创 自定义类加载器与spring的集成
之前也学习过自定义类加载器,通过ClassLoader直接加载需要的类。但实际业务中启动入口常常不可控,比如实际业务中我们常常使用spring对类实例进行管理。如何在spring中集成自定义ClassLoader是需要我们考虑的问题。结合之前项目单机部署的一个方案,即class加密,自定义类加载器解密。因此,我们需要解决两个个问题:1、自定义类加载器2、spring与类加载器的集成...
2017-01-13 16:08:06
2095
Nginx资料收藏
Nginx开发从入门到精通[quote][url]http://outofmemory.cn/nginx/nginx-development-book/[/url][/quote]Nginx 负载均衡配置和策略[quote][url]http://outofmemory.cn/code-snippet/3040/Nginx-load-junheng-configuration-stra...
2017-01-06 15:38:24
141
负载均衡之Nginx
[list][*][b]Nginx配置[/b][/list]环境限制,win10下测试下Nginx的负载均衡,配置比较简单,最简配置如下:[code="配置"]worker_processes 1;events { worker_connections 1024;}http { include mime.types; def...
2017-01-05 17:38:05
139
EhCache资料收藏
深入探讨在集群环境中使用 EhCache 缓存系统[quote][url]http://www.ibm.com/developerworks/cn/java/j-lo-ehcache/[/url][/quote]EhCache RMI 分布式缓存/缓存集群[quote][url]http://blog.csdn.net/xlxxcc/article/details/52350264[/...
2017-01-05 17:00:24
127
负载均衡之Apache
[list][*][b]测试环境[/b][/list]Apache:2.4.25 web server:apache-tomcat-8.0.18Jdk:1.8操作系统:Windows7[list][*][b]Apache下载及配置(免安装版)[/b][/list]官网下载:[url]http://httpd.apache.org/[/url]找到Apache下con...
2017-01-05 16:57:26
142
原创 DelegatingFilterProxy的使用
在Spring集成第三方时,通常会提供以下方式的配置来作为第三方引入的入口:[code="java"] < filter-name>shiroFilter org.springframework.web.filter.DelegatingFilterProxy targetFilterLifecycle true ...
2016-12-30 14:59:50
437
HashMap原理简析
数据结构中的数组和链表被我们所熟知,其有优缺点刚好相反,HashMap综合了两者的特性,是一种寻址容易、插入/删除也容易的数据结构。HashMap作为java中一种常用的数据结构,工作中会被经常使用,面试中问的也比较多。但一直只了解其特性,其实现原理也只停留在由数组、链接构成,key hash落在数组上,落在数组同一位置的以链表实现,但并没有深入思考,了解其具体实现。今天看到一篇博客,深入...
2016-12-26 17:22:01
137
java线程池回顾
[list][*][b]线程池相关类[/b][/list][table]|ExecutorService|真正的线程池接口|ScheduledExecutorService|能和Timer/TimerTask类似,解决那些需要任务重复执行的问题|ThreadPoolExecutor|ExecutorService的默认实现|ScheduledThreadPoolExecutor...
2016-12-23 16:59:35
118
原创 RabbitMQ使用场景练习:STOMP plugin
[list][*][b]STOMP plugin[/b][/list] Stomp是一个简单的消息文本协议(不重点介绍,没仔细研究过)。RabbitMQ中STOMP plugin的集成,实现了由浏览器通过WebSocket协议访问消息队列,SockJS作为后备(旧版的浏览器不支持WebSocket协议)[code="启用STOMP plugin命令"]rabbitmq-plug...
2016-12-22 10:32:59
633
自定义ClassLoader
[list][*][b]进行实验[/b][/list]以下代码使用一个自定义类加载器,输出类加载器的层级结构和当前实例使用的类加载器[code="java"]Class cl=new DefinedClassLoader("d:/").loadClass("HelloWorldServiceImpl");HelloWorldService helloWorldService=(Hell...
2016-12-20 18:20:06
123
原创 如何实现web项目单机部署
[list][*][b]实现目标[/b][/list]实现项目部署包仅能在指定服务器部署,不可更改。更换位置,无法正常启动和访问。目前还没有完美的解决方案,有些思路还待验证。[list][*][b]实现方案[/b][/list][b]校验规则[/b]校验当前服务器mac地址是否匹配[b]启动报错提示[/b]方案1:自定义servlet,load-on-startup设置为0,在init...
2016-12-20 17:34:26
736
java代理机制简单实现
java代理分静态代理和动态代理,动态代理有jdk代理和cglib代理两种,在运行时生成新的子类class文件。本文主要练习下动态代理,代码用于备忘。对于代理的原理和机制,网上有很多写的很好的,就不班门弄斧了。[list][*][b]jdk代理[/b][/list][code="java"]import java.lang.reflect.InvocationHandler;...
2016-12-20 17:17:13
101
原创 RabbitMQ使用场景练习:Validated User ID、Length Limit(十二 )
[list][*][b]Validated User ID[/b][/list]发送消息时指定userid,只有是当前conn的用户名才可以发送出去消息(测试发现非当前conn用户名,队列没有也没有创建,可能因为是在同一个channel)。用于消费者consumer需要知道消息是从哪个用户发过来的情况package com.demo.mq.rabbitmq.example12;imp...
2016-12-16 15:14:41
255
1
原创 RabbitMQ使用场景练习:消息确认机制(十一)
[list][*][b]消息确认机制[/b][/list]RabbitMQ提供了transaction、confirm两种消息确认机制。transaction即事务机制,手动提交和回滚;confirm机制提供了Confirmlistener和waitForConfirms两种方式。confirm机制效率明显会高于transaction机制,但后者的优势在于强一致性。如果没有特别的要求,建议使用...
2016-12-16 12:08:36
335
原创 RabbitMQ使用场景练习:优先级队列(十)
[list][*][b]优先级队列[/b][/list][color=red]只有当消费者不足,不能及时进行消费的情况下,优先级队列才会生效[/color]RabbitMQ3.5以后已经集成了rabbitmq_priority_queue[quote][url]http://www.rabbitmq.com/community-plugins.html[/url][/quote]验证方式:...
2016-12-14 16:05:46
434
RabbitMQ使用场景练习:监听器Listener(九)
[list][*][b]监听器[/b][/list] RabbitMQ中监听器有ReturnListener、ConfirmListener、ShutdownListener,本练习中使用ReturnListener,在发布消息时设置mandatory等于true,监听消息是否有相匹配的队列,没有时ReturnListener将执行handleReturn方法,消息将返给发送者 ...
2016-12-13 21:23:37
508
RabbitMQ使用场景练习:延迟队列(八)
[list][*][b]延时队列[/b][/list] 在实际业务场景中可能会用到延时消息发送,例如支付场景,准时支付、超过未支付将执行不同的方案,其中超时未支付可以看做一个延时消息。 RabbitMQ本身不具有延时消息队列的功能,但是可以通过TTL(Time To Live)、DLX(Dead Letter Exchanges)特性实现。其原理给消息设置过期时间,在消息队...
2016-12-13 17:42:21
267
原创 RabbitMQ使用总结:持久化
[list][*][b]持久化[/b][/list] RabbitMQ的持久化是为了实现服务从异常状态恢复后恢复之前的状态。RabbitMQ发送消息涉及交换器(exchange)、队列(queue)、消息,因而持久化包括交换器的持久化、队列的持久化、消息文本的持久化。获取消息是从队列中获取的、交换器进行的转发,所以为了确保消息的最终持久化,一般交换器、队列、消息都要进行持久化。...
2016-12-13 10:29:53
348
RabbitMQ使用场景练习:RPC(七)
[list][*][b]RPC,同步消息[/b][/list] RabbitMQ默认的consumer为异步监听,RPC应用需要实现consumer的同步,可以使用QueueingConsumer(继承与DefaultConsumer,定义了一个堵塞队列LinkedBlockingQueue)实现同步 实际上就是服务端、客户端各定义一个消息队列,相互发送消息,客户端发送消息...
2016-12-08 17:51:02
307
1
RabbitMQ使用场景练习:Headers(六)
[list][*][b]Headers转发器[/b][/list] 消息发送时可以在header中定义一些键值对,接收消息队列与headers转发器绑定时可以指定键值对,all、any两种方式(队列绑定转发器时指定的键值对与headers中存储的键值对匹配),匹配上即可接收到消息[list][*][b]注意要点[/b][/list][i]headers转发器[/i]...
2016-12-08 15:28:06
201
原创 RabbitMQ使用场景练习:主题Topic(五)
[list][*][b]主题转发器(Topic)[/b][/list]Topic转发器的功效包含fanout、direct类型的转发器,其特殊的地方在于转发器与队列的绑定时routingkey可以使用通配符*、#,使用*就相当于fanout,不使用通配符就相当于direct,否则就是模糊匹配,匹配上的队列都可以收到消息[list][*][b]注意要点[/b][/list][i]topic...
2016-12-06 17:26:18
317
原创 RabbitMQ使用场景练习:路由选择Routing(四)
[list][*][b]路由选择(Routing)[/b][/list] Routing即按照某条路线把消息发送出去,所有这条路线上的队列都将接收到消息。 使用direct转发器,在转发器上使用同一routingkey绑定多个队列,根据routingkey发送消息,所有绑定的队列都将收到消息[list][*][b]注意要点[/b][/list][i]di...
2016-12-06 17:02:00
122
原创 RabbitMQ使用场景练习:发布/订阅(三)
[list][*][b]发布/订阅[/b][/list] 即实现单点发送消息,多点接收。使用fanout转发器,广播到所有它知道的队列上[list][*][b]注意要点[/b][/list][i][b]fanout转发器中不需要routingKey,指定也无效[/b][/i][i]创建fanout转发器[/i]:[code="java"]channel.ex...
2016-12-05 17:30:14
183
原创 RabbitMQ使用场景练习:工作队列(二)
[list][*][b]工作队列[/b][/list] 工作队列的好处在于多个工作线程共享执行任务队列,使用round-robin的方式分发任务(简单的理解:依次把任务分配给工作进程,一次性分配1..n个任务,平均分配)。[list][*][b]注意要点[/b][/list][i]工作线程的产生,在同一队列上声明多个Consumer[/i]:[code="java"...
2016-12-05 17:11:26
114
原创 RabbitMQ使用场景练习:入门实例(一)
[list][*][b]注意要点[/b][/list][i]同一队列多次创建[/i]:[code="java"]//此处声明队列为了防止接收者先运行,队列还不存在时创建队列(同一队列只会创建一次)channel.queueDeclare(queue, false, false, false, null);[/code][list][*][b]消息发送类[/b][/lis...
2016-12-05 16:20:42
398
原创 RabbitMQ的管理与监控
[size=medium][list][*][b]开启management plugin功能[/b][/list]1、management plugin默认安装未开启,需要执行以下命令: $ cd /usr/lib/rabbitmq/bin/ $ sudo rabbitmq-plugins enable rabbitmq_management2、management p...
2016-11-30 17:08:47
241
原创 RabbitMQ的安装
[size=medium][b]1、RabbitMQ安装[/b]官网下载地址:[url]http://www.rabbitmq.com/download.html[/url][quote]RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总:[url]http://blog.csdn.net/linsongbin1/article/details/477...
2016-11-30 16:02:25
109
值交换的三种方式
[code="java"]package com.demo.algorithm.sort;public class NumberSwap { /** * 通过中间值进行交换 * @param a * @param b */ public static void swap1(int a,int b){ int tmp=a; a=b; b...
2016-11-28 18:26:59
211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人