排序:
默认
按更新时间
按访问量

一些心得 不断更新

不要把一些业务逻辑写在controller层,当你需要提供rpc接口的时候,不得不把controller中的业务操作沉下来,所以业务操作就应该放在service层。 返回给前端或者其他微服务需要封装成一个对象 不要传数组或者一个id 这样以后返回值需要加字段客户端必须得做兼容性。 不同业务模块...

2018-09-19 17:07:59

阅读数:12

评论数:0

canal入门

MysqlEventParser的start方法启动了一个parseThread线程消费,里面分了并行和非并行2种操作,并行的情况看mysqlConnection#dump方法,获取buffer之后使用MultiStageCoprocessor发布,MultiStageCoprocessor本质上...

2018-08-02 14:40:40

阅读数:36

评论数:0

定时任务做etl清洗小记

etl清洗数据 2次定时任务取数据有重叠,做不到不漏也不多,做幂等性太繁琐,可考虑做一个统一的支持所有业务的封装的幂等中间件。 取数据也有问题,怎么取,取多了oom。 数据一致性,一个表依赖另外2个表,怎么保证下一次用到的时候没有其他表对其修改导致数据不一致。可能是当前定时任务,这种情况可以业...

2018-07-30 18:54:00

阅读数:78

评论数:0

disruptor学习

ringbuffer优点 数组,比链表快,因为是连续的,所以相邻的会被一起加载,缓存行 元素不删除,被覆改,没有垃圾回收,内存使用率低 指向队尾元素的指针是volatile变量,无锁 相对于阻塞队列,消费者每次加锁只能获取一次插入数据,而consumer开始移动时,会调用barrier的w...

2018-07-30 18:48:49

阅读数:39

评论数:0

quartz源码分析参考

http://royliu.me/2017/04/13/quartz2-x-code-analyse-startprocess/ https://www.cnblogs.com/liuroy/p/7517777.html http://www.icartype.com/?p=140 http...

2018-07-20 14:56:41

阅读数:47

评论数:0

Mysql 5.7 从节点配置多线程主从复制

Mysql 采用多线程进行复制是从 Mysql 5.6 开始支持的内容,但是 5.6 版本下有缺陷,虽然支持多线程,但是每个数据库只能一个线程,也就是说如果我们只有一个数据库,则主从复制时也只有一个线程在工作。相当于还是以前的单线程。 从 Mysql 5.7 开始支持同一数据库下并行主从复制。不过...

2018-07-02 17:21:04

阅读数:56

评论数:0

mac os 安装2个jdk版本报错

objc[916]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/java and /Library/Java/J...

2018-06-29 18:11:18

阅读数:46

评论数:0

消息发送一致性

1 2 3步 先扔消息队列 4 如果发送成功 进行业务处理 否则退出业务 5 6 发送确认消息存在的问题2 第二步消息中间件存储成功或失败之后,消息中间件挂了 应用不知道消息入库的结果3 返回应用结果超时,应用不知道消息入库的结果,如果成功,但是结果没有给应用,导致不一致,或者应用挂了,没来得及处...

2018-06-19 14:19:53

阅读数:61

评论数:0

spring cloud ribbon

spring-cloud-commons包下有一个类LoadBalancerAutoConfiguration,创建了RestTemplateCustomizer和LoadBalancerInterceptor,前者将后者设置到restTemplate中,list.add(loadBalancer...

2018-05-30 14:55:31

阅读数:67

评论数:0

kafka延时队列相关操作

TimingWheel是kafka时间轮的实现,内部包含了一个TimerTaskList数组,每个数组包含了一些链表组成的TimerTaskEntry事件,每个TimerTaskList表示时间轮的某一格,这一格的时间跨度为tickMs,同一个TimerTaskList中的事件都是相差在一个tic...

2018-05-29 11:25:07

阅读数:984

评论数:0

mybatis流程分析

从SqlSessionTemplate说起SqlSessionTemplate内部有一个sqlSessionProxy,当调用insert,update,getConnection等方法的时候,实际上是调用了代理类,sqlSessionProxy是由动态代理生成的,对应的InvocationHan...

2018-05-24 20:56:10

阅读数:69

评论数:0

Apollo配置中心

创建一个app(项目)的时候,portal模块默认创建一个appnamespace,config模块创建一个默认集群,一个appnamespace和一个namespace(是根据appnamespace创建的,即取出所有的appnamespace,然后创建对应的namespace)创建集群的时候,...

2018-05-22 19:27:35

阅读数:194

评论数:0

kafka 生产者流程总结

ProducerInterceptor.onSend()方法对消息进行拦截处理调用waitOnMetadata方法获取集群元数据将topic添加到metadata的topics集合中,获取集群中分区数cluster.partitionCountForTopic(topic);,如果不满足则会调用m...

2018-05-17 20:47:55

阅读数:101

评论数:0

dubbo 服务暴露过程

先发图镇楼serviceconfig#doExportUrlsFor1Protocol方法会先做一个代理,ref就是业务实现类,Invoker<?> invoker = proxyFactory.getInvoker(ref, (Class) inter...

2018-05-06 13:20:54

阅读数:77

评论数:0

zkui使用 登录报KeeperErrorCode = ConnectionLoss for /

zkSessionTimeout=20 设置大一点就可以了https://blog.csdn.net/haitianisgood/article/details/72512607http://blog.51cto.com/tianshili/2072339

2018-04-27 20:30:40

阅读数:771

评论数:0

zigzag数字压缩算法

大致逻辑是将符号位挪到最后,剩下的31位往前挪一位,然后负数的话剩下的取反然后每七位为一组,如果(v & 0xffffff80) != 0L,0xffffff80 = (1111111111111111111111111111111111111111111111111111...

2018-04-25 17:43:53

阅读数:176

评论数:0

spring事务总结

场景事务方法m1调用事务方法m2如何判定一个事务存在每次调用doGetTransaction时会从threadlocal中获取ConnectionHolder,如果txObject.getConnectionHolder() != null && t...

2018-04-20 17:42:10

阅读数:75

评论数:0

再读concurrentHashMap

java7内部有一个Segment 数组Segment 继承了ReentrantLock构造函数concurrencyLevel (最大MAX_SEGMENTS = 1 << 16)ssize 最小的大于大于构造参数concurrencyLevel 的2...

2018-04-19 16:14:51

阅读数:56

评论数:0

再读hashmap

java8threshold 阀值 table.length*loadFactorloadFactor 负载因子 默认 DEFAULT_LOAD_FACTOR = 0.75f; 当大于size 当前key value数量modCount 表示map严格修改的次数 这里包括新添加一个键值对,修改替换...

2018-04-19 13:41:37

阅读数:50

评论数:0

分布式事务中间件tcc-tranction研究总结

查看源码的分支是master-1.2.x 时间2018.04.12也是通过aop拦截业务方法,业务方法上带有Compensable注解1 刚开始是trying阶段,先创建事务日志,状态为trying,然后进入业务方法发起rpc操作,链式的调用提供者的带有Compensable注解的业务方法,当某一...

2018-04-12 10:27:48

阅读数:185

评论数:0

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