10个优化SpringCloud启动时间的方法
Spring Cloud技术栈专家,真实场景下的Spring Cloud启动优化案例。Spring Cloud应用的启动性能优化通常涉及到减少启动时间和提高启动效率。下面是一些常见的优化场景:
1. 懒加载配置场景:减少非必要服务的初始化时间。
调优:使用Spring Boot的懒加载特性。
示例:
@SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication app = new SpringApplication(MyApplication.class); app.setLazyInitialization(true); // 启用懒加载 app.run(args); } }
2. 禁用不需要的自动配置场景:应用中包含了未使用的自动配置。
调优:显式排除不需要的自动配置类。
最近无意间获得一份阿 ...
替换XShelld这款SSH工具足够惊艳
ssh工具几乎是每天都会用到的工具,今天给大家推荐一款非常不错的工具。
TabbyTabby 是一名老外在 Github 开源的终端连接的工具,至今已经累积 45K+ star。
Tabby 的功能特性大概有:
支持多平台,Windows、MacOS(Intel 芯片/M1 芯片)、Linux 都有对应的安装包的;
自带 SFTP 功能,能够与 Linux 系统传输文件;
炫酷的终端页面,简单易用,以及各种插件支持等
安装包
github地址:
https://github.com/Eugeny/tabby/releases
找到适合自己电脑的安装版本
安装之后是这个页面
如果你近期准备面试跳槽,建议在ddkk.com在线刷题,涵盖 一万+ 道 Java 面试题,几乎覆盖了所有主流技术面试题,还有市面上最全的技术五百套,精品系列教程,免费提供。
SSH 连接一开始我以为点击「New terminal」是弹出填写连接服务器的信息。
结果不是,它默认是新建一个针对本地电脑的终端窗口,比如如果你的电脑是windows 系统就会新建一个 cmd 控制窗口,如果是 macOS ...
POST为什么会发送两次请求
本文目录
同源策略
什么是同源策略
CORS
简单请求
预检请求
附带身份凭证的请求与通配符
完整的请求流程图
总结
前言
最近博主在字节面试中遇到这样一个面试题,这个问题也是前端面试的高频问题,因为在前端开发的日常开发中我们总是会与post请求打交道,一个小小的post请求也是牵扯到很多知识点的,博主在这给大家细细道来。
同源策略在浏览器中,内容是很开放的,任何资源都可以接入其中,如 JavaScript 文件、图片、音频、视频等资源,甚至可以下载其他站点的可执行文件。
但也不是说浏览器就是完全自由的,如果不加以控制,就会出现一些不可控的局面,例如会出现一些安全问题,如:
跨站脚本攻击(XSS)
SQL 注入攻击
OS 命令注入攻击
HTTP 首部注入攻击
跨站点请求伪造(CSRF)
等等…
如果这些都没有限制的话,对于我们用户而言,是相对危险的,因此需要一些安全策略来保障我们的隐私和数据安全。
这就引出了最基础、最核心的安全策略:同源策略。
什么是同源策略同源策略是一个重要的安全策略,它用于限制一个源的文档或者它加载的脚本如何能与另一个源的资源进 ...
高效支付系统架构
一、案例背景拿支付系统相关的业务来举例。在支付系统中,我们需要记录每个账户的资金流水(记录用户A因为哪个操作扣了钱,因为哪个操作加了钱),这样我们才能对每个账户的账做到心中有数,对于支付系统而言,资金流水的数据可谓是最重要的。因此,为了防止支付系统的老大徇私舞弊,CTO提了一个流水存档的需求:要求支付系统对每个账户的资金流水做一份存档,要求支付系统在写流水的时候,把流水相关的信息以消息的形式推送到kafka,由存档系统消费这个消息并落地到库里(这个库只有存档系统拥有写权限)。整个需求的流程如下所示:
整个需求的流程还是比较简单的,考虑到后续会有其他事业部也要进行数据存档操作,CTO建议支付系统团队内部开发一个二方库,这个二方库的主要功能就是发送消息到kafka中去。
二、确定方案既然要求开发一个二方库,因此,我们需要考虑如下几件事情:
1、技术栈使用的springboot,因此,这里最好以starter的方式提供
2、二方库需要发送消息给kafka,最好是二方库内部基于kafka生产者的api创建生产者,不要使用Spring自带的kafkaTemplate,因为集成方有可能已经使用了 ...
一张长图透彻理解SpringBoot启动原理
虽然Java程序员大部分工作都是CRUD,但是工作中常用的中间件必须和Spring集成,如果不知道Spring的原理,很难理解这些中间件和框架的原理。
一张长图透彻解释 Spring启动顺序
测试对Spring启动原理的理解程度我举个例子,测试一下,你对Spring启动原理的理解程度。
Rpc框架和Spring的集成问题。Rpc框架何时注册暴露服务,在哪个Spring扩展点注册呢?init-method 中行不行?
MQ 消费组和Spring的集成问题。MQ消费者何时开始消费,在哪个Spring扩展点”注册“自己?init-method 中行不行?
SpringBoot 集成Tomcat问题。如果出现已开启Http流量,Spring还未启动完成,怎么办?Tomcat何时开启端口,对外服务?
SpringBoot项目常见的流量入口无外乎 Rpc、Http、MQ 三种方式。一名合格的架构师必须精通服务的入口流量何时开启,如何正确开启?最近我遇到的两次线上故障都和Spring启动过程相关。
故障的具体表现是:Kafka消费组已经开始消费,已开启流量,然而Spring 还未启动完成。 ...
CPU打满怎么处理
1.cpu占用很高的3大类型,9大场景:CPU 飙升是一个常见的问题。
在生产环境中,会出现由代码问题导致CPU占用很高,该如何诊断出是哪行java代码导致? 是大家的一项重要基本功,也是大家面试中的家常骗饭。
如果连CPU 飙升的问题都回答不清楚, 都支支吾吾, 面试就很难通过了
下面,用20多年的技术内功洪荒之力,给大家梳理一下 cpu占用很高的三大类型问题,9大问题场景。
第1大类型导致CPU100%的问题: 业务类问题
1.1 死循环
while(true)条件
导致 CPU 占用率高的最简单但最具破坏性的编程错误之一就是死循环。
当程序中的循环缺乏正确的退出条件或条件从未满足时,就会出现这种情况,
死循环无休止地运行,消耗过多的处理器时间,导致CPU100%
1.2 死锁发生死锁后,就会存在忙等待或自旋锁等编程问题,从而导致 繁忙等待问题。
即进程在不释放 CPU 的情况下反复检查条件是否满足,会导致 CPU 占用率居高不下。
这种低效率的资源使用会妨碍 CPU 执行其他任务。
1.3 不必要的代码块在不需要的地方使用synchronized块,会导致线程竞争和上下文切换 ...
ES从入门到精通
ElasticSearch 从入门到工业级使用1.1 什么是全文检索将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。这部分从非结构化数据中提取出的然后重新组织的信息,我们称之索引。
例如:字典。字典的拼音表和部首检字表就相当于字典的索引,对每一个字的解释是非结构化的,如果字典没有音节表和部首检字表,在茫茫辞海中找一个字只能顺序扫描。
然而字的某些信息可以提取出来进行结构化处理,比如读音,就比较结构化,分声母和韵母,分别只有几种可以一一列举,于是将读音拿出来按一定的顺序排列,每一项读音都指向此字的详细解释的页数。
我们搜索时按结构化的拼音搜到读音,然后按其指向的页数,便可找到我们的非结构化数据——也即对字的解释。 这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search)。
虽然创建索引的过程也是非常耗时的,但是索引一旦创建就可以多次使用,全文检索主要处理的是查询,所以耗时间创建索引是值得的。比如使用全文检索,所搜索“生化机”(有可能是手抖打错了,本来是生化危机),但是期望需要出 ...
JVM如何调优
一:引言在软件开发和运维中,JVM作为执行Java程序的核心引擎,扮演着至关重要的角色。
随着应用程序的复杂性和负载不断增加,对JVM的性能和稳定性要求也越来越高。
在此背景下,JVM调优变得至关重要。
JVM调优涉及到一系列的参数设置、垃圾收集器的选择、内存分配策略等方面,对于提高Java应用程序的性能、减少内存泄漏、降低系统崩溃风险都有重要作用。
另外,在大厂面试中,JVM调优的知识也是备受关注的考察点,因为它直接关系到系统的稳定性和性能优化。
候选人对JVM调优的理解和实践能力,可以反映其在Java虚拟机运行机制方面的深度和广度,
需要注意的是,调优并非首选方法,一般而言,解决性能问题的第一步是优化程序本身,只有在必要时才考虑进行JVM调优。
JVM调优,有什么好处?JVM调优目的是通过调整Java虚拟机的配置参数、垃圾回收策略和内存分配等手段,提升Java应用程序的性能、稳定性和可靠性。
随着应用规模和用户量的增长,原始的JVM配置可能无法满足业务需求,因此必须进行调优以确保系统的正常运行。
然而,并不是所有异常情况都需要进行JVM调优。
在实际情况中,大多数问题可以通过分析J ...
电商中es和mysql数据同步方案
在实际项目开发中,常用Mysql作为业务数据库,ElasticSearch作为查询库。ElasticSearch主要用来应对海量数据的复杂查询,提高查询效率和缓解Mysql数据库的压力。如何实现 MySQL 数据库和ElasticSearch之间的数据同步也是为非常关键的,下面介绍几种常见的数据同步方案方案。
1、同步双写方案
同步双写是指在Mysql上进行数据增删改操作时,同步将数据写入到ElasticSearch中,使用此方式保证Mysql与ElasticSearch中的数据一致性的优/缺点如下:
优点实现简单;实时性高缺点1、存在数据丢失风险;2、性能不高;3、和业务之间的耦合性强;4、不方便做扩展
2、异步写入方案
在Mysql上进行数据增删改操作时,通过MQ(如Kafka)异步将数据写入到ElasticSearch中。这种异步方式可以降低Mysql的写入延迟并有效的防止了ElasticSearch自身问题而影响到Mysql数据的写入,但是可能会出现存在Mysql和ElasticSearch数据长时间的不一致的现象。此方案的优缺点如下:
优点性能高;数据不易丢失 ...
最强阿里自动化视频剪辑工具
这几年短视频非常火爆,尤其是抖音等短视频平台的崛起,很多人都可以把自己的日常生活或者工作发到网上,吸引很多人的关注,也有一些人因此赚到了人生第一桶金。
然后剪辑视频却是一件非常耗费精力的事情,经常要几个小时才能剪出来一个视频。
今天给大家推荐一个阿里开源的自动化视频剪辑工具—FunClip,可以帮助大家轻松剪辑视频。
FunClip是一款完全开源的自动化视频剪辑工具,可以安装在我们自己的电脑上,支持离线使用。还可以通过调用阿里巴巴通义实验室开源的 FunASR Paraformer 系列模型进行视频的语音识别,然后我们可以自由选择识别结果中的文本片段或说话人,点击裁剪按钮即可获取对应片段的视频。
所以使用 FunClip 剪辑视频非常的简单,不用像传统的视频剪辑软件,需要我们手动自己分割视频。
在上述基本功能的基础上,FunClip有以下特色:
FunClip融合了众多高级语言模型的调用机制,并开放了灵活的prompt设置功能,旨在探索利用大型语言模型进行视频编辑的新方法。
FunClip采用了阿里巴巴开源的顶尖工业级语音识别模型——Paraformer-Large,它在开源中文A ...