
后端技术
Lamb_IT
这个作者很懒,什么都没留下…
展开
-
MySQL索引背后的数据结构及算法原理
本文的研究对象时MySQL数据的BTree索引,内容分为三个部分: - 第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础 - 第二部分结合MySQL数据库中MyISAM和InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题 - 第三部分根据上面的理论基础,讨论MySQL中高性能使用索引的策略转载 2019-11-19 20:29:20 · 296 阅读 · 0 评论 -
RabbitMQ 消费者确认(Consumer Acknowledgements)
RabbitMQ关于数据安全有两个特性:[发布者确认(Publisher Confirms](https://blog.youkuaiyun.com/Lamb_IT/article/details/102649484))和消费者确认(Consumer Acknowledegements)。前者用于MQ服务器(broker)告诉发布者传递消息的结果,它是消息协议的拓展内容;后者用于消费者告诉MQ服务器消息传递的结果,是消息协议包含的定义。本文主要介绍RabbitMQ对消费者确认的实现。原创 2019-11-03 22:51:13 · 3481 阅读 · 1 评论 -
RabbitMQ 发送确认(Publisher Confirms)特性
摘要RabbitMQ的发布者确认(Publisher Confirms)特性用以实现消息的可靠投递。当在某个通道(channel)上开启发布确认后,客户端发布的消息会被MQ服务器(broker)异步的确认。本篇主要介绍3个基于发布确认特性,保证被发布消息安全到达MQ服务器的方案,并比较各自优缺点。原创 2019-10-20 16:52:44 · 1678 阅读 · 0 评论 -
RabbitMQ 必须掌握的基础概念
网上将RabbitMQ入门概念的很多,这篇是我看到最棒的,简单清晰转载 2019-10-19 17:30:43 · 205 阅读 · 0 评论 -
Java8 新特性-Stream API概念及用法详解
Stream API提供了一系列对集合的强大操作,配合lambda表达式,可让集合处理非常简洁清晰。本文主要介绍了Stream流的用法,包括集合接口(Collection)与流(Stream)接口的互相转换,Stream流的父类BaseStream接口中的方法介绍、串行流/并行流和无序流、缩减操作、映射操作。原创 2019-09-04 21:01:36 · 928 阅读 · 1 评论 -
JAVA8新特性-lambda表达式
一篇让你搞懂lambda表达式、函数式接口、方法引用、Optional这些JAVA8的新特性及相互间关系。原创 2019-09-04 21:03:17 · 753 阅读 · 2 评论 -
分布式事务之TCC方案实践
分布式系统间交互主要有同步的远程调用和异步的消息传递。本位主要讨论同步远程调用的方式中,如何保证调用系统A和被调用系统B间状态的最终一致。原创 2019-09-15 10:22:08 · 1051 阅读 · 1 评论 -
分布式事务之本地消息表实践
分布式系统之前除了同步方式通过RPC框架调用接口,还有很多通讯是异步的方式通过MQ中间件完成的。本文主要介绍后者实现分布式事务的一种方案,核心思想是通过记录本地消息日志表的方式,借助本地事务和MQ消息中间件的可靠性来实现分布式系统中多个节点间状态的最终一致。原创 2019-09-22 10:16:48 · 1315 阅读 · 0 评论 -
分布式事务之可靠消息最终一致性方案实践
如果你选用的消息中间件事rocketMQ,可以直接使用它的事务消息方便的实现分布式事务。但如果你用的是rabbitMQ或kafka这些没有事务消息的中间件,就需要自己来设计分布式事务的实现方案了。一种经典的方案是本地消息表,通过本地事务+定时任务来实现最终一致。本文介绍另一种方案,通过自己实现可靠性消息服务,来保证消息发布方和消费方的最终一致。原创 2019-09-22 22:48:29 · 575 阅读 · 1 评论 -
SpringBoot 自动配置学习笔记
本篇SpringBoot自动配置学习笔记纲要:1,我们用SpringBoot的理由是因为它可让开发者更加快速高效搭建Spring应用,背后是“约定优先于配置”的理念和自动配置技术;2,自动配置技术实现原理3,自定义自动配置示例原创 2019-08-24 11:57:50 · 393 阅读 · 0 评论 -
Spring AOP 基本概念
AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理。本文就主要讲解AOP的基本术语,然后用一个例子让大家彻底搞懂这些名词,最后介绍一下AOP的两种代理方式:以AspectJ为代表的静态代理。以Spring AOP为代表的动态代理。转载 2019-08-03 17:01:32 · 304 阅读 · 0 评论 -
Java动态代理学习笔记
摘要Java动态代理是很多其他框架和技术(如Spring AOP)的基础。学习JAVA动态代理的技术对于理解Spring AOP的底层原理很有帮助。学习一项技术,要弄清楚这个技术解决了什么问题,它的使用示例及它的工作原理。这篇学习笔记也沿着这个思路,分三个方面介绍:代理是什么,它是干什么用的,动态代理是什么;JAVA 动态代理使用示例JAVA动态代理实现代理及动态代理代理模式什么...原创 2019-07-29 22:25:56 · 289 阅读 · 1 评论 -
java api 中获取JVM信息相关方法的Demo
摘要为了保障业务系统的连续性,需要监控服务器JVM内存使用情况,防止因系统异常出现宕机。JDK自带的Java VirsualVM是个很好地,监控及分析JVM状况的工具,但生产环境并不适用。生产环境数据监控我司使用的是Grafana平台,通过清洗来自日志文件的指标数据,生成实时图像。这就需要通过编码的方式获取JVM的信息,然后打印到日志里。java.lang.management包提供类方法恰好可...原创 2019-02-21 00:14:22 · 1656 阅读 · 1 评论 -
【Spring MVC 源码学习三】SpringMVC中的策略模式
策略模式ViewResolver源码解析总结原创 2019-07-03 21:02:20 · 884 阅读 · 0 评论 -
【Spring MVC 源码学习二】HandlerAdapter及适配器模式
适配器模式介绍适配器(adapter)模式是一种结构型模型,也叫包装器(warpper)模式,主要用于将现有的接口转化为客户类(client)希望的代码,实现对现有类的复用。涉及到对象有:Target( 目标抽象类) : 目标抽象类定义客户所需接口, 可以是一个抽象类或接口, 也可以是具体类Adapter( 适配器类) : 适配器可以调用另一个接口, 作为一个转换器, 对Adapte...原创 2019-07-03 21:07:00 · 457 阅读 · 0 评论 -
【Spring MVC 源码学习一】 核心流程
流程说明直接看源码理解起来会比较吃力,先放张图在这,让我们对核心处理流程有个初步印象。前端控制器dispacherServlet是spring mvc框架的核心类,控制整个请求处理的逻辑,由它调用HanlderMapping 、 HandlerAdapter、ViewResolver和View组件的方法完成请求的处理流程。开始读源码1,准备工作首先spring mvc框架把刚用户请求交...原创 2019-07-03 21:12:06 · 217 阅读 · 0 评论 -
【Spring IOC容器学习笔记】二——详解Spring bean
摘要bean对于Spring就如同object对于OOP,这一节详细整理下关于bean的基础知识:bean 作用域bean 命名bean 实例化原创 2019-07-18 20:55:50 · 265 阅读 · 0 评论 -
【Spring IOC容器学习笔记】三——依赖注入的方式
Spring 为何如此流行?我们用 Spring 的原因是什么?想想你会发现原来 Spring 解决了一个非常关键的问题:他可以让你把对象之间的依赖关系转而用配置文件来管理,也就是他的依赖注入机制。依赖注入(dependency injection)的过程指类被实例化后,由容器负责将它的依赖(一起工作的其他类)准备好,提供给被实例化的bean使用。本节学习笔记主要关于两种常用的的**依赖注入的方式**:基于构造函数参数和基于属性setter方法注入,及让开发更轻松**的自动装配技术**(Autowired原创 2019-07-18 21:12:15 · 371 阅读 · 0 评论 -
【Spring IOC容器学习笔记】一——什么是Spring IOC容器,它是怎么工作的
摘要Spring IOC容器是Spring的核心功能,它构成了Spring框架的骨骼结构,没有它就没有上层MVC、AOP等高级特性。这节的学习笔记主要回答下面几个问题:Spring IOC容器是用来做什么的?什么是bean?Spring IOC容器是如何工作的?Spring IOC容器与BeanFactory和ApplicationContext的关系是什么?Spring IOC容...原创 2019-07-18 21:15:06 · 1062 阅读 · 0 评论 -
【Spring IOC容器学习笔记】四——容器拓展接口
了解Spring容器的扩展点可以帮助我们完成特定任务,如何精通 Spring 就看你有没有掌握好 Spring 有哪些扩展点。Spring Ioc 容器主要有这么几个拓展点:BeanFactoryPostProcessor和BeanPostProcessor,他们分别是在构建 BeanFactory 和构建 Bean 对象时调用;还有就是 InitializingBean 和 DisposableBean, 他们分别是在 Bean 实例创建和销毁时被调用。用户可以实现这些接口中定义的方法,Spring 就原创 2019-07-18 21:17:49 · 269 阅读 · 0 评论 -
Spring Boot学习笔记1:Spring, Spring Boot中的@Component 和@ComponentScan注解用法介绍
学习Spring Boot时,看到了一篇总结的很好的文章,翻译过来作为学习笔记。通过本文你将学到:Component Scan是什么?为什么ComponentScan很重要?项目中Spring Boot会对哪些包自动执行扫描(Component Scan)?如何利用Spring Boot定义扫描范围?项目启动时关于Component Scan的常见报错翻译 2018-07-04 21:31:51 · 99991 阅读 · 13 评论