java之幂等性思考

一、什么是幂等?看一下维基百科怎么说的:幂等性: 多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。二、使用幂等的场景1、前端重复提交用户注册,用户创建商品等操作,前端都会提交一些数据给后台服务,后台需要根据用户提交的数据在数据库中创建记录。如果用户不小心多点了几次,
2021年01月27日 482次浏览

dubbo之统一异常处理

难点利用AOP集中处理,将目标包,进行包裹处理,将异常try捕获之后,做统一结果集封装对于,用事务的方法,需单拎出来处理,由于事务只会对RunTimeException生效,Exception不对事务生效,需将异常捕获,转化为RunTimeException来触发事务回滚例子/** * 服务层异常处
2021年01月20日 641次浏览

java知识点扫盲

什么是Dubbo的泛化调用是什么?答:一般调用,Dubbo必须依赖服务端提供的api包,如果服务端升级了api包,客户端也必须跟着升级。泛化接口调用方式主要用于客户端没有 API 接口及模型类元的情况,参数及返回值中的所有 POJO 均用 Map 表示。某种原因没有服务接口,而要发起服务的调用,就需
2021年01月20日 540次浏览

java之多线程

java多线程之优雅的并发批量查询大数据量 | wangdaye's blog
2020年12月17日 363次浏览

java之五种分布式事务实现方案

一.两阶段提交方案/XA 方案XA方案2PC的传统方案是在数据库层面实现的,如Oracle、MySQL都支持2PC协议,为了统一标准减少行业内不必要的对接成本,需要制定标准化的处理模型及接口标准,国际开放标准组织Open Group定义分布式事务处理模型DTP(Distributed Transac
2020年12月14日 786次浏览

多线程编程之synchronized锁的升级优化

synchronized锁升级优化在JDK1.6以前,使用synchronized就只有一种方式即重量级锁,而在JDK1.6以后,引入了偏向锁,轻量级锁,重量级锁,来减少竞争带来的上下文切换。Java对象头每个对象都拥有对象头,对象头由Mark World ,指向类的指针,以及数组长度三部分组成Ma
2020年12月12日 419次浏览

源码分析之HashMap

Java 8 中 HashMap 的实现使用了很多位操作来进行优化。本文将详细介绍每种位操作优化的原理及作用。Java 中的位运算位操作包含:与、或、非、异或移位操作包含:左移、右移、无符号右移HashMap 中的位运算计算哈希桶索引hashCode 方法优化指定初始化容量扩容方法里的位运算总结回顾
2020年12月12日 439次浏览

中间件编程之提高ES查询速度

性能优化的杀手锏——filesystem cache你往 es 里写的数据,实际上都写到磁盘文件里去了,查询的时候,操作系统会将磁盘文件里的数据自动缓存到 filesystem cache 里面去。es 的搜索引擎严重依赖于底层的 filesystem cache ,你如果给 filesystem
2020年12月11日 681次浏览

中间件编程之RocketMq消息中间件消息堆积处理

我们一个一个来梳理吧,先假设一个场景,我们现在消费端出故障了,然后大量消息在 mq 里积压,现在出事故了,慌了。大量消息在 mq 里积压了几个小时了还没解决几千万条数据在 MQ 里积压了七八个小时,从下午 4 点多,积压到了晚上 11 点多。这个是我们真实遇到过的一个场景,确实是线上故障了,这个时候
2020年12月11日 1,122次浏览

zookeeper中间件使用之独占锁与共享锁

ZooKeeper提供分布式协调服务,应用非常广泛,虽然出现了其他服务发现组件,比如etcd、consul,但是仍然可以看到ZooKeeper在Kafka、Solr、Hbase、Stom等方面的应用。分布式锁是其中一个使用特性,分布式锁包含排他锁和共享锁两类锁。1. 排他锁1.1 简介又称为写锁或者
2020年12月11日 726次浏览