- 博客(34)
- 收藏
- 关注
原创 银行账号同步多线程处理
需求:银行账号同步只能一个一个账号同步,但可能有很个账号需要同步,如果只有一个线程处理,客户端需要等很久才能处理完改进:客户端发送同步请求(对象)过来,直接放到队列中,然后直接返回200给客户端,这样客户端就不需要等待,可以很快得到反馈1. 客户端代码入口: BankSynchroProcessor.getInstance().acceptRequest(bsd);
2017-01-17 09:55:14
659
转载 图解HTTPS协议加密解密全过程
我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。 HTTPS简介 HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看
2016-12-13 17:10:53
18378
3
原创 java io 与java nio
1. java io通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request),服务器会为每个客户端请求建立一个线程,由该线程单独负责处理一个客户请求。这种模式带来的一个问题就是线程数量的剧增,大量的线程会增大服务器的开销。大多数的实现为了避免这个问
2016-11-01 14:37:58
408
原创 dubbo学习
1.Dubbo集群容错 当我们的系统中用到Dubbo的集群环境,因为各种原因在集群调用失败时,Dubbo提供了多种容错方案,缺省为failover重试 Failover Cluster:· 失败自动切换,当出现失败,重试其它服务器。(缺省)· 通常用于读操作,但重试会带来更长延迟。· 可通过retries="2"来设置重试次数(不含第一次)。例如:某个服
2016-10-19 19:50:39
862
转载 一个故事讲清楚 NIO
假设某银行只有10个职员。该银行的业务流程分为以下4个步骤:1) 顾客填申请表(5分钟);2) 职员审核(1分钟);3) 职员叫保安去金库取钱(3分钟);4) 职员打印票据,并将钱和票据返回给顾客(1分钟)。我们看看银行不同的工作方式对其工作效率到底有何影响。1 BIO方式每来一个顾客,马上由一位职员来接待处理,并且这个职员需要负责以上4个完整流程。当超过10个顾客
2016-10-17 15:58:45
294
转载 长连接和短链接的解析
1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。2. 如何理解HTTP协议是
2016-10-17 12:21:22
1750
转载 TCP协议中的三次握手和四次挥手(图解)
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:
2016-10-17 11:37:49
275
转载 Java高新技术第一篇:类加载器详解
首先来了解一下字节码和class文件的区别:我们知道,新建一个Java对象的时候,JVM要将这个对象对应的字节码加载到内存中,这个字节码的原始信息存放在classpath(就是我们新建Java工程的bin目录下)指定的目录下的.class文件,类加载需要将.class文件导入到硬盘中,经过一些处理之后变成字节码在加载到内存中。下面来看一下简单的例子:[jav
2016-10-01 12:13:05
366
转载 Spring事务管理机制的实现原理-动态代理
之前在做项目中遇到spring无法进行事务代理问题,最后发现是因为没有写接口,原因当时明白了,看到这篇文章写的清楚些,转过来 我们先来分析一下Spring事务管理机制的实现原理。由于Spring内置AOP默认使用动态代理模式实现,我们就先来分析一下动态代理模式的实现方 法。动态代理模式的核心就在于代码中不出现与具体应用层相关联的接口或者类引用,如上所说,这个代理类适用于任何接口的实
2016-09-30 15:41:36
500
转载 揭开Spring事务处理
Spring事务处理你未关注过的原理本文对Spring实现事务处理的真正原理进行追究,从而从中提炼出一些见解。其中讲解内容可能会存在一定的误导,还希望指出,内容仅供参考!(经过本人后期继续研读Spring关于Mybatis的事务处理,其实在mybatis的里面调用了spring的方法来获取Connection,所以本文所提供的一种实现,是另一种Spring的实现猜想,仅供参考!) 说到S
2016-09-30 15:35:24
374
转载 使用ThreadLocal改进你的层次的划分
一、什么是ThreadLocal早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许
2016-09-30 15:08:22
790
转载 Spring事务之如何保证同一个Connection对象
一、传统JDBC事务管理 首先我们先看一下,jdbc的事务配置是在Connection对消里面有对应的方法,比如setAutoCommit,commit,rollback这些方法就是对事务的操作。conn.setAutoCommit(false);//设置事务非自动提交conn.commit();//提交事务conn.rollback();//事务回滚123123 这样
2016-09-30 13:57:32
6152
转载 Jenkins中使用Git和Maven之多个项目
1.应用Aggregation管理多个子项目Maven中有一个Aggregation(聚合),可以将多个项目作为模块添加到一个pom.xml中,然后告诉Jenkins这个顶层pom.xml,就可以自动从Git中拿出这些项目的源代码,并build所有的子项目和运行相应的测试程序。我这里使用的是TestNG。比如我有两个maven项目client和email_sender,我希望一次编
2016-09-29 19:25:59
1213
原创 maven 打成可运行jar
项目需要把一个项目打成可运行的jar,关联依赖的项目放在lib目录中,最终打成的目录结构如下:bin --可运行脚本:bat,sh等res -- 项目的资源文件lib -- 依赖其他jar1. 在pom中加入 org.apache.maven.plugins maven-jar-plugin
2016-09-29 13:59:10
482
原创 maven打包成jar, 包括依赖其他的jar
maven打包的时候不会自动把依赖的项目打成jar放在项目中,如果需把管理的jar放在target/lib目录下,可以在pom.xml添加: org.apache.maven.plugins maven-jar-plugin
2016-09-29 13:46:35
10682
转载 利用MAVEN打包可运行jar包,包括依赖的第三方包
看下项目pom.xml的配置,首先要配置maven-jar-plugin,把自己的代码编译打包成jar文件,然后配置maven-assembly-plugin,把整个项目打包成一个发布包。Xml代码 收藏代码 org.apache.maven.plugins mav
2016-09-29 13:17:39
7527
转载 关于 tomcat 集群中 session 共享的三种方法
前两种均需要使用 memcached 或redis 存储 session ,最后一种使用 terracotta 服务器共享。建议使用 redis,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富,不只是缓存 session,还可以做其他用途,一举几得啊。 1、使用 filter 方法存储这种方法比较推荐,因为它的服务器使用范
2016-09-29 13:13:10
260
转载 Tomcat中的Session小结
阅读目录什么是SessionSession的目的实现机制Tomcat中的session实现session存在的问题什么是Session对Tomcat而言,Session是一块在服务器开辟的内存空间,其存储结构为ConcurrentHashMap;Session的目的Http协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器
2016-09-29 13:09:17
1577
转载 Java多线程中的wait与notify
在Java多线程编程中,wait()的作用的是让当前线程进入阻塞状态,notify()是让当前线程唤醒继续执行。虽然是对线程状态的控制,但它们其实都是Object中的方法,这是因为wait与notify所起的作用与线程间的互斥锁有关。在执行wait()和notify()之前,必须要先获得互斥锁,即一定要和synchronized一起使用。wait()的含义是让出获得的互斥锁,并让自
2014-02-13 21:20:56
577
转载 java多线程: wait/notify机制
java多线程: wait/notify机制 多线程的最大问题就是如何实现线程间通讯,使线程在合适的时候进行阻塞和唤醒执行.java提供的wait/notify机制就解决了这个问题.以上逻辑简单的说就是:如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。这个机制的实现依赖于wait/notify。等待机制与锁机制是密切关联的。例如:
2014-02-13 21:10:51
492
原创 总结
1.Entitlement , withholding, Funding bgckground process implements method:query table atlas_bgproc_detail by query condition : sub_process, take Entitlement bg as example:step 1, search if the
2014-02-13 17:12:22
7289
转载 深入掌握JMS(一):JSM基础
1. JMS基本概念 JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企业应用的开发。它支持两种消息通信模型:点到点(point-to-point)(P2P)模型和发布/订阅(Pub/Sub)模型。P2P 模型规定了一个消息只能有一个接收者;Pub/Sub 模型允许一个消息可以有多个接收者。 对于点到点模型
2014-02-13 16:05:13
518
转载 JMS
JMS JMS(Java Message Service,Java消息服务)是一组Java应用接口,它提供创建、发送、接收、读取消息的服务。JMS API定义了一组公共的应用程序接口和相应语法,使得Java应用能够和各种消息中间件进行通信,这些消息中间件包括IBM MQ-Series、Microsoft MSMQ及纯Java的SonicMQ。通过使用JMS API,开发人员无需掌握不同消息产品
2014-02-13 16:02:40
429
转载 Hibernate 二级缓存 总结整理
和《Hibernate 关系映射 收集、总结整理》 一样,本篇文章也是我很早之前收集、总结整理的,在此也发上来 希望对大家有用。因为是很早之前写的,不当之处请指正。 1、缓存:缓存是什么,解决什么问题?位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为 Cache(摘自Robbin的《缓存技术浅谈》)。目的:让数据更接近于应用程序,协调速度不匹配,使
2014-02-12 23:20:30
421
转载 oscache使用指南
一、简介Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的
2014-02-12 18:09:01
587
转载 详解UML中的6大关系(关联、依赖、聚合、组合、泛化、实现)
大话设计模式上的一个图,我用EA画出来的: UML中的6大关系相关英文及音标: 依赖关系 dependency [di'pendənsi] 关联关系 association [ə,səuʃi'eiʃən] 聚合关系 aggregation
2014-02-11 23:51:58
464
转载 UML关系(泛化,实现,依赖,关联(聚合,组合))
UML的构造快包含3种: (1) 事物(4种):结构事物,行为事物,分组事物,注释事物(2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系(3) 图(10种):用例图,类图,对象图,包图,组件图,部署图,状态图,活动图,序列图,协作图事物是对模型中最具代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。 (2) 关系(4种
2014-02-11 23:42:50
558
转载 Struts2标签实现for循环
在struts2及webwork中要实现如:for(int i=0;i还是需要一些技巧的,我在做分页条的时候,要输出页码,怪了,用迭代器不行的,看了一下struts2的文档及例子也没发现用计数器的地方,偶然看了一下bea标签,哦,原来如此.... counter: 其中first属性指定循环起始值,last指定循环终止值,其它相关属性可以查看org.a
2009-08-11 09:46:00
842
转载 CXF与spring集成
1. 新建web project ,并加入apache-cxf-2.0.7/lib所有包,编写要发布的web service 接口和实现.这一步,与前面一样。import javax.jws.WebService;@WebService public interface HelloWorld { public String sayHello(String text)
2009-08-04 18:27:00
864
转载 快速上手使用CXF
一. 简介Apache CXF 是一个Service框架,他简化了Service的创建, CXF实现了JAX-WS2.0规范,并通过了JAX-WS2.0 TCK; CXF和Spring无缝集成;CXF支持多种传输协议(HTTP, JMS, Corba等), 支持多种Binding数据格式(SOAP,XML,JSON等), 支持多种DataBinding数据类型(JAXB, Aegis) 。C
2009-08-04 18:27:00
1359
转载 使用Simple Frontend+Aegis方式发布并获取webservice
有时并不想用注释类或使用JAX-WS API.CXF包含一个简单的Frontend,允许你把任何类发布成web service且不需要额外的工作。不需要在业务接口中设置具体的协议、@Web Service、@Web Method,仅仅需要创建与具体webservice技术无关的业务接口就可以了, 利用代理类进行发布服务和获取服务一.简单实例1. 编写业务接口和类:public int
2009-08-04 18:24:00
646
转载 采用JAX-WS Annotated Services from Java+JAXB发布获取web service
采用JAX-WS Annotated Services from Java+JAXB发布获取web service CXF有多种数据绑定方式,如:Aegis Databinding,JAXB,MTOM Attachments . 其中JAXB(JavaTM Architecture for XML Binding)是其默认的数据绑定方式。JAXB是一套自动映射XML和Java实例的开发接
2009-08-04 18:19:00
737
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人