![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 91
当走的路甚远
这个作者很懒,什么都没留下…
展开
-
Spring - 配置支持多数据源
在SSM工程中整合多数据源,基本和Spring Boot工程一致,稍微有一点区别。在Config配置类中需要手动的指定DataSource的信息。在SpringBoot工程中整合多数据源,和在SSM工程中整合稍微有一点区别。原创 2024-01-08 13:41:16 · 1055 阅读 · 2 评论 -
Spring - Spring一个Bean装配过程以及Bean实例化过程
主要流程:1、读取配置文件2、实例化bean和填充bean属性这个粗略的流程感觉更像是一个需求,有了这个需求,那么spring内部是怎么处理的呢?我们知道spring的两个核心接口BeanFactory和ApplicationContext。BeanFactory主要定义容器的核心方法,ApplicationContext加以扩展,主要使用的还是ApplicationContext。在ApplicationContext的子类中,AbstractApplicationContext中的ref转载 2021-02-23 11:01:51 · 951 阅读 · 0 评论 -
Spring - SpringMVC工作原理
SpringMVC的工作原理图:SpringMVC流程1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherServlet调用HandlerAdapter处理器适配器。5、 ...转载 2021-02-23 10:42:20 · 166 阅读 · 0 评论 -
Spring - Netty原理剖析
1. Netty简介Netty是一个高性能、异步事件驱动的NIO框架,基于JAVA NIO提供的API实现。它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Netty的NIO框架构建。2. Netty线程模转载 2021-02-09 15:51:43 · 648 阅读 · 0 评论 -
Redis - Redisson实现分布式锁(3)—项目落地实现
有关Redisson实现分布式锁前面写了两篇博客作为该项目落地的铺垫。1、Redisson实现分布式锁(1)---原理2、Redisson实现分布式锁(2)—RedissonLock这篇讲下通过Redisson实现分布式锁的项目实现,我会把项目放到GitHub,该项目可以直接运用于实际开发中,作为分布式锁使用。一、项目概述1、技术架构项目总体技术选型SpringBoot2.1.5 + Maven3.5.4 + Redisson3.5.4 + lombok(插件)2、加锁方式转载 2021-02-09 14:59:16 · 147 阅读 · 0 评论 -
MQ - RocketMQ底层原理和源码解析
本文的内容主要包括:MQ的对比和选型、RocketMQ原理、RocketMQ源码解析、事务消息。Rocketmq性能压测客户端:https://github.com/Force-King/rocketmq-test一、MQ的对比和选型目前业界主要的消息中间件有:ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。其中开源的,社区比较活跃的是ActiveMQ、RabbitMQ、Kafka、RocketMQ。所以,我们做技术选型时,需要考虑从以上4种开源的M转载 2021-03-03 18:20:26 · 900 阅读 · 0 评论 -
Spring - Nacos 配置实时更新原理分析
上篇文章,我和大家分析了 Nacos 的配置中心原理,主要分析了 Nacos 客户端是如何感知到服务端的配置变更的,但是只是从客户端的角度进行了分析,并没有从服务端的角度进行分析,本篇文章我将结合服务端从两个角度来分析配置变更是如何通知到客户端的。PS:文章有点长,因为涉及到多个细节需要阐述,如果看不下去的话,可以直接转到文末看结论即可。一、客户端从上篇文章中我们已经知道了 Nacos 的客户端维护了一个长轮询的任务,去检查服务端的配置信息是否发生变更,如果发生了变更,那么客户端会拿到变更的 g转载 2021-02-03 16:23:56 · 1013 阅读 · 0 评论 -
Spring - Nacos 配置中心原理分析
动态配置管理是 Nacos 的三大功能之一,通过动态配置服务,我们可以在所有环境中以集中和动态的方式管理所有应用程序或服务的配置信息。动态配置中心可以实现配置更新时无需重新部署应用程序和服务即可使相应的配置信息生效,这极大了增加了系统的运维能力。动态配置下面我将来和大家一起来了解下 Nacos 的动态配置的能力,看看 Nacos 是如何以简单、优雅、高效的方式管理配置,实现配置的动态变更的。我们用一个简单的例子来了解下 Nacos 的动态配置的功能。环境准备首先我们要准备一个 Nac转载 2021-02-03 16:10:45 · 938 阅读 · 0 评论 -
Spring - Nacos 服务注册与发现原理分析
Nacos 另一个非常重要的特性就是服务注册与发现,说到服务的注册与发现相信大家应该都不陌生,在微服务盛行的今天,服务是非常重要的,而在 Nacos 中服务更被称为他的一等公民。Nacos 支持几乎所有主流类型的 “服务” 的发现、配置和管理。了解过 Dubbo 的同学,应该对 Dubbo 的架构非常熟悉,最经典的一张架构图如下所示:图中的6个步骤的含义解释如下:0、服务容器负责启动,加载,运行服务提供者。1、服务提供者在启动时,向注册中心注册自己提供的服务。2、服务消费者在启动时,转载 2021-02-03 15:55:15 · 770 阅读 · 0 评论 -
Spring - 比较Sentinel和Hystrix
总体说明先来看一下 Hystrix 的官方介绍:Hystrix is a library that helps you control the interactions between these distributed services by adding latency tolerance and fault tolerance logic. Hystrix does this by isolating points of access between the services, stoppi转载 2021-02-03 15:33:55 · 483 阅读 · 0 评论 -
Spring - Sentinel 原理 全解析
系列文章Sentinel 原理-调用链Sentinel 原理-滑动窗口Sentinel 原理-实体类Sentinel 实战-限流篇Sentinel 实战-控制台篇Sentinel 实战-规则持久化Sentinel 实战-集群限流篇Sentinel 系列教程,现已上传到 github 和 gitee 中:GitHub:https://github.com/all4you/sentinel-tutorial Gitee:https://gitee.com/all_4_you/sentinel-tu转载 2021-02-02 09:45:48 · 2345 阅读 · 0 评论 -
Spring - Hystrix原理与实战
背景分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,这种现象被称为雪崩效应。雪崩效应常见场景硬件故障:如服务器宕机,机房断电,光纤被挖断等。 流量激增:如异常流量,重试加大流量等。 缓存穿透:一般发生在应用重启,所有缓存失效时,以及短时间内大量缓存失效时。大量的缓存不命中转载 2021-02-01 17:58:41 · 657 阅读 · 0 评论 -
Spring - Dubbo 扩展点详解
扩展点整体架构1. RPC层扩展点按照完整的Dubbo结构分层,RPC层可以分为四层:Config、Proxy、Registry、Cluster。由于Config属于API范畴,因此只关注Proxy、Registry、Cluster三层的扩展点。1.1 Proxy层扩展点Proxy层主要的扩展接口是ProxyFactory。Dubbo中的ProxyFactory有两种默认实现:Javassist和JDK,用户可以自行扩展自己的实现,如CGLIB。Dubbo默认选择Javassist.转载 2021-02-01 17:28:49 · 485 阅读 · 0 评论 -
Spring - Dubbo的实现原理
dubbo的介绍dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。dubbo框架是基于Spring容器运行的。RPC远程过程调用远程过程调用协议是一种通过网络从远程计算机程序上请求服务,而不需要了解网络底层技术的协议。RPC协议假定某些传输协议的存在,如TCP或者UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC的优点:使得开发包括网络分布式多程原创 2021-02-01 17:02:46 · 904 阅读 · 0 评论 -
Spring - SpringBoot 集成 swagger2
1、swagger简介 Swagger是一款RESTful接口的文档在线自动生成、功能测试功能框架。一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,加上swagger-ui,可以有很好的呈现。 当我们在后台的接口修改了后,swagger可以实现自动的更新,而不需要人为的维护这个接口进行测试。2:基于前面的知识点 本知识点在springboot使用基于Mybatis注解方式实现的CRUD的基础上进行的。3、springboot与swagg..原创 2021-01-29 16:55:27 · 152 阅读 · 0 评论 -
Spring - Dubbo的底层实现原理和机制
Dubbo :是一个RPC框架,SOA框架:Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。作为RPC:支持各种传输协议,如dubbo,hession,json,fastjson,底层采用mina,netty长连接进行传输!典型的provider和cusomer模式!作为SOA:具有服务治理功能,提供服务的注册和发现!用zookeeper实现注册中心!启动时候服务端会把所有接口注册到注册中心,并且订阅con.转载 2020-07-23 15:26:28 · 1000 阅读 · 0 评论 -
MySQL - 索引之B+树
索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义,如果我想要在 [1,2,3,4] 中找到 4 这个数据,直接对全数据检索也很快,没有必要费力气建索引再去查找。索引在 MySQL 数据库中分三类:B+ 树索引 Hash 索引 全文索引我们今天要介绍的是工作开发中最常接触到的 InnoDB 存储引擎中的 B+ 树索引。要介绍 B+ 树索引,就不得不提二叉查找树,平衡二叉树和 B 树这三种数据结转载 2020-07-23 15:13:59 · 124 阅读 · 0 评论 -
Spring - sentinel和hystrix比较
Sentinel是阿里中间件团队研发的面向分布式服务架构的轻量级高可用流量控制组件,最近正式开源。Sentinel 主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。大家可能会问:Sentinel 和之前常用的熔断降级库 Netflix Hystrix 有什么异同呢?本文将从多个角度对 Sentinel 和 Hystrix 进行对比,帮助大家进行技术选型。Overview先来看一下Hystrix的官方介绍:Hystrix is a library...原创 2020-07-23 15:03:52 · 337 阅读 · 0 评论