6 芋智波佐助

尚未进行身份认证

菜鸟一只

等级
TA的排名 774

架构的一些考虑点

异地多活?弹性扩容?数据的备份如消息队列es数据库等容灾切换包含了“数据库切换”“缓存容灾切换”“多活规则切换”“中间件切换”“负载均衡切换”“域名解析切换”等多个环节定时任务尽量不要根据当前时间做业务处理如果停机就会缺少一部分处理能支持传参时间幂等重试如果定时任务是处理从当前开始到之前未处理的任务是没问题的什么时候执行都没问题...

2019-04-12 19:43:30

一些sql题

给一个,一个表记录了某论坛会员的发贴情况,存储了会员id,发贴时间和内容。找出连续发贴n次及以上的会员。一个表存了用户ID,用户上线时间和下线时间,用户一天中可多次上线下线,求这一天中哪个时刻在线人数最多,sql如何实现?每一行是1,2,3,4等数据。要求累计报表求和。结果为,1,3,6,10。用于看激活数据累加。因为一个月前的激活数据会改变,所以这个表每天刷新一次用户id,页...

2019-04-09 20:00:22

mybatis一级缓存和InnoDB一致性非锁定读

突然发现mybatis的一级缓存和InnoDB一致性非锁定读不谋而合啊之前一直觉得你开启事务的情况下查询之后接下来如果继续查询中间没有增删改,那你是查不到其他事务的修改的结果的。现在发现InnoDB一致性非锁定也是这样啊你开启事务查询会得到应该快照所以mybatis的一级缓存不会带来额外的问题,因为就算你不缓存你查询还是查不到新的。不开启事务就更加没这个问题了。那怎么测试...

2019-03-05 19:34:36

NoSuchMethodError: org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.setMessag

25-Feb-201914:42:48.395信息[RMITCPConnection(5)-127.0.0.1]org.apache.catalina.core.ApplicationContext.logNoSpringWebApplicationInitializertypesdetectedonclasspath25-Feb-201914:42:48.973信...

2019-02-25 17:37:05

mysql死锁问题收集

2019-01-2710:45:200x7f47600bd700***(1)TRANSACTION:TRANSACTION1164073413,ACTIVE0secinsertingmysqltablesinuse1,locked1LOCKWAIT3lockstruct(s),heapsize1136,2rowlock(s),undol...

2019-02-11 17:37:16

在线数据迁移的一点想法

方案:上线代码中启动的时候获取表中最大的id,记为maxId,然后如果insert插入新的库,查询删除修改判断id是否大于maxId,如果是走新库。对于小于等于maxId的数据走老库,同时监听binlog,发到消息队列堆积,暂不消费,因为可能老数据还没有迁移,做数据纠正。然后注意一下如果插入数据要唯一,注意去老库校验一下唯一性,因为新库没数据。问题1如何保证一上线之后的对老数据的修改...

2019-01-16 17:36:19

lucene 4.x 近实时搜索

请支持原创博客http://blog.csdn.net/cl59452/article/details/38408741lucene2.9之后推出了nrtmanager  近实时搜索,但是很多人在lucene4.x中找不到了,我通过查阅apache的log发现,lucene已经用ControlledRealTimeReopenThread将nrtmanager替代了具体的实现过程如下...

2018-11-15 11:03:02

xxl-job研究心得

最近2天花了点时间研究xxl-job项目还是比较小的分布式调度中心调度中心基于quartz的,job的信息还是持久化到mysql中的,调度的时候也是用数据库锁的方式避免重复获取统一任务,然后分发调执行器端,分发使用rpc方式,本质使用了jetty执行器作为客户端,执行器启动的时候回向调度中心注册。任务可以在执行器端,使用@JobHandler注解,需要在admin控制台配置一个对...

2018-10-31 19:47:26

org.eclipse.swt.SWTException: Invalid thread access

***WARNING:DisplaymustbecreatedonmainthreadduetoCocoarestrictions.Exceptioninthread"main"org.eclipse.swt.SWTException:Invalidthreadaccess   atorg.eclipse.swt.SWT.error(SWT.java:4...

2018-10-18 11:01:12

MessageBodyWriter not found for media type=application/x-www-form-urlencoded

MessageBodyWriternotfoundformediatype=application/x-www-form-urlencodedpost的时候不要自定义类型,使用Form不然要写对应的provider。否则就报找不到对应的MessageBodyWriter Formform=newForm();form.param("key",key).para...

2018-10-17 18:01:48

一些心得 不断更新

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

2018-09-19 17:07:59

canal入门

MysqlEventParser的start方法启动了一个parseThread线程消费,里面分了并行和非并行2种操作,并行的情况看mysqlConnection#dump方法,获取buffer之后使用MultiStageCoprocessor发布,MultiStageCoprocessor本质上使用了disruptor这个框架,将buffer,经过ringbuffer中的所有消费者处理完之后,最...

2018-08-02 14:40:40

定时任务做etl清洗小记

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

2018-07-30 18:54:00

disruptor学习

ringbuffer优点数组,比链表快,因为是连续的,所以相邻的会被一起加载,缓存行元素不删除,被覆改,没有垃圾回收,内存使用率低指向队尾元素的指针是volatile变量,无锁相对于阻塞队列,消费者每次加锁只能获取一次插入数据,而consumer开始移动时,会调用barrier的waitFor方法,得到一段。生产者也是,可以获得一批插入的位置,然后多个生产者分别插入自己获得的位...

2018-07-30 18:48:49

quartz源码分析参考

http://royliu.me/2017/04/13/quartz2-x-code-analyse-startprocess/https://www.cnblogs.com/liuroy/p/7517777.htmlhttp://www.icartype.com/?p=140https://blog.csdn.net/wenniuwuren/article/details/45866...

2018-07-20 14:56:41

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

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

2018-07-02 17:21:04

mac os 安装2个jdk版本报错

objc[916]:ClassJavaLaunchHelperisimplementedinboth/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/javaand/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jr...

2018-06-29 18:11:18

消息发送一致性

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

2018-06-19 14:19:53

spring cloud ribbon

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

2018-05-30 14:55:31

kafka延时队列相关操作

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

2018-05-29 11:25:07

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!