51CTO博客开发
我们知道在关系型数据库里面事务有四个属性:原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的
这段时间一直在思考分布式事务的实现,一开始的思路总是停留在应用层面上,后来经过查看相关资料才知道,要支持分布式事务得需要数据库的支持,也就还是回到了数据库层面,另外在Java里面结合javax.sql扩展包里面使用两段提交协议能轻松支持分布式事务。 后来自己结合之前做过的一些项目,发现原来之前实现的功能已经利用消息队列
今天看到一个技术群里面聊到事务与并发的关系,发现好多开发者的理解不一样,想把自己再工作中遇到的例子在这里呈现出来,以告诉大家自己所理解的事务与并发,先简单说下流程吧! 我们公司的A,B系统通信使用的是ActiveMQ,主要是订单状态的通信,之前遇到的一个问题是A系统通过一个事务修改了订单的状态要通过ActiveMQ通知B系统,B系统收到
package test; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arr
本人博客搬家至 http://blog.csdn.net/chenyanxiliujun
从事Java多线程开发的程序员来说,了解Java的线程池实现原理是必不可少的,以下将会结合Java线程池代码来说明它的实现原理,首先,我们要思考:线程池的表现形式线程池里面的线程什么时候创建线程池里面的线程什么时候结束或者该不该结束线程池的实现原理说道Java线程池就不得不说ExecutorService接口和Executors类了,从源码上来看Executo
之前公司有个同事离职,然后我交接了他的一些项目,其中有一个日志项目,主要就是业务部门调用Client往服务器上传日志文件,这个过程使用了netty,问题很奇怪大致如下:1:一天中总有那么几个文件会上传失败报的异常信息是:20:08:03.937] WARN DefaultPromise - An excepti
最近花了一周的时间,写了一个可扩展的RPC框架,服务可扩展,协议可扩展,目前只有实现netty的服务,协议分别实现了hessian和java自带的序列化协议,后续有时间灰更新其他的服务以及协议,传输协议使用自己自定义的协议前四个字节表示长度,后一位字节表示协议内容长度,后面的字节表示协议,在后面的就是个序列化的Object了,废话不多说了,项目地址:开源中国地址:htt
这篇将会是持续更新的博客,因为这个主要记录自己在团队沟通中遇到的问题,现在把它记录下来,希望能找到共鸣的人。 之前一个项目部署到线上的时候出了点问题,我一直以为是数据库数据的问题,于是找了leader反应情况(因为数据库初始化是由他那边才有权限操作的),他那边一直都说数据没问题,肯定是我代码的问题,可是我知道代码从来都没变
我们一直在说并发编程,我们只知道JDK5有个并发编程包帮我们封装好了多线程下的复杂处理机制,这篇文章的重点不是说它的底层实现原理,只想说下并发包的编程模式思想,我以前一直在想这种思想来源于哪里,面向对象编程的好处应该就是能总结一种模式,只有定义了模式理解了模式,我们平常才能更好的理解一些复杂的编程,这就是抽象到理论的过程吧!我们的前辈把这些编程思想
之前在InfoQ看到一篇关于java重排序的一篇文章,觉得里面有些知识写得太绝对了,于是想通过实际程序来说明一下: 关于java重排序,这里就不做介绍了,我们知道JVM底层封装了与OS的交互,它内部有自己的一套类似于OS的内存模型,程序重排序的设计思路基本上是来源于OS跟硬件层面的设计。下面直接入正题吧! &nbs
import java.util.List; import java.util.Map; import org.elasticsearch.action.bulk.BulkRequestBuilder; import org.elasticsearch.action.bulk.BulkResponse; import org.elasticsea
import java.util.List; import java.util.Map; public interface IIndexService<T> { /** * 插入数据 &nb
根据elasticsearch的API,首先,要创建一个客户端实例Client,代码如下 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.elasticsearch.clie
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号