- 博客(10)
- 收藏
- 关注
原创 Rabbitmq分布式事务
今天小编带来的是分享课题是分布式事务。小编是在一家O2O公司做程序员,今天就以公司的一则订单业务来作为分享课题的场景。 业务场景:用户在APP上进行下单操作,商家接单,配送,订单结束。这里以商家接单为背景。 业务结构如下:架构实现:一、本地事务一个service里面通过单数据源保证三个表的事务,完全没有问题。完美解决。 二、分布式...
2018-07-23 17:21:51
9995
5
原创 Mybatis解析——SqlSessionFactoryBean
本文主要说明SqlSessionFactory的构建过程mysql配置文件如下:<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <proper
2018-06-28 17:52:43
1424
原创 Mybatis解析——Configuration
从之前的《Mybatis解析——SqlSessionFactoryBean》可以看出,Configuration在SqlSessionFactory的创建过程中是一个很重要的环节。 在SqlSessionFactoryBean.class可以看到Configuration的创建方式,在未配置configurationProperties的情况下,这里主要的参数是configLocat...
2018-06-28 17:52:33
634
原创 Eureka解析
一、简介 Eureka是Netflix提供的一个用于作为注册中心的组件。提供服务注册、服务发现等功能。二、结构图 Eureka可以做集群部署,提供高可用性。如下是它的结构图。图片来源:https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance图中包含两个组件:Eureka Client、Eureka Server。服务提供者跟服务...
2018-06-25 18:59:54
316
原创 异步通信rabbitmq——消息重试
目标: 利用RabbitMQ实现消息重试和失败处理,实现可靠的消费消费。在消息消费异常时,自动延时将消息重试,当重试超过一定次数后,则列为异常消息,等待后续特殊处理。准备: TTL:Time-To-Live,通过给消息、队列设置过期时间(单位:毫秒),来控制消息、队列的生命周期。在达到时间后,消息会变成dead message。 Dead Letter Exchanges:同普通...
2018-06-14 15:18:34
8360
1
转载 MySQL索引原理
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。二叉查找树二叉树具有以下性质:左子树的键值小于根的键值,右子树的键值大于根的键...
2018-06-08 11:34:07
157
原创 多线程并发获取任务结果集
一般在进行多线程开发时,常用的操作就是ExecutorService来处理任务。任务接口可以是Runnable、Callable。Runnable的源码如下,表明该任务不支持结果返回,同时不外抛异常。@FunctionalInterfacepublic interface Runnable { public abstract void run();}Callable的源码如下,表明该任...
2018-06-07 16:03:44
5031
2
转载 监控TP50,TP90
TP指标: TP50:指在一个时间段内(如5分钟),统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第50%的那个值作为TP50 值;配置此监控指标对应的报警阀值后,需要保证在这个时间段内该方法所有调用的消耗时间至少有50%的值要小于此阀值,否则系统将会报警。TP90,TP99,TP999与TP50值计算方式一致,它们分别代表着对方法的不同性能要求,TP50相对较低,TP9...
2018-06-05 18:33:08
801
原创 异步通信rabbitmq
1、组件producer、broker、consumer参考:https://www.jianshu.com/p/79ca08116d57
2018-06-05 15:24:45
1900
翻译 InnoDB锁
1、前言mysql有两种常见引擎。InnoDB:支持事务。MyISAM:不支持事务。坑:曾经刚接触数据库的时候,没有区分InnoDB、MyISAM,在创建表的时候默认选择了MyISAM,造成在业务异常时,数据全都没有回滚。2、InnoDB锁2.1 共享锁(Share Locks)和排他锁(Exclusive Locks)InnoDB通过两种类型的行级锁来实现标准的行锁。共享锁(Share Lock...
2018-06-04 17:38:51
147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人