自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (4)
  • 收藏
  • 关注

原创 rocketmq事物

自己记录下rocketmq事物,每次面试都要回头翻阅,这里自己再次总结下ps:这里是网上的一张图,其实还是很不全的,broker存储还是挺重要的,没标出来发送消息到broker broker保存消息成功,返回给client端。消息已经成功保存了 client端执行本地事物 再次发送消息给broker,client端事物处理的结果。broker根据client发来的结果进行消息的处理 未收到client端的消息,broker这边有一个线程,会定时去捞取待处理的消息,进行回查 确认c..

2020-05-13 17:56:58 314

原创 间隙锁的一些例子

#先创建表CREATE TABLE `test1` ( `id` int(1) NOT NULL AUTO_INCREMENT, `number` int(1) NOT NULL COMMENT '数字', PRIMARY KEY (`id`), KEY `number` (`number`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8#赋值初始值insert into `test1` ( `id`,`number`)

2020-05-12 16:39:43 675

原创 记录下for update 和 lock in share mode的区别

lock in share mode 就是共享锁如果事务对某行数据加上共享锁之后,可进行读写操作;其他事务可以对该数据加共享锁,但不能加排他锁,且只能读数据,不能修改数据。 某个事物想进行修改数据操作,那他必须等其他事物的共享锁都释放完毕才能进行修改操作for update 排他锁,就是行锁如果事务对数据加上排他锁之后,则其他事务不能对该数据加任何的锁。获取排他锁的事务既能读取数据,也能修改数据。注:普通 select 语句默认不加锁,而CUD操作默认加排他锁。例子:下面例子...

2020-05-11 16:08:26 5616 4

原创 确定ABCDE五个学校名次

题目描述:A、B、C、D、E五个学校,A说E是第一,B说B是第二,C说A是最差的,D说C不是最好的,E说D是最好的。只有第一和第二名说的是对的,其他说的都是错的,请编程确定五个学校的名次。解题思路:第一想法就是递归,分别5个坑,然后递归循环填充,通过一个判断方法去判断是否能填充。package com.miaomiao.toutiao;import java.util.Arr...

2020-03-31 14:44:07 871

原创 Reactor模式学习记录

Reactor模式的角色构成( Reactor模式一共有5种角色构成):1. Handle(句柄或是描述符):本质上表示一种资源,是由操作系统提供的,该资源用于表示一个个的事件,比如说文件描述符,或是针对网络编程中的 Socket描述符,事件既可以来自于外部,也可以来自于内部;外部事件比如说客户端的连接请求,客户端发送过来数据等;内部事件比如说操作系统产生的定时器事件等。它本...

2019-11-18 14:35:11 152

原创 netty第一章(学习nio二)

第一章里的nio第一节里面是一个简单接受通信的例子。现在如果我们有多个通信,就需要用到nio里selector的功能了package com.miaomiao.nio;import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.nio....

2019-11-12 15:18:13 81

原创 netty第一章(学习nio)

学习一下nio中的Scattering与Gathering,这在netty中非常的常用。也非常的重要package com.miaomiao.nio;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.Se...

2019-11-12 11:45:27 81

原创 spring的设计模式(一:模板方法)

模板方法模式父类抽象出子类共有的方法,并且自己实现他 子类实现各自不同的业务 父类实现的方法按照一定的逻辑调用抽象方法 为了反之子类重写父类实现的方法父类定义为final方法以上就是一个基本的模板方法。存在一个问题,父类按顺序调用的过程无法定制。也就是所有的子类都是按照固定的顺序执行自己的方法。所以需要钩子方法来动态的改变父类执行方法的流程在父类中增加一个钩子方法,提供默认...

2019-10-25 16:54:31 465

转载 spring源码(BeanFactory简介)

一、BeanFactory简介BeanFactory简介IoC容器的顶级接口,是IoC容器的最基础实现,也是访问Spring容器的根接口,负责对bean的创建,访问等工作。接下来要介绍的类比较多,对于初看Spring源码的同学,只要知道BeanFactory的作用即可。蓝色的实线表示类与类之间的继承关系绿色的实线表示接口与接口之间的继承关系绿色的虚线表示类与接口之间的继承...

2019-10-09 10:50:54 109

