Java多线程Queue总结
Java多线程Queue总结今天就聊聊这两种Queue,本文分为以下两个部分,用分割线分开: BlockingQueueConcurrentLinkedQueue,非阻塞算法首先来看看BlockingQueue: Queue是什么就不需要多说了吧,一句话:队列是先进先出。相对的,栈是后进先出。如果不熟悉的话先找本基础的数据...
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么叫线...
为什么要使用线程池
在Java中,如果每当一个请求到达就创建一个新线程,开销是相当大的。在实际使用中,每个请求创建新线程的服务器在创建和销毁线程上花费的时间和消耗的系统资源,甚至可能要比花在处理实际的用户请求的时间和资源要多得多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。如果在一个JVM里创建太多的线程,可...
maven 建立本地仓库
这一个章节,分两部分来介绍,首先介绍一下 Maven 的仓库,然后再说一下如何通过 Nexus 来建立我们自己的仓库,以及如何使用。Maven 仓库在以前使用 Ant 的时候,我们会建立一个 lib 目录存放我们的 jar 包,比如项目所依赖的第三方包,每建立一个项...
HttpClient4.X 升级 入门 + http连接池使用
转载地址:http://blog.csdn.net/shootyou/archive/2011/05/12/6415248.aspx 在一次服务器异常的排查过程当中(服务器异常排查的过程我会另起文章),我们决定使用HttpClient4.X替代HttpClient3.X或者HttpConnection。为什么使用HttpClient4?主要是HttpConnection没有连接池的概念,多少次请求就会建立...
LVS+Keepalived高可用负载均衡集群架构
keepalived 简介keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器,管理服务器池,而不仅仅用来做双机热备。使用keepalived构建LVS群集更加简便易用,主要优势体现在:对LVS负载调度器实现热备切换,提高可用性;对服务器池中的节点进行健康检查,自动移除失效...
@GeneratedValue 与 @GenericGenerator
一、JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是JPA的标准用法, JPA提供四种标准用法,由@GeneratedValue的源代码可以明显看出. Java代码 @Ta...
Spring事务管理—aop:pointcut expression解析
学习AOP,关键在于理解AOP的思想,能够使用AOP。对于AOP众多的概念,需要理解3个重要的概念是Pointcut、Advice和Advisor。切入点(Pointcut) 在介绍Pointcut前,有必要先介绍一下Join Point(连接点)的概念。Join Point指的是程序运行中的某个阶段点,如某个方法调用、异常抛出等。Pointcut是Join Point...
使用 Spring MVC 统一异常处理实战
1 描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量也很大。 那么,能不能将所有类型的异常处理从各处理过程解耦...
LVS:三种负载均衡方式比较
1、什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟...
[CXF] Server与Client实现方式四:JMS
【参考:http://cxf.apache.org/docs/jms-transport.html 】【参考:http://cxf.apache.org/docs/using-the-jmsconfigfeature.html 】【参考:http://cxf.apache.org/scalable-cxf-applications-using-jms-transport.html 】之前介绍的Server与Client之间的通信方式都是基于HTTP...
Spring Data Redis实现一个订阅/发布系统
Redis是一个key-value的存储系统,提供的key-value类似与Memcached而数据结构又多于memcached,而且性能优异.广泛用于缓存,临时存储等.而我今天 这个例子是使用Redis实现一个订阅/发布系统,而不是如何使用它存储key-value的数据. Redis是天生支持订阅/发布的,不是我牵强附会拼凑而实现这样的效果,如果真是这样性...
连接池 druid
Druid是一个强大的新兴数据库连接池,兼容DBCP,是阿里巴巴做的开源项目.不仅提供了强悍的数据源实现,还内置了一个比较靠谱的监控组件。 GitHub项目主页: https://github.com/alibaba/druidQQ群: 点击链接加入群【阿里开源技术交流】演示地址: http://cncounter.duapp.com/druid/ind...
fastJson在java后台转换json格式数据探究
什么是JSON?JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言...
利用log4j+mongodb实现分布式系统中日志统一管理
背景 在分布式系统当中,我们有各种各样的WebService,这些服务可能分别部署在不同的服务器上,并且有各自的日志输出。为了方便对这些日志进行统一管理和分析。我们可以将日志统一输出到指定的数据库系统中,而再由日志分析系统去管理。而这个储存日志的数据库目前最适合的还是mongodb,一是因为它...
征服 Redis + Jedis
用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET等。基于这些限制,有必要考虑Redis! 相关链接:征服 Redis征服 Redis + Jedis征服 Redis + Jedis + Spring (一)—— 配置&常规操作(GET SET DEL)征服 Redis + Jedis + Spring (二)...
spring batch入门实例
转载地址:http://blog.csdn.net/limiteewaltwo/article/details/8832771为什么要进行批处理,哪些场合适合进行批处理?[plain] view plaincopy企业领域的许多应用需要在严格的任务环境下,进行大量的商业计算。这些商业计算包括在大数据集中进行自动而又复杂的计算...
spring 全局异常处理
spring3.0开发d异常处理,如果只有jsp请求能捕获到异常,是不足够的, 有时候AJAX返回json数据时遇到异常。这时候默认的处理方式不能满足了, 需要自定义的方式支持同步和ajax异步异常处理。 Spring3.0中对异常的处理方法一共提供了两种:一种是使用HandlerExceptionRe...
Zookeeper 初体验之JAVA实例
英文原文地址:http://zookeeper.apache.org/doc/current/javaExample.html简介Apache Zookeeper 是由 Apache Hadoop 的 Zookeeper 子项目发展而来,现在已经成为了 Apache 的顶级项目。Zookeeper 为分布式系统提供了高效可靠且易于使用的协同服务,它可以为分布式应用提供相当多的服务,诸如统一命名服务,配置...
ActiveMQ 入门及实例
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。 ActiveMQ特性列表 1. 多种语言和协议编写客户端。语言: Java、 C、 C++、 C#、 Ruby...