- 博客(70)
- 资源 (2)
- 收藏
- 关注
原创 Redis HA
一、SentinelHA的关键在于避免单点故障及故障恢复,在Redis Cluster未发布之前,Redis一般以主/从方式部署(这里讨论的应用从实例主要用于备份,主实例提供读写,有不少应用是读写分离的,读写操作需要取不同的Redis实例,该方案也可用于此种应用,原理都是相通的,区别在于数据操作层如何封装),该方式要实现HA主要有如下几种方案: 1,keepalived:通过keepa
2017-05-16 21:14:55
815
1
转载 Redis与RabbitMQ作为消息队列的比较
本文仅针对RabbitMQ与Redis做队列应用时的情况进行对比具体采用什么方式实现,还需要取决于系统的实际需求简要介绍 RabbitMQRabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用
2017-04-01 17:54:26
14388
3
原创 Swagger配置(SpringMVC、SpringBoot)
Swagger配置(SpringMVC、SpringBoot) > 微信图片_20170331175130.png" src="http://doc.ws.netease.com/download/attachments/6424199/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20170331175130.png?version=1&modificationDat
2017-04-01 16:18:09
1686
转载 Spring data jpa
从一个简单的 JPA 示例开始本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例;接着重构该示例,并引入 Spring 框架,这两部分不会涉及过多的篇幅,如果希望能够深入学习 Spring 和 JPA,可以根据本文最后提供的参考资料进一步学习。自 JPA 伴随 J
2017-03-16 14:50:44
458
转载 Dubbo服务简介
Dubbo分布式服 推荐大家一个画图工具:https://www.processon.com/i/572d51efe4b0c3c74981ec141.Dubbo是一个分布式服务框架,致力于提供高性能和透明化的远程服务调用方案,这容易和负载均衡弄混,负载均衡是对外提供一个公共地址,请求过来时通过轮询、随机等,路由到不同server。目的分摊压力。dubbo在淘宝也是解决他们实际问题的
2017-03-15 17:54:38
563
转载 git管理
英文原文:http://www.nvie.com/posts/a-successful-git-branching-model/ 原文作者:Vincent Driessen 本文经Linux大棚博主总结精简而成。 1 GIT,在技术层面上,绝对是一个无中心的分布式版本控制系统,但在管理层面上,我建议你保持一个中心版本库。 2 我建
2017-03-10 15:15:11
328
转载 JavaSciript 异步编程
转自:阮一峰的博客你可能知道,Javascript语言的执行环境是"单线程"(single thread)。所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的
2016-07-30 22:23:25
650
原创 LeetCode--Majority Element II & 多数投票算法
这个题目与另外一个题目很相似:Majority Element:给定一个整数数组,找出出现次数大于 n/2 的那个数。如果是找出出现次数大于n/2的数,解决这个问题的思路并不难,可以用Map扫描一遍,并且统计出现次数。但是这种方法的时间复杂度虽然是O(N),空间复杂度也相应的是O(N)。还有一种方法是多数投票算法,算法的名字虽然没听说过,但是思路相信大多数人还是知道的。如果coun
2016-07-26 22:52:59
377
转载 Activiti 数据库表信息
1、结构设计1.1、 逻辑结构设计Activiti使用到的表都是ACT_开头的。ACT_RE_*:’RE’表示repository(存储),RepositoryService接口所操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。ACT_RU_*:‘RU’表示runtime,运行时表-RuntimeService
2016-06-06 03:12:21
684
转载 深拷贝、浅拷贝以及Prototype模式
我们在编码过程经常会碰到将一个对象传递给另一个对象,java中对于基本型变量采用的是值传递,而对于对象比如bean传递时采用的引用传递也就是地址传递,而很多时候对于对象传递我们也希望能够象值传递一样,使得传递之前和之后有不同的内存地址,在这种情况下我们一般采用以下两种情况。浅复制与深复制概念浅复制(浅克隆) :被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用
2016-04-25 00:00:45
1054
转载 json&jsonp
前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现。 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socket通讯和本地数据库功能,又或者通过HTML5的WebSocket也可以实现与服务器的通讯和服务端推功能,但这两种方式都有其局限性,前者需要PhoneGap支持,后者要求用户设备必须
2016-04-23 20:13:31
284
转载 servlet/filter/listener/interceptor区别与联系
servlet/filter/listener/interceptor区别与联系 一、概念: 1、servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后
2016-04-10 15:54:53
304
转载 JeeSite概述
JeeSite是一个 开源的企业信息管理系统 基础框架。主要定位于“企业信息管理”领域,可用作企业信息管理类系统、网站后台管理类系统等。JeeSite是非常强调开发的高效性、健壮性和安全性的。 JeeSite是轻量级的,简单易学,本框架以Spring Framework为核心、Spring MVC作为模型视图控制器、Spring Data JPA + Hibernate作为数据库操作层,此组合
2016-04-08 03:38:25
1006
转载 BeanPostProcessor
Spring提供了很多扩展接口,BeanPostProcessor接口和InstantiationAwareBeanPostProcessor接口就是其中两个。 BeanPostProcessorBeanPostProcessor接口作用是:如果我们需要在Spring容器完成Bean的实例化、配置和其他的初始化前后添加一些自己的逻辑处理,我们就可以定义一个或者多个BeanPos
2016-04-06 01:55:21
964
转载 Redis的事务、管道、分布式
redis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务、管道及有jedis自身实现的分布式。 在这里对jedis关于事务、管道和分布式的调用方式做一个简单的介绍和对比:一.普通同步方式 最简单和基础的调用方式@Testpublic void test1Normal() { Jed
2016-03-26 16:51:37
373
转载 Redis常用数据结构及操作
首先推荐一下另外一篇博文:http://blog.csdn.net/it_man/article/details/9730631,Redis+Jedis+Spring的实现方案。下面是转载的内容,当做是备忘录了:Redis常用数据结构和操作1.String 存入字符类型 Set name luowen 设置name = luowen 存储 Get
2016-03-26 16:48:01
364
转载 java代理模式、动态代理(JDK,CGLIB)
java动态代理(JDK和cglib)JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特
2016-03-18 16:32:33
336
转载 Mybatis缓存
一级缓存首先做一个测试,创建一个mapper配置文件和mapper接口,我这里用了最简单的查询来演示。 namespace="cn.elinzhou.mybatisTest.mapper.UserMapper"> select id="findUsers" resultType="cn.elinzhou.mybatisTest.pojo.User"> SELE
2016-03-18 15:08:30
911
原创 Struts2模型驱动核心机制详解
Struts2采用模型驱动来实现对于表单的多个属性进行封装并通过调用action中的set方法来注入到action中对应的POJO.首先,Struts2中包括属性注入和域模型注入,属性注入正如我们所熟悉的servlet中对于每个表单提交过来的参数进行request的getParameter方法,获取每个属性值来注入类中。域模型注入则是上面我们所说的属性封装,下面我们看个例子: 首先定义jsp页面中
2016-03-11 16:35:41
2024
1
转载 log4j使用详解
在项目中的classes 中新建立一个log4j.properties文件即可; 在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对Logger、Appender及Layout的分别使用。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是java properties(key=value)【Java特性文件(键=值)】。(这里只说明prope
2016-02-25 16:38:35
461
转载 SOLID
S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则(Programming Priciple)的首字母缩写。面向对象设计的原则SRP The Single Responsibility Principle单一职责原则OCP The Open Closed Principle开放封闭原则LSP
2016-01-11 16:30:31
570
1
转载 理解Restful架构
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必
2015-12-12 17:33:58
364
转载 SpringAOP与Spring事务处理总结
spring用到的另外一项技术就是AOP(Aspect-Oriented Programming,面向切面编程),它是一种新的方法论,是对传统 OOP(Object-Oriented Programming,面向对象编程)的补充。AOP的主要编程对象是切面(aspect),而切面模块化横切关注点。在应用 AOP编程时,仍然需要在定义公共功能,但可以明确的定义这个功能
2015-12-12 14:02:05
6631
原创 Mybatis 鉴别器
使用鉴别器,根据表中某个字段区别数据,将查询出的数据自动封装成不同类型的对象。步骤实现此案例需要按照如下步骤进行。步骤一:建表创建汽车表,并插入预置数据,脚本如下:CREATE TABLE t_car ( id NUMBER(11) NOT NULL, type VARCHAR2(1) default NULL, doorSize NUMBER
2015-12-10 20:07:05
2386
2
原创 Mybatis动态SQL
[java] view plaincopyprint?MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。 MyBatis中用于实现动态SQL的元素主要有: if choose(when,otherwise) trim where
2015-11-19 14:56:49
528
原创 oracle 11g 密码过期|修改密码
oracle默认密码有效期为180天,所以要定时修改或者直接设置为不限制时间首先启动sqlplus输入用户名:sqlplus / as sysdba密码空缺查看密码生存周期:select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';修改为
2015-11-13 16:29:06
658
转载 Tomcat 5.x使EL表达式不被解析的解决办法
Tomcat 5.5使EL表达式不被解析。 现象代码${userSession.user_name}是JSP中的一个代码片段;如果部署到tomcat5.5中,不会显示出session中的变量user用户名,而只会把 ${userSession.user_name}打印出来,猜测很可能是tomcat5.5的bug,不解析(或屏蔽了)EL表达式。 原因
2015-07-11 22:58:47
896
转载 Velocity&Freemarker 的比较
模板技术在现代的软件开发中有着重要的地位,而目前最流行的两种模板技术恐怕要算freemarker和velocity了,webwork2.2对两者都有不错的支持,也就是说在webwork2中你可以随意选择使用freemarker或velocity作为view,模板技术作为view的好处是很多,尤其和jsp比较起来优点更大,众所周知jsp需要在第一次被执行的时候编译成servlet,那么这个过程是很慢
2015-05-05 21:16:42
1385
原创 机器学习笔记--回归分析(3)
一、逐步回归1. 分类:向前引入法:从一元回归开始,逐步增加变量,使指标值达到最优为止向后剔除法:从全变量回归方程开始,逐步删去某个变量,使指标值达到最优为止逐步筛选法:综合上述两种方法、在增加和删除变量时看如下指标的变化:RSS(残差平方和)与R2(相关系数平方)选择法:遍历所有可能的组合,选出使RSS最小,R2最大的模型AIC(Akaikeinformat
2015-03-28 17:52:01
3139
原创 机器学习笔记--回归分析(2)
一、多元线性回归模型1. 概念当Y值的影响因素不唯一时,采用多元线性回归模型 例如商品的销售额可能不电视广告投入,收音机广告投入,报纸广告投入有关系,可以有是关于βi的函数。分别对βi求偏导并令偏导等于0,可以解出相应的βi的值2. 例子使用R中的Swiss数据集,包含了1888年瑞士国民经济发展数据集我们要构造的模型是社会的繁荣
2015-03-26 20:38:00
833
转载 Mysql中的Time-based blind injection
在MySQL参考手册里可以看到如下描叙:------------------------------------------------BENCHMARK(count,expr) BENCHMARK()函数重复countTimes次执行表达式expr,它可以用于计时MySQL处理表达式有多快。结果值总是0。意欲用于mysql客户,它报告查询的执行时间。攻击原理 当运行BEN
2015-03-24 21:42:35
1401
原创 机器学习笔记--回归分析(1)
一、重点回归分析就是利用样本(已知数据),产生拟合方程,从而(对未知数据)迚行预测用途:预测,判别合理性例子:利用身高预测体重;利用广告费用预测商品销售额;等等.线性回归分析:一元线性(直线拟合,因变量只有一个);多元线性(平面拟合,多因变量);广义线性非线性回归分析困难:选定变量(多元、将多元整合为单变量:降维),避免多重共线性(使用可以由其它变量推出来的变量,回归模型误差会很大
2015-03-24 15:02:45
1406
原创 使用BlockingQueue实现生产者消费者模式
Producer类:public class Producer implements Runnable { private final BlockingQueue queue; int index = 0; public Producer(BlockingQueue q) { queue = q; } @Override public void run() { // TO
2015-03-22 19:46:23
740
转载 Java synchronized详解
第一篇:使用synchronized在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题。在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序,是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。在程序中我们使用了一个简化版本的Account类,代表了一
2015-03-21 17:04:44
467
转载 把Java数组转换为List时的注意事项
不幸的是并不是每件事都尽如人意。举个例子,现在将一个Java数组转换为List。当然,我们可以使用Arrays.toList方法,但是如果没有慎重思考就随便使用几乎肯定会产生令人讨厌的意外。考虑完下面这段程序并预测其输出你就明白我的意思了:1234567891011121314151617181920
2015-02-10 17:25:46
413
转载 java.util.Scanner应用详解
java.util.Scanner是Java5的新特征,主要功能是简化文本扫描。这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地。 一、扫描控制台输入 这个例子是常常会用到,但是如果没有Scanner,你写写就知道多难受了。当通过new Scanner(System.in)创建一个S
2015-02-06 16:43:15
444
转载 debian、ubuntu、kali忘记root密码问题
对于一些版本的OS(如redhat、centos)来说,编辑grub,在后面加上“single”即可进入单用户模式。但是对于debian、ubuntu、kali来说,这种方式是无效的,因为kali进入单用户模式也需要您输入root用户的密码。下面介绍一个在任何版本linux的grub上均能够使用的方法:1、在Grub的引导装载程式菜单上,选择您要进入的条目,键入 “e” 来进入编辑
2015-01-26 15:51:42
796
转载 StringBuffer和StringBuilder的比较
相信大家看到过很多比较String和StringBuffer区别的文章,也明白这两者的区别,然而自从Java 5.0发布以后,我们的比较列表上将多出一个对象了,这就是StringBuilder类。String类是不可变类,任何对String的改变都会引发新的String对象的生成;而StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象,可变和不可变类这一对对象已经齐全
2014-12-30 19:50:41
370
转载 SWFObject: Javascript Flash Player detection and embed script
转自:http://blog.deconcept.com/swfobject/Please read: SWFObject 2.0 has been released and is now hosted on github: https://github.com/swfobject/swfobject. Please consider the information found
2014-12-22 21:01:06
555
转载 MapReduce 算法设计(二)--- Pairs 和 Stripes
之前提到从MapReduce 可控和不可控的方面我们可以挖掘出一些有用的设计模式。在可控方面Key 和Value 数据结构的自定义给了我们很大的发挥空间。本篇要讲述的就是Pairs 和Stripes 。这两种设计模式并没有利用MapReduce 的框架机制,而是巧妙的利用数据结构来实现的。但是依然可以利用我们之前提到的Combiner 和In-Mapper Combining 来进行效率优化。
2014-12-14 15:25:49
949
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人