自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java线程池的实现原理

jdk自带的线程池有ThreadPoolExecutor、ScheduledExecutorService、ScheduledThreadPoolExecutor、ExecutorService,我们可以使用工具类Executors来创建。简单看看线程池ThreadPoolExecutor的实现原理。1.使用线程池的原因由于创建和回收线程的成本比较高,所以我们会使用线程池来减少线程的频繁创建和回收...

2018-04-14 15:28:07 218

原创 Dubbo 代码结构整理

先上张图,可以看到dubbo的模块划分和层次划分有一定对应关系,我的水平评价不出代码好坏,但是很喜欢这种代码结构。1.每一层的功能Service:需要暴露的接口。服务端会实现接口暴露服务,客户端会将接口反射之后调用远程服务。 Config:xml配置文件中各种标签所属的java类。 Proxy:使用javassist、或者jdk动态代理生成的类,以及stub和local功能的实现。服务端的Abst...

2018-04-13 01:32:31 782

原创 Dubbo 源码再整理(整理中)

1.ExtensionLoader 加载类的过程以 Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension()为例1.1.ExtensionLoader.getExtensionLoader(Protocol.class)ExtensionLoader.getExtens...

2018-04-12 02:37:31 163

转载 mark一下dubbo不适合传输大文件

之前梁峰发的:因dubbo协议采用单一长连接,如果每次请求的数据包大小为500KByte,假设网络为千兆网卡(1024Mbit=128MByte),每条连接最大7MByte(不同的环境可能不一样,供参考),单个服务提供者的TPS(每秒处理事务数)最大为:128MByte / 500KByte = 262。单个消费者调用单个服务提供者的TPS(每秒处理事务数)最大为:7MByte / 500KByt...

2018-04-10 14:09:02 3878

原创 使用redis生成分布式循环自增的id

知道redis有原子性执行lua脚本的能力就好办了,命令介绍在这:http://doc.redisfans.com/script/eval.html实现就一句话....是不是有点水....额当redis>9时又重新从0开始:eval "local cur=redis.call('INCRBY', KEYS[1], 1);if(cur>9) then redis.call('set', ...

2018-03-28 21:24:49 3117

原创 Paxos 算法 的理解

Paxos 算法首先,mark一个网上的一个视频,可以有一个初步的了解,虽然可能不完善http://www.tudou.com/programs/view/e8zM8dAL6hM/?qq-pf-to=pcqq.group1.解决的问题分布式系统采用多副本的形式进行存储,必须保证每台服务器上的副本都是一样的,才能保证数据一致性。所以多个用户分别向多台服务器上提交请求时,最终的每台服务器上的副本都是一...

2018-03-27 23:00:22 263

原创 一致性hash算法通俗描述

背景: 当客户端调用redis缓存集群(比如3台)存取数据时, 如果客户端采用普通的hash求余(id%3)的算法,来计算该数据应该由哪台redis服务器存取,  当算法是:id%机器数,redis服务器和id的对应关系有: id%3时===>redis1:0/3/6/9,redis2:1/4/7,redis3:2/5/8, 当redis集群中一台服务器 redis3 down掉后,h...

2018-03-27 18:29:46 339

原创 canal 停机后继续从上次位置拉取binlog的原理

CanalMetaManager 和 CanalLogPositionManager1)canalInstance->CanalMetaManager 1对12)canalInstance->CanalLogPositionManager 1对多 当groupDbAddresses的groupSize()>1时 为1对多因为:canalInstance->CanalEventPar

2017-12-29 18:55:04 6861 2

原创 java.sql.SQLException: Column Index out of range, 2 > 1.

java.sql.SQLException: Column Index out of range, 2 > 1.

2017-12-20 15:24:38 4903

原创 otter如何保持数据有序,回滚时如何丢弃避免重复执行,是否存在重复执行,重复执行是否有影响

otter如何保持数据有序,回滚时如何丢弃避免重复执行,是否存在重复执行,重复执行是否有影响

2017-07-14 16:09:56 622

原创 zookeeper中选举leader过程

注:选举leader的过程是参考zookeeper3.3.1.jar1.名词选举端口electionAddr:我们知道zookeeper选举时的端口是通过配置文件zoo.cfg配置的,zookeeper将配置文件转换成QuorumServer对象,其中electionAddr属性对应选举端口,对应server.1=registry2.dubbo.host:2888:3888中的38

2016-02-22 19:44:46 560

原创 count++不是原子性操作测试

package com.ssy.base;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;public class CountJIAJIATest {    public static void main(String[]

2016-02-01 16:53:45 923

原创 生成活动码,每次获取的记录不重复

思路:1.生成活动码 2.随机打乱顺序 3.将生成的活动码对象(list)写入文件 4.每次获取记录并删除未经同意不得转载package l_gen_numbers;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import j

2015-09-10 10:31:03 531

空空如也

空空如也

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

TA关注的人

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