自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

eumenides_的博客

越努力越幸运

  • 博客(71)
  • 收藏
  • 关注

原创 我的一个基于springboot2.0+的汇聚个大小技术要点,热门常用中间件,分布式技术的demo集合

工作3年半了,大大小小技术用了不少了一直都没有提炼出一种通俗、快捷、易懂的方式,索性把过去工作中,学习中用到的所有热门技术,中间件,分布式技术以demo的形式呈现出来放在我的github上,后续会放在gitee。每一个demo我都会手动单元测试保证能跑通,无问题。每一个demo我都会用最必要、最简化的方式呈现出来后期会为每一个demo编写文档,包括工作中使用新的和想法虽然github上已...

2019-06-11 11:56:25 251

原创 mysql事务隔离级别探险

阅读完本章你能学到什么• 了解到mysql中的几种日志和它的作用• 加深对mysql事务隔离级别的理解• 现代互联网企业会选择什么样的隔离级别先来思考几个问题mysql的4种隔离级别都有什么问题?mysql的默认隔离级别是哪一种?为什么和其他主流数据库入:oracle和sqlserver不一样?现代互联网企业到底应该选择哪一种隔离级别?关系型数据库(RDBMS)中事务的ACID...

2019-12-20 17:32:35 716 3

原创 怎么肥四?mysql联合索引的最左原则失效了???

最近新工作忙活告一段落,开始着手梳理老系统的业务逻辑写成文档,没想到看到了祖传代码:存储过程。虽然我没写过存储过程不过好在我sql功底不错,也能看得懂,我把存储过程的sql整理出来,发现有一断sql慢查询严重,经过EXPLAIN分析发现有一小段sql扫描了全表,心里想着难道没给这个字段加索引?于是看看对应的表发现虽然没有专门为这个字段加索引,不过这个字段有组合索引,了解过组合索引的同学知道有个...

2019-11-07 11:40:11 735 1

原创 分布式锁的选择与应用

分布式锁的3点原则:可用性 只要大多数节点能够正常工作那么客户端就能获取或释放锁。安全性 一定要互斥,即不管何时只能有一个客户端持有锁。不能死锁 任何时候都不能死锁,不能阻碍其他线程获取锁。分布式锁的比较:目前业界使用分布式锁通常是依赖于redis或zookeeper,下面我们就以这两种方式分析比较下优劣。基于Redis实现的分布式锁:实现原理:基于Redis的setnx...

2019-10-18 16:24:09 464

原创 mysql日志打印时间与系统时间差8h--------坑爹参数log_timestamps

最近在玩docker,轻量级的操作真是棒棒哒,恨不得所有软件都装上去,想重启就重启想删就删,想下载就下来,而且速度还很快。可是我在拉下来mysql5.7的镜像后,启动时发现2个小问题:我用sqlyog工具连上容器的mysql时,select now();发现时间比当前时间晚8h。mysql启动日志时间比当前时间晚8个小时。很明显当前时间是东八区,是CST时间,mysql是UTC时间一开...

2019-07-05 10:39:44 2882

原创 spring boot2.0整合activeMQ,配置连接池,启动项目报错,JmsMessagingTemplate无法注入

上一篇讲到在整合activeMQ如何将queue和topic两种模式共存:spring boot2.0整合activeMQ,实现p2p和topic两者消息模式兼容共存然后还遗留了一个问题,有读者评论因为配置文件里一句启用连接池导致项目启动报错,只要把那句配置注释掉或者改为false就可以了,这实际上是治标不治本,因毕竟流量大的时候不启用连接池效率会很低:# 启用连接池spring.activ...

2019-06-13 13:56:40 8352 10

原创 spring boot2.0整合activeMQ,实现p2p和topic两者消息模式兼容共存

上篇文章讲到使用spring boot整合activeMQ,实现ptp和topic两者消息模式,默认情况下是queue模式(也就是p2p),如果要想实现topic需要在配置文件里配上:# 默认情况下该配置是false,activemq提供的是queue模式,若要使用topic模式需要配置为truespring.jms.pub-sub-domain=false上篇文章遗留了两个问题:1.我...

2019-06-13 13:30:51 1415 4

原创 微服务网关统一灵活动态鉴权url方案

