java设计模式
机智的白开水
这个作者很懒,什么都没留下…
展开
-
zookeeper集群中的server是如何选举的?
zookeeper的leader选举只有两种情况才会发起1.zookeeper集群初始化2.leader机器崩溃首先就是集群初始化时候的选举,从zk的启动脚本能看到,zk集群的启动的入口是org.apache.zookeeper.server.quorum.QuorumPeerMainif [ "x$JMXDISABLE" = "x" ] || [ "$JMXDISABLE" = 'false' ]then echo "ZooKeeper JMX enabled by default"原创 2022-03-04 18:07:54 · 1733 阅读 · 0 评论 -
项目实战中Zookeeper使用心得?
关于zookeeper的部分心得原创 2022-03-01 16:25:04 · 650 阅读 · 0 评论 -
ThreadLocal和Synchonized 在项目实战中到底有什么区别?
ThreadLocal和Synchonized作为线程安全的两种选择,在项目中会大量使用,不过现在一想到线程安全,首先想到的就是方法或者变量中用Synchonized修饰,用锁的形式,保证多线程情况下的安全问题。ThreadLocal在项目中很少使用,但是在面试八股文中这个关键字特别受到面试官老爷的喜欢,里面涉及到的关于弱引用、对象备份、多线程安全概念都是十分重要的。ThreadLocal,就是线程的本地变量,如果创建了一个ThreadLocal,那么访问这个变量的每个线程都会本地拷贝一份,这个线程的方原创 2022-02-25 18:03:37 · 197 阅读 · 0 评论 -
java设计模式之动物园联欢大会
最近陪孩子读绘本,看到各种各样的小动物,其中印象最深的当属一篇,动物园召开联欢大会的故事。主要剧情就是动物园召开联欢大会,很多小动物应邀前往,主办方为了招待这些小动物,根据食草性和食肉性进行划分,就这么一个小需求。作为程序员的老爸,不会放过任何一个发挥联想的机会,废话不说准备开干。首先就是开发各式各样小动物的枚举值。/** * 动物枚举值 */public enum animalEnum { ANIMAL_DOG("dog", "小狗"), ANIMAL_CHICKEN(原创 2020-11-30 14:01:27 · 531 阅读 · 0 评论 -
基于zookeeper的定时任务调度
最近这段时间项目改造的需求是一个接着一个,不少前人挖的深坑都得让我们这帮后人们填埋进去,但是项目运行了七八年了,已经不能满足新需求开发要求的迅速和规范。所以开发组研究决定,分步骤的解决这些历史遗留的问题。首先解决的就是定时任务的调度问题,因为系统中有很多过滤数据以及对外同步数据的job,统计起来有五六十个定时任务,这些任务分别部署在两台机器上,因为定时时间都是设定的一样的,导致有时候同一个定时任务会被执行两次,这样的话会造成数据的混乱。这是第一个要解决的问题,因为每天维护那些因为定时任务执行两次造成的错原创 2020-06-03 15:52:37 · 1611 阅读 · 0 评论 -
SpringBoot中AOP的具体实例-记录请求和返回日志
由于单位的日志记录系统过于雍于和混乱,发展到今天的已经四五个年头了,当年很小的问题经过几年的增量发展已经到了很严重的地步。日志记录混乱,出现问题时无法快速定位错误信息,以及日志的请求和响应报文。这就导致运维的工作量成倍的增加,单位几个运维人员每天都要在浩瀚的日志文件中寻找某条有用的信息,这样导致系统的日志文件不敢轻易的删除,这样系统文件越来越重。其实整体看下来问题就两个1.日志记录没有进行前期的规划。2.全部的日志文件直接存在服务中,并没有进行侧重点的细分。解决这两个问题,首先就是制定统一的日.原创 2020-06-02 16:01:16 · 660 阅读 · 1 评论 -
现实场景中的自定义校验
最近这段时间业务提了很多关于字段校验的需求,当然严格的字段校验能保持数据的完整性。首先就是非空校验,项目用的springBoot 2.0版本其中的非空验证用的是 @Valid标签,其中代码部分如下实现@RequestMapping(value = "/Done", method = {RequestMethod.GET,RequestMethod.POST}) public String Done(@RequestBody @Valid VerificationEntity reque.原创 2020-05-29 10:49:48 · 209 阅读 · 0 评论 -
现实业务场景中的工厂类使用
1234原创 2020-05-25 17:21:49 · 209 阅读 · 0 评论