自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 详解dubbo中的超时机制(2)

接上篇2.7.3 中的超时机制在2.7.3中,超时机制有很大的改动,下面直接进入源码。2.7.3 org.apache.dubbo.rpc.protocol.dubbo.DubboInvokerprotected Result doInvoke(final Invocation invocation) throws Throwable { RpcInvocatio...

2020-10-21 13:02:25 840

原创 分库分表要怎么做?

分库分表解决了什么?分库:db连接数有上限,分库可以增加并发量。分表:表数据太多,查询效率太低,分表可以提高查询速度。分库分表有几种类型?水平拆分:表结构不变,只是有原来的一张表切分成了很多张表。垂直拆分:1、冷热数据拆分,将冷数据拆到其他表中,然后可以将不变的冷数据同步到缓存,减少主表查询的io量。2、微服务业务拆分,现在需要成立新的业务用到主表中的部分字段,那就直接把这部分字段拆出去。怎么做分库分表?1、如何选择分库分表字段?答案是根据你的业务来,举个例子,你最重要的

2020-10-14 01:56:08 1178

原创 Kolakoski数列

Kolakoski数列这个数列实在是太有趣了,几年前写过发在另一个博客上,转载过来。代码是swift写的,因为那时候比较空所以在研究swift和oc,等到有时间再把代码改成java吧。。。//: Playground - noun: a place where people can playimport UIKitvar n = 30;//求Kolakoski数列第n项的值var set1 = [2,1,3,1];var arr = Array<Int>();func

2020-06-04 16:47:39 276

原创 dubbo是如何使用netty的?(1)

最近在复习netty,于是重新看了下dubbo是怎么使用netty的,分为server和client两部分,这篇先讲server端。首先需要发布一个服务,看Protocol接口:找到他的默认实现DubboProtocol中的export方法:然后看到这里:进bind方法看一下:这里又出现一个新的接口Exchanger:到他的默认实现Heade...

2020-04-16 13:12:32 1164 1

原创 详解dubbo中的超时机制

最近有个同事问起dubbo中的客户端超时和服务端超时的区别,凭印象跟他简单解释了下,讲的过程中发现忘了不少细节,于是去看了dubbo的这部分源码,并且比较了2.7.3与2.5.x这两个版本的不同。2.5.x 中的超时机制请求起点:com.alibaba.dubbo.rpc.protocol.dubbo.DubboInvoker @Override protected R...

2019-09-29 15:52:16 1287

原创 比较jdk spi和dubbo spi(1)

ServiceLoader首先讲下常见用法://spi接口public interface IHello { void sayHello();}//接口实现public class HelloImpl1 implements IHello { @Override public void sayHello() { System.out.pr...

2019-09-26 16:20:50 156

原创 JDK8 FutureTask源码解析

首先讲一下FutureTask的运行状态,源码中用state这个私有属性来描述当前FutureTask的状态。state一共有以下几种:private volatile int state;//初始状态private static final int NEW = 0;//完成中private static final int COMPLETING = 1;//...

2019-09-11 20:53:05 179

原创 CountDownLatch踩坑记录

1、一定要用带过期时间的await方法,防止线程发生意外,最终导致任务没有countdown,最后程序卡死在await方法上。public boolean await(long timeout, TimeUnit unit)2、使用带过期时间的await时,如果达到timeout时间,被await阻塞的主线程会继续往下执行,此时进行countdown的任务线程可能仍在执行中。通常我们使用...

2019-08-27 22:10:44 6368

原创 如何在内存中存储大量int

在之前项目中,我的同事遇到了频繁full gc的情况,帮他排查发现,他在内存缓存了一个Map,里面存了大量的Integer,大约7000W,这部分占了大量的内存。后来通过改变数据结构,从原来的Hashmap改为Bitmap,解决了这部分内存问题,发布后,内存占用明显减少。Bitmap介绍Bitmap(jdk中实现叫BitSet)就是用一个bit位来标记某个元素对应的Value, 而Ke...

2019-08-27 10:42:15 602

原创 MyBatis 使用PageHelper分页不起作用

记录一个坑爹的问题,springboot坏境下使用PageHelper不起作用PageHelper.startPage(pageNo,pageSize)上面语句跟随的mapper查出来的总是所有数据,并没有分页。排查之后发现问题出在pom文件依赖错了,springboot坏境要用&lt;dependency&gt; &lt;groupId&gt;com.github.pagehelper&...

2018-06-06 16:50:50 22120 14

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除