- 博客(533)
- 资源 (6)
- 收藏
- 关注
原创 @ComponentScan覆盖@SpringBootApplication配置的解决方案
可以看到当有一个 @ComponentScan 注解的时候,它会直接返回这个注解,不会再去解析 @SpringBootApplication 中的配置,也就是会导致SpringBootApplication注解中的scanBasePackages扫描包路径失效。2.可以使用@ComponentScans注解,这个注解等于定义了多个@ComponentScan,且不会覆盖@SpringBootApplication中的配置。
2023-06-06 14:29:19
731
原创 SpringBoot加载外部/内部配置文件的顺序和覆盖优先级总结
可以使用spring.config.location配置在启动时指定配置文件位置,这样指定后就不会去默认位置寻找配置文件在使用 spring.config.location 指定外部配置文件时,需要此份配置文件需全量满足当前工程运行时所需,因为它不会去与 resources 目录下的配置文件去做 merge 操作如果需要和默认位置的配置文件合并的话,可以使用spring.config.additional-location,语法相同或者也可以指定配置目录位置,指定目录时要以/结尾或者。
2023-05-15 13:48:43
3315
原创 【已解决】Linux中buff/cache(磁盘写/读缓存)占用大量内存导致用户进程内存不足
解决Linux中buff/cache占用大量内存导致的内存不足
2022-06-02 11:20:11
940
1
原创 【starters】springboot-starter整合阿里云datahub
文章目录1. 功能介绍2.快速开始2.1 启动客户端2.2 获取DataHub客户端2.3 写数据2.4 读数据3. 核心代码DataHub 类似于传统大数据解决方案中 Kafka 的角色,提供了一个数据队列功能。DataHub 除了供了一个缓冲的队列作用。同时由于 DataHub 提供了各种与其他阿里云上下游产品的对接功能,所以 DataHub 又扮演了一个数据的分发枢纽工作。datahub提供了开发者生产和消费的sdk,在平时的开发中往往会写很多重复的代码,我们可以利用springboot为我
2022-04-05 16:17:50
4668
7
原创 Maven scope 作用域 详解
一、scope作用域介绍Maven的一个哲学是约定大于配置,所以在maven中,很多内容都有默认值,scope的默认值是compile。scope元素的作用:控制 dependency(依赖)元素的使用范围。通俗的讲,就是控制 Jar 包在哪些范围被加载和使用。这个范围包括,编译、测试、运行,并且还可以加上是否被打入包中。二、Scope分类Scope的作用域范围包括compile、test、provided、runtime、system、import。1. compile此范围为默认依赖范围,是
2022-03-29 15:45:24
1837
2
原创 【SpringCloudAlibaba】微服务网关Gateway
文章目录1. 什么是Spring Cloud Gateway1.1 核心概念1.2 工作原理2. Spring Cloud Gateway快速开始2.1 环境搭建1) 引入依赖2) 编写yml配置文件3) 测试2.2 路由断言工厂(Route Predicate Factories)配置2.2.1 时间匹配2.2.2 Cookie匹配2.2.3 Header匹配2.2.4 路径匹配2.2.5 自定义路由断言工厂2.3 过滤器工厂( GatewayFilter Factories)配置2.3.1 添加请求
2022-03-27 19:00:27
772
原创 【SpringCloudAlibaba】微服务组件Seata分布式事务
文章目录1. 启动Seata Server1.1 环境准备1)指定nacos作为配置中心和注册中心2)同步seata server的配置到nacos3) 启动Seata Server2. Seata如何整合到Spring Cloud微服务2.1 导入依赖2.2 微服务对应数据库中添加undo_log表2.3 微服务需要使用seata DataSourceProxy代理自己的数据源4. 添加seata的配置1)将registry.conf文件拷贝到resources目录下,指定注册中心和配置中心都
2022-03-25 22:47:31
543
2
原创 【Seata】分布式事务Seata的使用及原理
文章目录1.Seata 是什么1.1 Seata的三大角色1.2 设计思路1.3 设计亮点1.4 存在的问题2. Seata快速开始2.1 Seata Server(TC)环境搭建2.2 Seata Client快速开始1.Seata 是什么Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。AT模式是阿里首推的模式,阿里云上有商用版本的GTS(Global Tr
2022-03-25 22:37:55
3687
1
原创 【微服务】分布式事务介绍
文章目录1. 事务简介2. 本地事务3. 分布式事务典型场景3.1) 跨库事务3.2) 分库分表3.3) 服务化4. X/Open DTP模型与XA规范4.1 DTP模型4.2 XA规范5. 两阶段提交协议(2PC)6. 三阶段提交协议(Three-phase commit)CanCommit阶段PreCommit阶段doCommit阶段2PC与3PC的区别1. 事务简介事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中,一个事务由一组SQL语
2022-03-25 20:46:53
1088
10
原创 【Sentinel】Sentinel整合RestTemplate&openFeign&Dubbo
1. RestTemplate整合SentinelSpring Cloud Alibaba Sentinel 支持对 RestTemplate 的服务调用使用 Sentinel 进行保护,在构造 RestTemplate bean的时候需要加上 @SentinelRestTemplate 注解。@SentinelRestTemplate 注解的属性支持限流(blockHandler, blockHandlerClass)和降级(fallback, fallbackClass)的处理。引入依赖<
2022-03-22 16:11:03
639
16
原创 【Sentinel】微服务组件Sentinel控制台的规则配置
文章目录1.Sentinel控制台介绍2.实时监控3.簇点链路4.流控规则4.1 流量控制4.2 并发线程数4.3 流控模式4.4 流控效果5.降级规则5.1 熔断策略5.2 异常比例5.3 异常数6.热点参数限流7.系统规则8. 授权控制规则9. 集群规则1.Sentinel控制台介绍Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能。Sentinel 控制台包含如下功能:查看机器列表以及健康情况:收集 Sentinel 客户端
2022-03-22 16:01:53
641
5
原创 【SpringCloudAlibaba】微服务组件Sentinel
文章目录1. 前言1.1 分布式系统遇到的问题1.2 解决方案2. Sentinel: 分布式系统的流量防卫兵2.1 Sentinel 是什么2.2 Sentinel 工作原理2.2.1 基本概念2.2.2 Sentinel工作主流程2.3 Sentinel快速开始2.4 Spring Cloud Alibaba整合Sentinel1. 前言课前思考:1、当服务访问量达到一定程度,流量扛不住的时候,该如何处理?2、服务之间相互依赖,当服务A出现响应时间过长,影响到服务B的响应,进而产生连锁反应,直
2022-03-17 10:54:01
457
27
原创 【SpringCloudAlibaba】微服务组件Nacos配置中心
1. Nacos配置中心使用官方文档: https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-configNacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。1.1 快速开始准备配置,nacos se
2022-03-15 09:37:14
984
30
原创 【SpringCloudAlibaba】微服务组件Dubbo
1. provider端配置引入依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-dubbo</artifactId></dependency><dependency> <groupId>com.alibaba.cloud</groupId>
2022-03-14 00:31:26
2207
16
原创 【SpringCloudAlibaba】微服务组件Feign
文章目录JAVA 项目中如何实现接口调用?1. 什么是Feign1.1 优势1.2 Feign的设计架构1.3 Ribbon&Feign对比1.4 Feign单独使用2. Spring Cloud Alibaba快速整合Feign3. Spring Cloud Feign的自定义配置及使用3.1 日志配置3.2 契约配置3.3 通过拦截器实现认证3.4 超时时间配置3.5 客户端组件配置3.5.1 配置Apache HttpClient3.5.2 配置 OkHttp3.6 GZIP 压缩配置3.7
2022-03-14 00:03:35
449
2
原创 【科普向】5G核心网架构和关键技术
一、5G的定义1.1 5G的历史演变1.2 什么是5G5G是第五代移动通信技术,是最新一代蜂窝移动通信技术,也是继4G、3G和2G系统之后的延伸。1.3 5G关键技术📒动态自组织网络(SON):任何节点间(终端与终端、终端与基站、基站与基站等)均通过无线通信,无须任何布线,并具有支持分布式网络的冗余机制和重新路由功能。ps:这边可以理解成微服务架构,每个节点都是一个网元设备,就是一个Service节点,只不过这边的节点是硬件设备📒软件定义网络(SDN):核心思想—转发和控制分离,从而实现
2022-03-13 18:29:58
20997
36
原创 【SpringCloud】微服务负载均衡器Ribbon
1.什么是Ribbon目前主流的负载方案分为以下两种:集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载,有硬件的(比如 F5),也有软件的(比如 Nginx)。客户端根据自己的请求情况做负载均衡,Ribbon 就属于客户端自己做负载均衡。Spring Cloud Ribbon是基于Netflix Ribbon 实现的一套客户端的负载均衡工具,Ribbon客户端组件提供一系列的完善的配置,如超时,重试等。通过Load Balancer获取到服务提供的所有机器实例,Ribbon会自
2022-03-10 11:54:46
304
27
原创 【LoadBalancer】SpringCloud微服务组件LoadBalancer
文章目录1. 什么是Spring Cloud LoadBalancer1)RestTemplate2)WebClient2. RestTemplate整合LoadBalancer1)引入依赖2)使用@LoadBalanced注解配置RestTemplate3) 使用3. WebClient整合LoadBalancer1)引入依赖2) 配置WebClient作为负载均衡器的client3) 使用1. 什么是Spring Cloud LoadBalancerSpring Cloud LoadBalancer
2022-03-10 09:59:06
684
5
原创 【Ribbon】自定义负载均衡策略实现不同版本的灰度(金丝雀)发布
前言灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度 —— 百度百科📒 下面把上面这段表述抽象成程序设计模型:比如现在有2个服务,user服务和order服务,user服务通过在注册中心拉取order服务的地址来消费o
2022-03-09 11:54:14
1996
33
原创 【SpringCloudAlibaba】微服务组件Nacos注册中心
前言:基础铺垫什么是微服务架构?微服务架构是一种去中心化架构,比如我们的注册中心挂了,服务还是能调到其他服务的资源(有缓存),但现在的网关层也有着中心化的趋势。微服务架构和集中式架构的区别?我们常看到的SOA,就是一种集中式架构,比如ESB(企业消息总线),通过nginx转发到下游的其他服务,但它存在nginx的单点问题。Spring全家桶之间的递进关系Spring:基于bean,基于javaconfig或者xml的方式让第三方框架的bean加载到Spring容器中,例如Mybatis的SqlS
2022-03-06 22:10:56
1383
33
原创 【ClassLoader】实现自定义类加载器加载指定路径下的Class文件和Jar包
自定义类加载器:1.加载指定目录下的.class文件2.加载指定目录下的jar包
2022-03-06 14:25:35
9358
34
原创 【性能监控:jvm+cpu+目标field】自定义类加载器+Java agent+反射实现对tomcat的零侵入式服务监控
前言最近项目中有一个需求,需要临时监控一下一个部署在tomcat中的服务的jvm性能和cpu性能,这个服务中有一个内存队列queue,存储的是消费kafka后的数据,也需要对其进行大小的监控,来判断是否存在消息积压,从而判断是否需要进行性能的调优或者扩服务。市面上已经有很多成熟的大型项目的监控方案了:例如可以用prometheus或者arthas来实现各种可定制的监控方案,我会在后面抽空补充下这些常用的开源监控组件的使用方案,但是这些方案都有个很明显的问题,就是部署起来太重,而我现在只需要快速且轻量的临
2022-03-05 23:27:22
782
原创 【面试真题】实现一个快速排序
题干:我们使用的是经典快速排序: 以左边界为基准值base,具体分析过程详见博主【Java版算法思想(排序)】选择&冒泡&快排参考代码:/** * @author cry777 * @program demo1 * @description 经典快速排序: 以左边界为基准值 * @create 2022-02-25 */public class QuickSort { public static void main(String[] args) {
2022-02-25 09:47:02
294
1
原创 【面试真题】设计一个抢红包算法,单个红包最大不能超过总金额的90%
题干:总金额 double total = 100D; 总人数 int num = 10;返回一个List<Double>参考代码:public class RedWars { public static List<Double> list = new ArrayList<>(10); public static double remain; public static double used; public stat
2022-02-25 09:18:38
634
原创 【Mysql性能调优】高性能表结构及索引设计的最优实践
数据库表设计良好的表结构设计是高性能的基石,应该根据系统将要执行的业务查询来设计,这往往需要权衡各种因素。糟糕的表结构设计,会浪费大量的开发时间,严重延误项目开发周期,让人痛苦万分,而且直接影响到数据库的性能,并需要花费大量不必要的优化时间,效果往往还不怎么样。在数据库表设计上有个很重要的设计准则,称为范式设计。范式设计什么是范式?范式来自英文Normal Form,简称NF。MySQL是关系型数据库,但是要想设计—个好的关系,必须使关系满足一定的约束条件,此约束已经形成了规范,分成几个等级,一级
2022-02-24 10:57:36
562
原创 硬盘缓存(Cache)与NCQ技术
硬盘缓存是用于存储读写硬盘的中间数据,一般称为cache,详细可以分为写缓存、读缓存,其中读缓存中还有预读取的过程,整个过程由操作系统(OS)来控制。就这两种缓存和预读取来分别详细举例:(1) 写缓存向硬盘写入数据的时候,不是直接写入硬盘,而是先写入cache,等待硬盘空闲的时候,再将数据写入硬盘。现在有些硬盘还支持NCQ技术,把数据在cache中进行排序,再写入硬盘。 这样做的好处是提高硬盘的响应速度,减少硬盘的寻道时间,延长硬盘的使用寿命。NCQ:操作系统所看到的磁盘地址都是顺序的虚拟磁盘地址
2022-02-23 14:59:43
1693
1
原创 【k8s】Kubernetes全栈技术体系介绍
本文将从以下6个方面介绍Kubernetes的全栈体系:1.Kubernetes架构2.Kubernetes工作负载3.Kubernetes网络4.Kubernetes存储5.Kubernetes运维6.DevOpsKubernetes起源Kubernetes项目来源于谷歌内部的Borg,Borg是集群的管理器,在它的系统中,运行着众多集群,而每个集群可由成千上万的服务器联接组成,Borg每时每刻都在处理来自众多应用程序所提交的成百上千的Job, 对这些Job进行接收、调度、启动、停止、重
2022-02-21 16:37:51
2162
5
原创 【SpringBoot】SpringBoot自动装配原理解析
Springboot自动装配bean的过程SpringBoot自动装配过程图通过@Import(DeffredImportSelector)这个注解把所有Springboot帮我们把Spring需要集成的第三方框架中所默认配置的bean初始化成BeanDefination:如Mybatis中的SqlSessionFactory,SpringMvc中的InternalResourceViewResolver都是这样被自动装载进来的。我们可以通过@Import(类)或者@Import(ImportSelec
2022-02-21 15:04:18
628
原创 【Spring】Spring底层核心原理解析
本文内容索引:1.Bean的生命周期底层原理2.依赖注入底层原理3.初始化底层原理4.推断构造方法底层原理5.AOP底层原理6.Spring事务底层原理但都只是大致流程,后续会针对每个流程详细深入的分析源码实现。先来看看入门使用Spring的代码:ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");UserService userService = (Use
2022-02-18 15:21:53
3785
openjdk8源码-c++
2022-02-14
css4.2.7.zip
2020-10-11
JDK 11 API中文帮助文档.zip
2020-10-11
阿里巴巴Java开发手册1.4.0(详尽版).zip
2020-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人