嗯。

嗯。

架构的一些考虑点

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

2019-04-12 19:43:30

阅读数 76

评论数 1

一些sql题

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

2019-04-09 20:00:22

阅读数 79

评论数 0

在线数据迁移的一点想法

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

2019-01-16 17:36:19

阅读数 128

评论数 0

xxl-job研究心得

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

2018-10-31 19:47:26

阅读数 1184

评论数 0

一些心得 不断更新

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

2018-09-19 17:07:59

阅读数 110

评论数 0

canal入门

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

2018-08-02 14:40:40

阅读数 101

评论数 0

定时任务做etl清洗小记

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

2018-07-30 18:54:00

阅读数 249

评论数 0

disruptor学习

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

2018-07-30 18:48:49

阅读数 80

评论数 0

消息发送一致性

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

2018-06-19 14:19:53

阅读数 235

评论数 0

Apollo配置中心

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

2018-05-22 19:27:35

阅读数 535

评论数 0

zigzag数字压缩算法

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

2018-04-25 17:43:53

阅读数 586

评论数 0

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

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

2018-04-12 10:27:48

阅读数 552

评论数 0

分布式事务中间件myth研究总结

查看的源码是master分支 时间2018.04.10这一款分布式事务中间件是基于mq进行补偿不支持回滚 所以发起rpc操作就意味着成功,注意调用的顺序比如现在有一个发起者和两个提供者,发起者需要调用2个提供者暴露的服务先看发起者发起者在调用带有@myth注解的事务方法的时候,会先执行aop拦截,...

2018-04-10 10:38:45

阅读数 1194

评论数 1

分布式全局序列号

1 本地文件方式 磁盘io 读写慢2 数据库mysql 设置当前num和步长,单点问题 注意并发修改当挂掉的时候 有缺失的一段,但不会重复3 snowflake4 本地时间戳??mycat看到的 snowflake的变种?ID= 64 位二进制 (42(毫秒)+5(机器 ID)+5(业务编码)+1...

2018-03-27 15:26:12

阅读数 367

评论数 0

设计模式——行为型

11种策略模式做同一件事情不同的方法,项目中都很多规则,每一种格式不一样,用了策略模式使用不同的策略解析模板方法模式父类定义一个流程,子类去实现观察者模式可以用来做满足某种条件触发的一些工作迭代子模式java中的迭代器就是责任链模式springmvc controller的拦截器 tomcat中的...

2018-03-19 16:38:07

阅读数 92

评论数 1

设计模式——结构型

7种适配器模式对于某些接口不一致的情况,可以用适配器模式,比如springmvc中的HandlerAdapter外观模式使用外观模式对其他jar包的接口封装了一层。对于其他模块使用该模式,可以对一些类只暴露你想暴露的接口代理模式不用多说,框架里面都是代理。装饰器模式可以对某个方法进行装饰,以增强功...

2018-03-19 15:01:47

阅读数 86

评论数 0

https

https://www.cnblogs.com/zhangshitong/p/6478721.htmlhttp://blog.csdn.net/kobejayandy/article/details/52433660http://blog.csdn.net/chroming/article/det...

2018-03-02 14:08:37

阅读数 160

评论数 0

跨域问题相关

http://blog.csdn.net/james_wade63/article/details/50772041http://blog.csdn.net/hj7jay/article/details/73613288https://segmentfault.com/a/119000001246...

2018-03-02 14:06:08

阅读数 70

评论数 0

分布式锁实现

数据库实现 利用唯一索引 插入删除数据 注意死锁 系统崩溃的情况 zookeeper 分布式锁可以使用curator库的InterProcessMutex redis 参考 http://wudashan.cn/2017/10/23/Redis-Distributed-Lock-Implem...

2018-03-01 10:58:14

阅读数 128

评论数 0

工厂模式 五种写法总结

转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52798423本文出自:【张旭童的博客】系列开篇瞎BB设计模式相关的文章学习与总结,一直有意为之,一直又觉得时机不到。一 是怕自己代码经验还不够,学习了也不懂,强行理解没有意义。二 是怕自...

2018-01-30 17:04:17

阅读数 556

评论数 0

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