做微服务时候会有一个网关的概念,网关的作用就是:统一请求鉴权请求日志记录请求路由分发这里我们来讨论第一种解决方案。比方说我们项目api接口层里大大小小数百个接口,也就是会有数百个请求路径(url),其中有些不需要登录就能访问有些需要登录来访问,传统单体应用我们怎么做?如果用shiro的话我们会配置不用鉴权的接口用“anon”声明。用token方式的话我们会用aop写个注解放在...

2019-04-30 17:13:48 4518

原创 mysql事物sql语句死锁,定时任务启动失败Lock wait timeout exceeded;try restarting transaction

把定时任务quartz配置mysql里多台机器启动时可能会出现数据库死锁,然后控制台报错:Lock wait timeout exceeded;try restarting transaction项目启动失败,这时候只需要去mysql中查两个语句,然后杀掉对应的死锁线程就行:1.查询mysql所有正在执行的sql,看到query就说明是正在执行的,有时候慢查询导致程序卡住无响应也可以这么查...

2019-04-10 14:41:44 1877

原创 一个炒鸡方便的持续集成打包发布插件Alibaba Cloud Toolkit内置于idea,程序员的福音

以前我们写完代码要打包发布到服务器需要:maven编译打包用xshell/xftp把包上传到服务器操作xshell 把服务器的项目进程杀掉,然后写命令部署发布如果发现有bug什么的还得改完代码后重新走一遍1,2,3,来回切换工具烦得要死,有时候一天都能打好几个包。后来有了jenkins,我们在服务器上安装这个工具然后一通复杂的配置git地址,帐号,maven,jdk啊反正一开始配置还...

2019-03-27 13:06:01 916

转载 Spring Boot自动配置原理流程

链接:http://www.cnblogs.com/xiaoxi/作者:平凡希 我们开发任何一个Spring Boot项目,都会用到如下的启动类1 @SpringBootApplication2 public class Application {3    &

2019-01-08 10:54:51 1407

原创 springboot整合rabbitmq实现延时队列之rabbitmq_delayed_message_exchange插件方式

上篇讲的是springboot整合rabbitmq实现延时队列之TTL方式实现rabbitmq的延时队列功能,在消息死亡时间比较灵活复杂的时候我们不可能声明很多死信队列去管理,而且声明一个就要6个bean,很蛋疼,所以希望能够有种方式使其消息死亡异步化,到期即死即消费,不会被阻塞,这里介绍使用插件的方式,不过需要rabbitmq要是3.6版本以上,也就是说,加入你的rabbitmq版本太老只能用T...

2019-01-07 21:07:26 7388 7

原创 springboot整合rabbitmq实现延时队列之TTL方式

很多时候我们想定时去做某件事情的时候我们会首先想到定时任务,quartz是个不错的选择,但是也有缺点,假如配置在项目中,集群部署会有重复执行的问题,如果持久化在mysql中,解决了集群的问题,但是过于依赖mysql,耦合严重,当然还有日志量庞大、执行时间精度、过于耗费系统资源等等问题。所以这时候使用消息队列中间件的的延时队列就是一个很好得解决方案,我们设置要触发消费的时间和必要的参数入队mq,到时...

2019-01-07 20:43:50 6224

原创 springboot整合websocket实现点对点和全体发消息

**背景:**最近项目里有个类似备忘录的功能,每个用户管理多个客户,每个客户都有一个备忘录,一旦员工管理的客户多了,备忘录自然也多了,往往这时员工就搞不清啥时候该干啥了,所以要做一个类似小秘书的功能,按照备忘录里设置执行时间前30分钟通知一下员工,当然其他的消息都可以通知。**功能介绍:**员工会针对某个客户添加一个执行计划,哪天几点上门/电话/短信拜访客户或其他事项。如果说我们设置在执行时间前...

2019-01-04 15:04:49 2444 4

原创 The temporary upload location [/tmp/tomcat.4519862041770988807.8082/work/Tomcat/localhost/ROOT] is n

