7 Leonis丶L

尚未进行身份认证

暂无相关描述

等级
TA的排名 14w+

Mysql 死锁引发的@Transactional 数据回滚

Spring框架中我们经常使用@Transactional注解来做事务,但是事务并不能保证有效性;以下是我遇到的问题,不一定完全正确,可以做个参考:在一个类上标记了@Transactional,使得该类下的所有方法都以默认的事务方式运行。@Transactionalpublicclasstest(){//往A表中插入数据publicvoidA()...

2019-09-07 17:29:13

Redis 实现限流的三种方式

面对越来越多的高并发场景,限流显示的尤为重要。当然,限流有许多种实现的方式,Redis具有很强大的功能,我用Redis实践了三种的实现方式,可以较为简单的实现其方式。Redis不仅仅是可以做限流,还可以做数据统计,附近的人等功能,这些可能会后续写到。第一种:基于Redis的setnx的操作我们在使用Redis的分布式锁的时候,大家都知道是...

2019-05-30 23:37:24

RocketMQ 多个实例消息聚集在一个实例的坑

RT。上周有个问题一直未解决,先说需求:有A和B两个实例的RocketMQ,并不是集群关系。A的实例是服务器本地的RocketMQ,B的实例是阿里云上所购买的实例。在JAVA代码中,要做到往A发消息的时候也要往B推送消息。光看需求,其实soeasy。因为自己对RocketMQ不是很了解,就“天真”的认为只是调用两个实例化对象的send方法而已。实际上这里蕴藏着一个深坑。用过Ro...

2019-05-20 21:06:56

RedisTemplate下Redis分布式锁引发的系列问题

自己的项目因为会一直抓取某些信息,但是本地会和线上经常一起跑,造成冲突。这其实就是我们常说的分布式集群的问题了,本地和线上的服务器构成了集群以及QPS为2的小并发(其实也不叫并发,不知道拿什么词形容

2019-04-27 19:49:37

静态代理,jdk动态代理以及Cglib区别

众所周知,SpringAOP中涉及到了动态代理模式,那么有动态代理相应的就会有静态代理。那么动态代理分为哪几种,相对应的区别又是什么呢?首先什么是代理?找一个东西或者一个人去帮你做事,比如常说的中介就是一个代理,各大经销商的代理商等等。JAVA中的代理即是指将自己的事情委派给别人帮忙去完成。静态代理:代理的是程序员已经创建好的类,也就是说当前仅...

2019-04-16 21:10:36

关于MySql的索引原理以及优化原则

在面试或者实际的工作中,我们都会遇到会需要优化MySql的场景,那么优化MySql的原理到底是什么呢。曾经看过一篇公众号文章,具体阐述了MySql的优化原理,所以我的绝大部分见解是基于这篇文章之上,其他部分是自己参考了其他的博客包括查询了大量的资料获得的经验。首先盗一张图来看下MySql的优化原理吧,方便大家更方便的理解MySql,以下是MySql的运行图...

2019-03-27 23:58:26

Synchronized下的自旋锁、偏向锁、轻量级锁以及重量级锁(这是一篇有味道的博客)

在理解Synchronized中的锁时,需要先了解一下CAS,CAS在应用中有很多的用途。什么是CAS?CAS的全名叫做CompareandSwap,翻译过来就是先比较再交换,在JAVA的并发包中很多的类用到了这个技术,也和数据库的乐观锁机制是一样的。举个栗子说明下1。第一步拿到需要修改的对象2。第二步修改当前对象的值3。将当前的对象...

2019-03-14 21:21:14

记录一下蚂蚁金服的电话面试

明知道自己肯定达不到阿里的要求的,所以自己把相关的面试问题都记录下来,以便以后复习使用。1.你常用的设计模式有哪些?2.工厂模式和策略模式的区别有哪些?3.什么情况下你会用工厂模式或者策略模式?4.RabbitMQ在你的服务中你是怎样使用的?5.消息的持久化如何实现?6.考虑多种特殊环境下,怎样使得消息不丢失,不重复消费?(服务宕机,队列溢出等情况)7.RabbitMQ...

2019-02-19 18:28:47

个人理解简单工厂模式和策略模式的区别

    刚刚接触设计模式的时候,我相信单例模式和工厂模式应该是用的最多的,毕竟很多的底层代码几乎都用了这些模式。自从接触了一次阿里的公众号发的一次文章关于DDD的使用以后,就逐渐接触了策略模式。现在在项目中运用最多的也是这几种设计模式了,用了设计模式给我的感受就是感觉代码没那么冗余了,再注入一点贫血,充血模型之后,感觉在service层面代码看上去很舒服很简洁。    首先...

2019-01-24 14:41:59

Rest风格下验证POST和GET请求

    HTTP分为两种请求,GET以及POST。现如今,请求中都会带有大量的验证字符。    我验证的方式一般分为两种:   1。用当前的时间生成一个时间戳,然后用这个时间戳加盐的方式去用MD5或者其他的加密方式生成一个key。将这些字符传到后台以后后台接收这些参数,然后以特定的格式在后台再以同样的公式生成key,与前台传过来的key进行比对。    2。前台...

2019-01-09 23:44:14

redis结合spring的事务使用

最近有一个需求,一个接口需要去包另外的3个接口,接口之间的数据相互联系相互依赖,如果有一个接口发生异常或者在主逻辑之中发生异常,那么所有此次产生的数据变化都需要回滚。-------------------------------------------------------------------------------------------------------------------...

2018-12-19 14:57:51

mybaits一级缓存和二级缓存的实现

近来看了一下关于mybaits的一些缓存讲解的文章,然后自己也顺着文章看了一下mybaits底层的源码。(本文部分内容转载于 美团的 聊聊MyBatis缓存机制文章)目前而言,myabits是最流行的dao层框架,简洁,易上手,开箱即用,但是如果不了解一下底层的东西,可能会造成其他的问题。比如造成的脏数据。首先谈的肯定是mybaits的工作原理,大家都知道mybaits有一级缓存和...

2018-12-10 20:32:00

java公平锁,非公平锁,CAS,AQS的一些事情

PS:该文章是借鉴掘金的石衫的架构笔记 附上借鉴的所有链接:大白话聊聊Java并发面试问题之Java8如何优化CAS性能?【石杉的架构笔记】大白话聊聊Java并发面试问题之谈谈你对AQS的理解?【石杉的架构笔记】大白话聊聊Java并发面试问题之公平锁与非公平锁是啥?【石杉的架构笔记】谈到公平锁和非公平锁,首先要引入2个概念。一个是CAS,一个是AQS。CAS:全名叫做C...

2018-12-07 18:36:06

java指定线程执行顺序

众所周知,指定java线程的执行顺序一般都是通过线程间的join方法比如有3个线程,t1,t2,t3。如果我们需要将线程执行顺序调整为t3->t2->t1。那么在t3的线程中加入t2.join,t2的线程中加入t1.join方式即可解决。 第二种方式我们可以用线程池解决。publicclassThreadYieldextendsThread{...

2018-12-06 11:43:11

Spring AOP @After,@Around,@Before执行的顺序以及可能遇到的问题

AOP中有@Before,@After,@Around,@AfterRunning注解等等。首先上下自己的代码,定义了切点的定义@Aspect@ComponentpublicclassLogApsect{privatestaticfinalLoggerlogger=LoggerFactory.getLogger(LogApsect.class);...

2018-11-23 17:03:39

Spring boot Java Mail 邮件发送

Springboot自带了发送邮件的功能,因此在我们自己的项目中可以引用一下邮件发送。顺势写了一个小Demo,并且把遇到的坑记录下来。首先需要在pom文件中引入相对应的jar包<dependency><groupId>org.springframework.boot</groupId><art...

2018-11-23 15:21:16

记 RedisTemplate 和 redisCache 注解

 最近一直在找关于redisTemplate和redisCache等一系列注解的区别。奈何没有找到。所以自己写了demo试下 首先,单从操作Redis来说,我觉得两者并没有什么区别。但是redisCache从单词就可以看出。这个是缓存效果。即不经过任何的关系型和非关系型数据库。  先是redisTemplate操作redis,当redis中没有当前的key时,查找sql...

2018-11-15 19:38:14

数据库主从服务器遇到的坑。

数据库主从配置,我两台服务器配置的mysql都是5.6版本的,所以针对my.cnf文件中添加对应的host-name等一系列参数是没用的。所以需要另一种命令行的形式去设置。详见参考原文链接:https://www.jianshu.com/p/50e2dbd2d449 遇到的坑!问题来了!服务器下午一直在报错  Last_IO_Error:errorconnectingto...

2018-09-18 17:01:10

mybaits-config配置

针对无法进行读取mybaits-config的配置。springboot中mybaits-config.xml的文件配置首先上mybaits-config.xml的文件内容<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DT...

2018-08-07 11:14:07

spring boot热部署,修改java代码不重启

我用的idea插件,虽然每次用虚拟机重启快很多,但是每次看到有日志打印项目重启感觉还是不舒服。所以部署了不重启的方法 首先和其他的类似,idea中的配置registry勾选compiler.automake.allow.when.app.running然后compiler中勾选buildprojectautomatically引入对应的maven包<de...

2018-08-07 11:07:56

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。