原创 商城订单失效

前言:说一下这里做的订单到期,用户还未支付,对订单进行失效处理线上总共有4台机。有一台是job机,再说下,我们日常商城订单量并不算多,也就几百单, 所以这里是一个简单的订单失效处理public class App2 { private final static Logger LOGGER = LoggerFactory.getLogger(App2.class);...

2019-09-29 16:46:17 786

原创 rocketmq 顺序消费源码细讲

前言:这一篇幅可能较长,我会说的比较细致。有耐心的看下去,没耐心的,那就这样吧!!嘻嘻。对了,我这里说的是消费端的顺序消费,生产端没什么好讲的,就顺序放进去就好了。有疑问的可以在下面留言,我这里说的主要是3.2.6版本的,负载均衡消费的顺序消费,也会说点相关4.4.0版本的东西。, just start!!!wow!先来看下消费启动的代码:public static void m...

2019-09-28 17:18:50 623 2

原创 java内存模型

java虚拟机中主内存和工作内存交互,就是一个变量如何从主内存传输到工作内存中,如何把修改后的变量从工作内存同步回主内存。lock(锁定):作用于主内存的变量,一个变量在同一时间只能一个线程锁定,该操作表示这条线成独占这个变量 unlock(解锁):作用于主内存的变量,表示这个变量的状态由处于锁定状态被释放,这样其他线程才能对该变量进行锁定 read(读取):作用于主内存变量,表示把一个主...

2019-09-26 15:42:21 99

原创 spring事物二(建基)

前言:暴走咯!!!!  PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。   PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。   PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。   PROPAGATION_REQUIRES_N...

2019-09-25 20:27:33 86

原创 spring事物一(开天)

前言:你懂的,这些东西会在什么时候又去复习一遍,加深印象。那就是去那个你想到达的彼岸。自身价值被认可的时候第一章我们划下水先回顾下事物:一:脏读脏读:一个事务读取到了另外一个事务没有提交的数据 事务1:更新一条数据 ------------->事务2:读取事务1更新的记录...

2019-09-25 16:26:43 175

原创 disruptor第五弹(横行)

前言:原理讲了那么多,现在我们来实现下package com.lmax.disruptor.test;import com.lmax.disruptor.*;import com.lmax.disruptor.dsl.Disruptor;import com.lmax.disruptor.dsl.ProducerType;import java.util.concurrent...

2019-09-25 11:30:23 147

原创 disruptor第四弹(结丹)

前言:有的东西是懒得写,就想自己看看得了。但回想下,有的东西只有写下来才能加深记忆。送大家一个我画的图disruptor里面有生产者去生产数据,MultiProducerSequencer 和SingleProducerSequencer。生产之后,因为他也握有WaitStrategy,消费者也握有这个对象,然后生产者就可以notify通知消费者。告诉它不用等待可以去消费...

2019-09-24 20:48:42 99

原创 disruptor第三弹(手撕第五章)

前言:现在我们创建一个拥有消费者和生产者指针的派生类。进行两端的维护这一章的内容比较多,各位仔细看代码了public interface WaitStrategy { /** * 消费者的阻塞方法 * @param sequence * @param cursor */ long waitFor(long sequence, S...

2019-09-24 17:25:08 199

原创 disruptor第三弹(手撕第四章)

前言:之前说了,先按照上一章结尾所说去实现。消费线程里持有生产者的生产指针。上代码:package com.wm;import com.wm.factory.EventFactory;import com.wm.factory.EventHandler;import com.wm.factory.EventTranslatorOneArg;import com.wm.ma...

2019-09-23 20:48:53 123

原创 disruptor第三弹(手撕第三章)

前言:这一章东西,可能突然有点多,我还特意少些了一点,免得东西太多,大家混乱了。本来很多东西我可以把源码那里搬过来,但我想想,这样就缺少了手撕的感觉。有可能我没搬过来,读者再去看源码就会发现原来,那样写会更好。多一点思考,比什么都重要,虽然是手撕,但我也希望读者是带着思考去想的。而且我这些手撕是基于单线程的。单的手撕完之后,我们再继续增加一些难度,多线程,然后基于安全考虑。前面说了,...

2019-09-23 20:31:28 132

原创 disruptor第三弹(手撕第二章)

前言:之前已经说了要把对象属性值进行赋值,而不是把对象直接赋值所以这里需要一个工厂来完成这样的事情public interface EventTranslatorOneArg<T, A>{ void translateTo(T event, long sequence, A arg0);}public class StudentEventTrans...

2019-09-23 16:37:16 85

原创 disruptor第三弹(手撕第一章)

前言:基于自己对disruptor的理解,实现一个简单的disruptor。上一篇文章是写了一个demo,现在完善他的功能package com.wm;import java.util.ArrayList;import java.util.List;/** * @Date: 2019-09-23 14:59 * @Description: */public class ...

2019-09-23 16:13:10 90

原创 disruptor第二弹(建基)

前言:大概认识了disruptor之后,我们来实现一个小型的disruptor。然后从这个小型的disruptor进行扩展。使用网上的一个突破head:代表我们要读的位置tail:代表我们写的位置bufferSize:代表一圈的大小数据为空的条件 :head=tail 一个buffer是否满:head=tail%bufferSize+1(说明我tail已经跑了一圈,...

2019-09-20 17:53:43 106

原创 disruptor第一弹(初见)

前言:看了disruptor有一段时间了,偶尔在一篇文章里看到一个简约版的disruptor,然后又拾起曾经的disruptor源码看起来。因为每次看,你的感觉可能是不一样的。Disruptor是什么?Disruptor是一个高性能的异步处理框架,或者可以认为是线程间通信的高效低延时的内存消息组件,它最大特点是高性能,其LMAX架构可以获得每秒6百万订单,用1微秒的延迟获得吞吐量为10...

2019-09-20 10:34:15 139

原创 rocketmq-client 查询手动发送消息异常

今天处理rocketmq的后台的一些问题下面这个问题是你也用网上4.x的rocketmq版本的监控后台,才会出现的MQClientException: CODE: 208 DESC: query message by id finished, but no message.这个是我们用rocketmq-client手动发送消息的时候,再去查看消息详情的时候遇到的问题,会报错,...

2019-08-02 20:42:44 6433 3

原创 ExecutorCompletionService公司遇到的问题

1.近期工作的时候,运维通知一个系统的内存一直在增长,leader叫我去排查,我开始看了一下,没处理,leader自己去看了一下,发现是线程池的问题,我开头没注意那块,一看才发现,确实因为CompletionService里的结果队列引起的。CompletionService里面有一个BlockingQueue维护结果,如果不去取结果就会导致一直里面一直增长 @SuppressWarnin...

2019-01-12 11:59:54 1810 1

原创 mysql 的insert ....on duplicate key update问题

on duplicate key update 这个语句好用是非常好用,可以很只能的帮你实现,如果记录存在则更新你已经设置过的需要更新的字段,如果没有该条记录就插入该条记录。    现在讲讲他的一些问题:        我这里用java+mybatis进行操作,        1.设置15条数据,通过这语句的形式。插入数据库        2.将这15条数据,将其中2条的字段进行修改。然后调用执行...

2018-05-02 20:08:18 319

转载 项目启动,mybaits没有报错,程序一直卡在那里

MyBatis有一个非常头疼的问题,就是当Mapper XML写法定义错误的时候,系统起不来,但也不报错,始终卡到如下信息位置: 信息: Initializing Spring root WebApplicationContext 问题分析思路就不叙述了,直接说解决方法吧: 新建一个类,继承 org.mybatis.spring.SqlSession

2017-12-26 16:57:28 1994

原创 spring 加载action页面

spring扫描controller,来匹配相应的servlet-mapping。。。

2017-11-08 22:05:36 408

原创 spring+maven不同环境读取配置详解

spring+maven的打包不同环境下的配置文件

2017-11-06 19:53:01 5032

转载 Spring PropertyPlaceholderConfigurer 自定义扩展

Spring中PropertyPlaceholderConfigurer这个类,它是用来解析Java Properties属性文件值,并提供在spring配置期间替换使用属性值。接下来让我们逐渐的深入其配置。 基本的使用方法是:<bean id="propertyConfigurerForAnalysis" class="org.springframework.b

2017-09-28 10:01:01 478

转载 Spring Bean 的 scope属性为何要设置为prototype

Spring Bean中为何有的地方要将scope属性设为prototype? 先简单说一下两个属性值: 1.Spring中Bean的配置,如果不显式指明scope的值,那么默认为单例singleton。也就是说这个Bean只会新建一个实例。 2.设置为prototype之后,就会创建多个实例,可以理解为会new很多次。而singleton只会new一个实例 准确的说,

2017-09-01 09:20:12 1795

原创 存储过程(2)----Oracle

上一篇介绍的是mysql的存储过程的一些语法如:concat在Oracle里是没有的,Oracle拼接字符是用‘||’Oracle用游标是这样的CREATE OR REPLACE PROCEDURE UPDATE_SNS_USERSCORE(table_name in varchar2) as TYPE i_rowid IS TABLE OF ROWID;

2017-08-16 21:03:35 278

原创 java instanceof

最近碰到这个问题就记录一下B extends AC extends AB并不能和C用instanceof,因为不在一个链上D extends BE extends CD和E同理 D只能和B,A进行instanceof

2017-08-16 19:37:29 178

原创 存储过程(1)----开篇

这几天觉得自己要研究一下存储过程,因为觉得自己数据库这块,自己也要加强一下接下介绍自己的心得,oracle和mysql的都看过了一些,先从简单都起步建立一个简单都存储过程DROP PROCEDURE IF EXISTS `stu_insert`;DELIMITER ;;CREATE DEFINER=`root`@`localhost` PROCEDURE `stu_insert`(

2017-08-16 19:27:36 361

原创 redis 3.2.8主从HA搭建

之前观看视频redis,跟着搭建redis主从分布。视频中的teacher是单机搭建,只是设置不同的端口,但我是采用多台虚拟机搭建。效果就出来了。发现吧主机挂了,redis怎么也不会自己从slave中选出新的主机不知道大家是否有我同样的问题。我的redis版本是3.2.8,可能新版,和网上大多的redis HA可能版本不一致,所以有些配置也可能有些出入我的解决方案是修改 sentine

2017-06-26 11:40:47 288

原创 idea 一个多maven项目聚合

今天突然下回顾以下Maven的聚合项目搭建,因为我们平时大多都是公司已经搭好的项目,平时自己也知道原理,但有时不去实践一下,你根本不知道,你是否会。我有时候会比较膨胀,觉得这也没什么跟着网上文章搭建一下就好了,应该就能成功,没必要去搭建,但经历告诉我,实践出真知,比空头下要好多了搭建的时候没遇到多少问题,唯一碰到的问题就是[ERROR] Failed to execute

2017-06-21 17:13:20 344

原创 kafka java代码编写

上篇,我介绍了如何搭建kafka,但在如何使用kafka上,还没做过去但介绍,大多人都是写改main方法去发送和接受,但我们实际业务肯定不是这样但。我们公司是以一种方式,类似一直启动main然后接受消息的。这里我也还没去具体了解,之后我会再看看,了解之后可能会再写一篇文章出来。kafka启动之后,需要创建topic和partitions,java代码只能帮你传递消息和接受消息,这创建topic

2017-06-09 14:50:22 934

原创 kafka+zookeeper集群搭建

kafka+zookeeper的集群搭建

2017-06-09 14:17:06 917

原创 hudson maven svn 搭建+自动部署

hudson+maven+svn搭建环境,并自动化部署

2017-05-23 15:33:57 1683

转载 Oracle中REGEXP_SUBSTR函数的使用说明

Oracle中REGEXP_SUBSTR函数的使用说明

2017-05-04 15:56:49 2290

myDisruptor.zip

配合我的文章,然后你再进行资源的下载。https://blog.csdn.net/xiao__miao/article/details/101052226

2019-09-24

DHC REST Client2.8

此版本,可直接离线拖拉到谷歌上进行插件安装。。。老版本可能因为版本问题导致谷歌不允许进行离线插件安装

2017-09-27

dubbo学习的项目

dubbo的项目搭建,生产者消费者。还有duobo一些要用到的配置文件

2017-03-23

ralasafe1.2源码含数据库

ralasafe1.2源码含数据库,在myeclipse10.6及mysql数据库调试成功

2016-03-14

空空如也

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

TA关注的人

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