今天线上遇到一个问题,编辑部分表单页面保存时报错,我随便点了点,发现有的页面ok有的页面不行,不行的页面都是带图片上传的,也就是form指定了enctype=“multipart/form-data”,想了一下,生产环境两周没迭代了,没人动啊,而且还有部分数据存在呢,也是测试过的不可能出有问题,然后看了下日志:2018-11-14 13:36:53.202 [http-nio-8082-exec...

2018-11-14 14:53:56 10829 1

原创 Centos7之idea远程debug之jar包版

上一篇写过打war包放在外置tomcat的远程debug,Centos7之idea远程debug现在由于springboot免配置之风大肆盛行,这边也写一个jar包版的远程debug,其实java -jar 使用remote debug比外置tomcat更简单。选择Remote,idea会帮你自动配置好,然后你只需要在Host中填写你的服务器的ip就行2.复制For JDK 1.4x下...

2018-11-14 09:41:11 735

原创 provisional headers are shown问题解决

本来页面里展示产品图片,点击图片会跳转链接的,结果点了后没反应,F12调试看一下,没有js报错,但是请求却没到后台,看了请求头出现了provisional headers are shown,其他啥也没有,百度了下发现有的说是跨域的问题,有的说是其他乱七八糟问题,反正对我都没用,但是我把链接复制出来单独访问发现没有问题,这我就尴尬了,为啥单独访问链接没问题,从图片里的A标签跳转就不行呢?于是我在前...

2018-10-26 11:49:57 10737

原创 一点点关于工厂模式的使用

背景:   入行写java也快3年了,从一开始不懂什么事设计模式,死记硬背设计模式的概念,到后来随着写代码的深入,慢慢的开始理解设计模式的强大,就像古装片武功的心法一样,需要自身去主动地理解去体会,才能化为己用,在编码层面在上升一个阶段。   最近我带着几个同事做了一个媒体运营推广的项目,一开始的业务设计是我们开发一个产品对应一个唯一的H5页面,用户方文H5页面后填写一个信息,然后提交到后台,...

2018-10-24 11:26:25 352

原创 springboot集群下多节点整合quartz持久化到mysql

单个节点的情况下直接使用spring的@Scheduled注解就可以玩定时任务,但是多节点的情况下就凉凉了,会重复执行定时任务 ,因此这时候很有必要把定时任务放在mysql里,让数据库控制执行定时任务的实例。1.pom引3个包 <!--quartz依赖--> <dependency> <groupId>org.springframework&lt...

2018-10-10 17:00:59 1123

原创 中国夏令时导致的一起前端展示的时间比后台少一天奇葩案例

项目快要上线了,突然测试问我为什么我测试的部分数据其中生日字段比我设置生日时候少一天呢?我当时回答怎么可能,同样的生日字段保存的date日期怎么可能部分数据会少一天,于是我就让测试指出哪几条数据有问题,然后我对照mysql看了一下,卧槽!什么鬼,真的是尼玛少了一天,举个栗子: mysql:1989-04-10 前端:1989-04-09 卧槽,神特么见鬼了,于是一波断点打起来发现有问题的数据...

2018-09-14 10:03:15 1891

原创 spring mongoTemplate 统计

背景介绍上篇spring mongoTemplate 分表分页查询介绍了数据被分散到多个集合中怎么查,现在同时也迎来了怎么统计的问题,由于原来所有数据在mysql一张表所以不管怎么查,怎么统计都很方便,我查看了一下原来统计的代码,发现大佬就写了一行,当然sql不止一行,后来我改好后发现,卧槽!!!写了300多行。统计计划由于发出去的短信实时都有状态报告回来,上篇文章中提到的2个集合实...

2018-09-10 12:02:05 4588

原创 spring mongoTemplate 分表分页查询

分表背景我们项目有个很重要的功能就是群发短信,我接盘之前是一个大佬负责的(现已离职),业务抱怨短信日志明细查询太慢,我接手后看了下大佬居然用mysql一张sms_log表存的日志,随着业务的飞速发展,每天记的日志越来越多,我去线上mysql看了下,以及快2000w数据了,而且日志表的字段又很多,看得我隐隐蛋疼不以。我以前记得以前看到过mysql单表数据最好不要超过500w,一般维持在300w以...

2018-09-10 11:34:58 3970

原创 mysql递归查询所有下属员工函数以及find_in_set函数

今天做一个页面查询时有个需求是:不同人查看当前页面的数据量不一样,数据量的规则是,上级能看到所有下级员工的数据,也就是底层员工只能看到自己的数据。所以写sql时where条件那块的数据创建人是一个动态集合,而这个动态的集合该怎么写呢?因此写了个传入父id查询所有子id的mysql函数,同样适用于,菜单查询,组织机构查询等等上下级关系的递归查询。DELIMITER $$USE `loan...

2018-09-04 13:59:00 4022 1

原创 修改tomcat配置实现日志按天输出

背景:前两天公司一个大佬离职了,所以领导让我接管离职大佬的手下的一个项目,正好此时业务部门反映一个情况,只能通过去看日志是什么问题,结果,我登上服务器看到日志居然有5个G,我尼玛,我楞尼玛,什么鬼,5个G的catalina.out, 当时心里十万个草泥马奔腾,也是无奈,虽然心里想着就算把日志下下来可能notepad++也打不开,但是没办法,试一试吧,果然不出意料,文件太大打不开,于是只能通过...

2018-08-18 11:33:57 11604

原创 将spring boot项目运行在docker容器的tomcat镜像中

docker的概念和作用我就不介绍了,网上有很多资料,理解起来也不难,主要就是仓库,镜像和容器三个概念。我这里是是把spring boot项目运行在docker容器的tomcat镜像下所以要准备一个war包。想以jar包的方式运行的话也比较简单,不做介绍。操作准备一个打成war包的spring boot项目准备一个装好了docker的机器操作姿势1.我们把war包用f...

2018-05-24 15:25:36 2496 1

原创 Centos7之Redis主从配置,读写分离

前期准备linux系统,我是虚拟机装的centos7安装好一台rediswindows安装好 Redis Desktop Manager(可视化工具方便查看,当然也可以控制台命令测试,非必须)姿势步骤1.在/etc下创建redis文件夹放redis的启动配置文件:[root@localhost ~]# mkdir /etc/redis2.把redis安装文...

2018-05-23 11:48:34 350

原创 Centos7之idea远程debug

好久没写博客了,最近学习了不少东西,微服务框架的spring cloud还有linux的一些姿势。 找个时间把学习的心得记录一下吧,这篇写写非常有用的远程debug。远程debug有什么用?一般来说开发时会有本地环境、测试环境和生产环境3个环境,我们自己开发测试本地环境随便折腾就行,很方便,哪里不对debug启动调试一下就好。但是很多时候会出现本地环境测试好好怎么到测试环境运行就报错...

2018-05-22 15:08:49 1165

原创 springmvc/springboot处理前台字符串日期自动转换成后台date类型的三种办法

问题还原:当前台提交日期格式数据到后台保存时,已办以字符串的形式传输,如果后台是data类型接受的话会报400格式错误。这时候就需要处理一下: 第0种(最low的方式):后台用String类型字段接收,如果需要使用再换成date。第1种:使用@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)注解在实体字段上, 这种方式的优点是:可以灵活的定义接收的类

2018-01-11 14:06:23 32885 32

原创 Springboot 使用@ConfigurationProperties和@PropertySource的一些问题

在使用Springboot时我们经常把一些key-value的属性值配置在 .properties配置文件中,我们想通过@Value搭配Spring EL来读取配置文件中的值来给我们的变量赋值。 在spring1.5一下提供了一个类注解:@ConfigurationProperties:常用的两个属性是:locations:指定配置文件prefix:指定该配置文件中的某个属性群的前缀但是使

2017-12-27 11:32:56 5707

原创 git 更新时提示MERGE_HEAD exist解决方法

直接命令行: rm .git/MERGE_HEAD 删前记得保存自己要提交的代码

2017-11-17 11:03:16 17409

原创 java8 stream初试,map排序,list去重,统计重复元素个数,获取map的key集合和value集合

//定义一个100元素的集合,包含A-ZList<String> list = new LinkedList<>();for (int i =0;i<100;i++){ list.add(String.valueOf((char)('A'+Math.random()*('Z'-'A'+1))));}System.out.println(list);//统计集合重复元素出现次数,并且

2017-11-16 15:39:25 19885 1

原创 利用activeMQ消息中间件整合spring mail发邮件

同理消费者监听类一样可以做发短信,微信等等。。。 看这篇文章首先确保你已经阅读过我上一篇spring boot整合activeMQ,实现ptp和topic两者消息模式 配置文件新增了spring mail的相关配置:[email protected]=xxxxxxxxxspring.mail.host=smtp

2017-11-16 13:30:42 2621 1

原创 关于持久层和业务层代码封装的一点点设计

前言: 换公司以前写了一年半的ERP,持久层框架用的mybatis,基本的一些类和xml是通过mybatis逆向工程自动生成的,所以反射的数据库有多少表就会生成多少个dao,实际上生成的这些dao里面的增删改查方法都是一样的,不一样的只是实体类型而已,以前没什么经验只知道这部分代码重复也不知道怎么办,现在来到这家公司,看了看代码,发现这里已经对持久层的dao和业务层的service

2017-11-07 11:35:08 1316

原创 springboot整合redis使用nginx实现负载均衡实现session共享

再看这篇demo前请先确保阅读了我的下面这2个demo: 1.nginx整合多个tomcat实现负载均衡: http://blog.csdn.net/eumenides_/article/details/78356623 2.springboot整合redis: http://blog.csdn.net/eumenides_/article/details/78298088 这一章就不看项

2017-10-30 10:43:21 3573 2

原创 Json字符串/Json字符串数组转对象/对象数组方法-----II

直接使用阿里提供的fastjson进行json字符串和json数组与java对象和数组互转, 多快好省,提供以下maven地址,多学多用多方便<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.24</version></dependency>

2017-10-26 17:54:02 1244

原创 nginx整合多个tomcat现实负载均衡

第一步:先去下载nginx解压一下,最好下载稳定版。 说说我对nginx负载均衡的理解: 说白了nginx负载均衡就是将客户端发来的请求收集起来修改报文地址通过算法分发到各个服务器上,服务器专注于业务逻辑处理,当服务器把相应报文返给nginx时,nginx再把服务器相应报文里的地址修改返给客户端,这里nginx主要做了url分发的功能,他其实还有SSL卸载的功能,当客户端发来ht

2017-10-26 17:37:18 1107

原创 spring boot整合activeMQ,实现queue和topic两者消息模式

如何下载安装MQ我就不说了,百度一大把,老规矩先上一下项目目录结构: 先看一下配置文件,主要是中间件的配置: ps:1.主要注意的是activeMQ默认提供ptp模式,若要使用topic模式需要假如最后一个配置为truespring.activemq.broker-url=tcp://localhost:61616spring.activemq.in-memory=true spring.

2017-10-26 17:10:15 7948 4

原创 spring boot 整合 redis,使用@Cacheable,@CacheEvict,@CachePut,jedisPool操作redis数据库

好久没写文章了,最近换了个公司,入职差不多一个半月了,接触了不少没玩过的新东西,这里放个 spring boot 整合 redis的demo吧。 先看一下demo目录: 如何创建spring boot项目我就不说了很简单,不会百度一大把。 先看一下pom需要哪些包:<dependencies> <dependency> <groupId>org.s

2017-10-20 18:00:54 5379 3

原创 利用Intellij Idea构建一个Spring Boot构建

前情提要: spring boot和springmvc相对比: 两者没什么关系,只是spring boot省略很多配置,算是springmvc的升级版,毕竟作为一个优秀的程序员不能总花一堆时间去搞配置 一:工具准备 1.ide: intellij idea ps:公司开发用的是eclipse,在家学习时候装的是 idea,使用过程中发现相对于eclipse是有很大进步的,但也有些细

2017-02-12 15:31:19 14107

原创 Mysql5.7.10版本安装后空密码登录,退出后提示密码错误连接不上解决

这篇博文必须趁热打铁现在写,因为坑了我好几小时到半夜才解决。 几个小时前去mysql官网下载了最新版的mysql5.7.10,发现是个压缩包,不是以前的安装文件了,于是百度找了下安装方法: 这里我在表述一遍: 1:配置环境变量: 先把解压后的bin目录路径复制出来,配置一下环境变量,编辑path把bin目录路径丢进去。 2:初始化MySQL: 打开cmd,进入bin目录,执行代码:mys

2017-02-12 00:32:35 2906

空空如也

空空如也

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

TA关注的人

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