自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot如何基于maven进行多环境打包

在日常的开发过程中,很多时候测试环境和生产环境无论是配置文件,还是各种规定的全局信息,都是不一样的。随着对接系统的繁杂,各种环境的实现都会加剧这种情况的恶化。在之前的开发中,因为没有一套完整的适合多环境切换的架构,导致会经常将生产的地址打包到测试环境,或者反之。为了解决这一难点,后面基于maven多版本打包的特性,将项目的开发架构由单一的开发环境,升级成了多环境的开发配置。1.增加pom文件的配置 <resources> <resource&gt

2022-03-10 15:20:36 1102

原创 基于zookeeper的分布式定时该怎么构建

公司有一个单独跑各种定时的一个项目,最近总是频繁的出现故障,主要的原因就是机器的性能问题。确实一台4核8G的机器,要负责上百个定时任务,有的任务线程十分的频繁,随着后面业务的拓展,这种单机的模式显然已经不能满足后续的需求。来吧,那就开始重构吧。重构的大体思路就是,由单机版重构为分布式形式,用拓展的思路,堆服务器的套路,解决后面无穷无尽的需求。因为单位用的PRC架构是比较流行的Zookeeper+dubbo,zk作为优秀的分布式管理平台,做这种分布式的定时任务,那简直再适合不过了。为了演示方便,我就

2022-03-09 17:51:39 2804

原创 zookeeper是怎么进行投票选举的(源码分析)

拿五台机器4核,8G的机器做ZK集群举例子。1.首先就是每台机器启动时,会给自己投票选举自己当老大。synchronized(this) {//logicalclock 值就是自己的进行选举的标号自增1,这个字段的取值就是配置文件中的server.X信息++this.logicalclock;//更新本地选举字段信息this.updateProposal(this.getInitId(), this.getInitLastLoggedZxid(), this.getPeerEpoch())

2022-03-08 15:23:39 1575

原创 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 1734

原创 项目实战中Zookeeper使用心得?

关于zookeeper的部分心得

2022-03-01 16:25:04 653

原创 ThreadLocal和Synchonized 在项目实战中到底有什么区别?

ThreadLocal和Synchonized作为线程安全的两种选择,在项目中会大量使用,不过现在一想到线程安全,首先想到的就是方法或者变量中用Synchonized修饰,用锁的形式,保证多线程情况下的安全问题。ThreadLocal在项目中很少使用,但是在面试八股文中这个关键字特别受到面试官老爷的喜欢,里面涉及到的关于弱引用、对象备份、多线程安全概念都是十分重要的。ThreadLocal,就是线程的本地变量,如果创建了一个ThreadLocal,那么访问这个变量的每个线程都会本地拷贝一份,这个线程的方

2022-02-25 18:03:37 197

原创 java设计模式之动物园联欢大会

最近陪孩子读绘本,看到各种各样的小动物,其中印象最深的当属一篇,动物园召开联欢大会的故事。主要剧情就是动物园召开联欢大会,很多小动物应邀前往,主办方为了招待这些小动物,根据食草性和食肉性进行划分,就这么一个小需求。作为程序员的老爸,不会放过任何一个发挥联想的机会,废话不说准备开干。首先就是开发各式各样小动物的枚举值。/** * 动物枚举值 */public enum animalEnum { ANIMAL_DOG("dog", "小狗"), ANIMAL_CHICKEN(

2020-11-30 14:01:27 534

原创 如何在SpringBoot中引入jsp文件

看到这个题目相信会有不少大神心里鄙视这个菜鸟,为什么用springBoot引入jsp,现在谁家不是前后分离的架构。你这不是开历史的倒车么。确实springboot作为这两年快速开发的神器,是前后端分离的基础。但是旧版本的项目都是JSP页面的开发,为了快速的进行版本的迭代,只能剑走偏锋,出此下策。所有的一切都是一个字快,技术和生存,在现在看来只能选择后者。基本的springBoot搭建就不多叙述了,网上的相关讲解及其丰富。今天聊的是在springBoot中添加jsp几个基本的坑。1.This app

2020-06-11 14:55:18 1518

原创 基于zookeeper的定时任务调度

最近这段时间项目改造的需求是一个接着一个,不少前人挖的深坑都得让我们这帮后人们填埋进去,但是项目运行了七八年了,已经不能满足新需求开发要求的迅速和规范。所以开发组研究决定,分步骤的解决这些历史遗留的问题。首先解决的就是定时任务的调度问题,因为系统中有很多过滤数据以及对外同步数据的job,统计起来有五六十个定时任务,这些任务分别部署在两台机器上,因为定时时间都是设定的一样的,导致有时候同一个定时任务会被执行两次,这样的话会造成数据的混乱。这是第一个要解决的问题,因为每天维护那些因为定时任务执行两次造成的错

2020-06-03 15:52:37 1616

原创 SpringBoot中AOP的具体实例-记录请求和返回日志

由于单位的日志记录系统过于雍于和混乱,发展到今天的已经四五个年头了,当年很小的问题经过几年的增量发展已经到了很严重的地步。日志记录混乱,出现问题时无法快速定位错误信息,以及日志的请求和响应报文。这就导致运维的工作量成倍的增加,单位几个运维人员每天都要在浩瀚的日志文件中寻找某条有用的信息,这样导致系统的日志文件不敢轻易的删除,这样系统文件越来越重。其实整体看下来问题就两个1.日志记录没有进行前期的规划。2.全部的日志文件直接存在服务中,并没有进行侧重点的细分。解决这两个问题,首先就是制定统一的日.

2020-06-02 16:01:16 663 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

原创 现实业务场景中的工厂类使用

1234

2020-05-25 17:21:49 209

空空如也

空空如也

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

TA关注的人

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