Resilience4j Circuit Breaker
参考资料(36 封私信 / 80 条消息) 网络时间同步是怎么实现的?怎样消除延迟带来的影响? - 知乎https://springdoc.cn/spring-boot-resilience4j/)
计算机网络时间同步技术原理介绍 - CodeInsight - SegmentFault 思否
简述计算机在进行时间同步时,理想的情况是客户端发送时间查询请求,服务器将当前时间响应,客户端将本机时间设为服务器响应时间,但现实情况是,网络传输数据是有时延的。
NTP服务器在UDP的132端口提供授时服务,客户端发送附带T1时间戳(Timestamp)的查询报文给服务器,服务器在该报文上添加到达时刻T2和响应报文发送时刻T3,客户端记录响应报到达时刻T4。
网络延时(蓝色部分) = (t4 - t1) - (t3 - t2)
假设来回网络链路是对称的,则客户端与服务端的时间差 = t2 - t1 - (网络延时 / 2) = ((t2 - t1) + (t3 - t4)) / 2
客户端在本机时间上加上时间差即可,存在的不足有: ...
无头浏览器
参考资料(36 封私信 / 80 条消息) 啥是无头浏览器,都能干啥?一文说清楚 - 知乎https://juejin.cn/post/7052857798530433031)
Selenium 无头浏览器模式 | 菜鸟教程
简述在不显示页面的情况下执行js、css等,现在的主流浏览器都有无头模式,可用于截图或者输出pdf等
PhantomJS基于webkit的无头浏览器,18年后已停止维护
Resilience4j Circuit Breaker
参考资料(36 封私信 / 80 条消息) Spring Boot使用Resilience4j容错:熔断、重试、限时、限流、隔板 - 知乎
在 Spring Boot 应用中使用 Resilience4j - spring 中文网
简述作为 Hystrix 的替代方案,专为 Java 8+ 和函数式编程设计,轻量且模块化,仅聚焦于核心的容错机制(熔断、降级、限流等),不依赖其他重型库。目前是 Spring Cloud 官方推荐的容错组件(替代 Hystrix)。
使用123456789<dependency> <groupId>io.github.resilience4j</groupId> <artifactId>resilience4j-spring-boot2</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artif ...
ELK
参考资料Spring Boot整合ELK实现日志采集与监控Spring Boot整合ELK实现日志采集与监控 前言 在分布式项目 - 掘金
Spring Boot与ELK环境:从搭建到整合的详尽指南-百度开发者中心
简述ELK 是三个开源工具的组合缩写:
Logstash:数据处理管道,用于收集、过滤和转换日志
Elasticsearch:分布式搜索引擎,用于存储和快速查询日志数据
Kibana:可视化平台,用于展示和分析 Elasticsearch 中的数据
用于整合多个微服务的日志到一个平台,方便快速进行问题排查
使用在微服务的日志配置中,将日志输出到logstash开放出来的接口,
或者配置logstash,让其主动读取日志文件
SpringBootAdmin
参考资料问:Spring Boot应用监控组件&工具,梳理一下?_springboot服务器性能监控组件-CSDN博客
Spring Boot Admin,贼好使!Spring Boot Admin(SBA)是一个开源的社区项目,用于管理和 - 掘金
简述专门针对 Spring Boot 应用的可视化监控平台,通过集成 Actuator 端点,提供服务健康状态、配置信息、日志查看、JVM 监控等一站式功能。开箱即用的可视化界面,无需复杂配置,适合中小团队快速搭建监控系统。
使用服务端:1234<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId></dependency>
1@EnableAdminServer
12server.port=8090spring.boot.admin.context-path=/admin
客户端12345&l ...
Flyway
参考资料简述Flyway 是一款数据库版本管理工具,可对数据库变更(建表、加字段、初始化数据等)进行版本化管理,确保开发、测试、生产等多环境数据库结构一致。
相关概念数据库变更指对数据库结构或数据的任何修改,分为两类:
结构变更:建表、删表、加字段、改字段类型、建索引、加外键等;
数据变更:初始化基础数据(如管理员账号)、批量修复错误数据等。
数据库升级脚本记录数据库变更的可执行 SQL 文件,例如:V1__create_user_table.sql:创建用户表;V2__add_age_column.sql:给用户表加年龄字段;V3__init_admin_user.sql:初始化管理员数据。
注意升级脚本不可在部署后二次修改,否则flyway会报错
spring使用flyway1234<dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId></dependency>
脚本需放在固定目录:sr ...
JASYPT
参考资料【Springboot】Springboot整合Jasypt,让配置信息安全最优雅方便的方式 - 南瓜慢说 - 博客园
简述加密工具,现多用于加密springboot中的配置文件
使用12345<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.1</version></dependency>
配置文件中直接使用ENC()声明加密后数据
1234# 数据库配置(密码已加密)spring.datasource.url=jdbc:mysql://localhost:3306/mydbspring.datasource.username=rootspring.datasource.password=ENC(EVnE5sH2g8t+wM5eQrF5aA==)
根密码配置根密码值jasypt使用 ...
JAVA生成PDF
参考资料如何使用 Selenium 生成 PDF - 极道
SpringBoot + ITextPdf:高效生成 PDF 预览文件-腾讯云开发者社区-腾讯云
简述通常我们都会有在java项目中生成pdf的需求,或需要返回给前端,或需要进行存储到本地
主流有几种方法,一种是我在项目上见到的selenium生成,另一种是现在使用者较多的专用工具生成
SELENIUMselenium是一种浏览器模拟工具,使用selenium生成pdf本质上是调用了浏览器的将页面打印为pdf 的功能。由于是调用了浏览器的功能,所以服务器上需要安装对应的浏览器和驱动用于调用;优点是可以进行复杂的PDF文件的生成,缺点就是配置比较麻烦。
框架生成ITextPdf 和 OPENPDF是两种常用的PDF生成工具,比较方便,但对于一些复杂的html支持并不是很好
字体不显示问题html中用到的字体需要提前存放在后端,并使用字体设置方法设置该字体
下载我现在接触到的一个项目是使用selenium将pdf打印出来后,存到minio,然后把下载连接返回给前端,这样使用minio作为整个项目的下载入口
nexus
参考资料从零开始:Nexus私服搭建与Maven仓库配置的完全指南-阿里云开发者社区
(35 封私信 / 80 条消息) 超级详细Maven私服搭建:Nexus - 知乎
用途主要用于公司或者团队,一来可以做中央仓库镜像,二来可以管理公司自己开发的依赖
搭建
下载和安装Nexus
找到安装包路径,执行nexus.exe /run
123456# 启动/opt/nexus/nexus-3.61.0-02/bin/nexus start# 查看状态/opt/nexus/nexus-3.61.0-02/bin/nexus status#停止/opt/nexus/nexus-3.61.0-02/bin/nexus stop
访问配置文件:\nexus-3.20.1-01\etc\nexus-default.properties
application-port=访问Nexus端口号(默认8081)
application-host=访问Nexus的ip地址(默认localhost本地ip)
账号是admin,密码在\nexus-3.20.1-01\ ...
activity6
参考资料 十分钟认识Activiti6.0工作流引擎 - 知乎
基本概念activity6能做到的东西其实就是根据画好的流程图走流程,但是具体流程里的逻辑,还是需要自定义实现,比如点击哪个按钮走到下一步,这个肯定是前后端配合实现。
流程图流程图可以使用满足activity6协议的各种工具绘画,最后会生成一个xml的配置文件,activity流程引擎会根据该文件来判断流程的全局结构
1234567891011121314151617181920212223242526272829303132333435363738<?xml version="1.0" encoding="UTF-8"?><definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/ ...