道阻且长,行则将至

Scroll Down

Kafka的消息可靠性(防止消息丢失)

当思考消息队列的消息丢失的时候,通常可以从三方面来思考:Producer生产者端丢失。Broker服务器端丢失。Consumer消费者端丢失。以上三点思考方式是通用的,例如RocketMQ的消息可靠性(防止消息丢失)。1 Producer端Producer调用send方法发送消息之后会直接返回,消息

Dubbo SPI机制

概述Dubbo SPI机制从功能特性上来讲主要包括一下四个方面扩展点自动包装扩展点自动装配扩展点自适应扩展点自动激活下面主要是从代码角度来分析这四个方面的实现功能代码解析扩展点自动包装

事务不生效问题分析

问题现象:Manager层标记事务注解,事务不生效,抛出异常后,持久化数据无法回滚。问题原因:是因为事务管理器和mybatis配置的数据源不一致,导致声明式事务管理的连接,与真正执行SQL的连接不一致,进而导致事务不生效。1、开始事务的时候数据库连接池及获取到的连接如下:(1)连接池(2)连接2、S

MySQL数据库访问性能优化

MYSQL应该是最流行的WEB后端数据库。大量应用于PHP,Ruby,Python,Java 等Web语言开发项目中,无论NOSQL发展多么快,都不影响大部分架构师选择MYSQL作为数据存储。MYSQL如此方便和稳定,以至于我们在开发 WEB 程序的时候非常少想到它。即使想到优化也是程序级别的,比方

关系数据库SQL性能优化的艺术

1 前言数据库性能优化,特别是SQL性能优化是程序员的一项基本功。对于常见应用系统,一般最容易出现问题的地方也多在数据库环节。消灭慢SQL,给数据库减负,保证大促期间系统平稳,是我们日常需要做好的任务之一。由于篇幅有限,在这里对关系数据库中SQL性能优化做一些简单的介绍,文中所用术语主要以Mysql

mysql运行原理笔记-B+树索引

B+数索引各个数据页可以组成一个双向链表,而每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表。每个数据页都会为存储在它里面的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可快速定位找到指定的记录。其中,页a、页

Redis的缓存穿透、缓存雪崩、缓存击穿问题的概念与解决办法

缓存穿透什么是缓存穿透?缓存穿透是指查询一个在缓存和数据库中一定不存在的数据,按照传统使用缓存流程:由于缓存不命中,接着查询数据库,但是数据库也无法查询出结果,因此也不会将空值写入到缓存中,这将会导致每个这样的查询都会去请求数据库,造成缓存穿透。如果有恶意用户,就可以利用这个漏洞,模拟请求很多缓存和

AQS(AbstractQueuedSynchronizer)源码深度解析(4)—共享式获取锁、释放锁的原理

acquireShared共享式获取锁共享式获取与独占式获取的区别就是同一时刻是否可以多个线程同时获取到锁。在独占锁的实现中会使用一个exclusiveOwnerThread属性,用来记录当前持有锁的线程。当独占锁已经被某个线程持有时,其他线程只能等待它被释放后,才能去争锁,并且同一时刻只有一个线程