
经验分享
文章平均质量分 75
HaSaKing_721
一位不愿意透露姓氏的王先生
展开
-
【完整可用】使用openhtmltopdf生成PDF(带SVG)
OpenHTMLToPDF 是一个纯 Java 库,基于 Flying Saucer 和 Apache PDFBox 2,支持将格式良好的 XML/XHTML(甚至一些 HTML5)文档渲染为 PDF 文件。它支持 CSS 2.1 及其后续标准进行布局和格式化,并能够处理 SVG 图像。原创 2025-04-10 15:16:19 · 1639 阅读 · 2 评论 -
YAML语法特性全解析:锚点、别名及其他功能
YAML 是一种功能强大的数据序列化格式,广泛应用于配置文件、数据交换、日志管理等场景。除了锚点()和别名(多行字符串(保留式与折叠式)合并操作符原创 2025-01-02 10:14:17 · 1046 阅读 · 0 评论 -
YAML中的锚点与别名:简化配置管理的利器
锚点(:用于给一个节点(值)指定一个标识符,类似于为该值取了一个“别名”,可以在其他地方引用。别名(:用于引用已经定义了锚点的节点,从而避免重复书写相同的值。这两个特性常常配合使用,可以实现数据的共享和引用,减少代码的冗余,提高可读性和可维护性。原创 2025-01-02 10:03:39 · 1260 阅读 · 0 评论 -
MySQL 与 MongoDB 存储差异分析
固定表结构:MySQL 使用行存储模型,数据表的结构在创建时就已经定义,无论数据是随机生成还是固定生成,只要字段和数据类型一致,存储需求几乎相同。索引一致性:由于 MySQL 的索引大小不受数据内容影响,存储差异非常小。原创 2024-11-26 20:26:50 · 1333 阅读 · 0 评论 -
【非关系型数据库】【IOT设备】InfluxDB、TimescaleDB、Cassandra和MongoDB
关系型数据库在处理IoT设备数据瓶颈问题原理具体问题描述固定的模式和结构预定义的数据模式要求IoT设备可能产生结构多变的数据,频繁调整数据库模式以适应这些变化是不切实际的。扩展性限制设计初衷是单服务器,水平扩展复杂需要应对大量设备数据的快速扩展,关系型数据库的水平扩展可能面临性能瓶颈和一致性问题。高并发写入性能严格的事务ACID属性在处理成千上万的并发写入时可能无法提供足够的写入吞吐量,导致性能下降。成本和复杂性大型系统维护涉及多方面的复杂性IoT数原创 2024-11-11 21:27:52 · 1220 阅读 · 0 评论 -
【MQTT】代理服务比较RabbitMQ、Mosquitto 和 EMQX
目前要处理大量设备同时频繁发送数据的情况,MQTT协议确实是一个更优的选择,因为它特别适合需要低带宽和高效能的物联网应用,下面是对目前主流协议的对比。原创 2024-11-11 10:43:36 · 2420 阅读 · 0 评论 -
用爬虫解决问题
网络爬虫(Web Crawler),也称为网络蜘蛛(Web Spider),是一种自动化程序,用于浏览互联网并从中提取数据。爬虫可以自动访问网页,解析网页内容,并将所需的信息保存到本地进行后续处理。网络爬虫是一项强大的工具,可以帮助我们解决许多实际问题。通过本文的介绍,相信你已经掌握了从基础到高级的爬虫技术。希望你能在实际应用中灵活运用这些技巧,高效地完成数据收集任务。如果你有任何问题或需要进一步的帮助,欢迎在评论区留言!原创 2024-05-14 17:24:50 · 811 阅读 · 0 评论 -
Tomcat 启动闪退问题解决方法
Tomcat 启动闪退问题可能由多种原因引起,但通过系统地检查日志文件、端口配置、环境变量、配置文件、依赖库、内存配置和权限设置,我们通常可以快速找到并解决问题。希望本文提供的解决方法能够帮助您顺利解决 Tomcat 启动闪退问题,提高开发效率。如果您有其他方法或经验,欢迎在评论区分享!原创 2024-05-14 17:22:43 · 756 阅读 · 1 评论 -
IDEA远程调试以及原理
远程调试的原理基于Java调试体系结构(Java Debug Architecture)中的一个关键组成部分:Java Debug Wire Protocol(JDWP)。使用这个协议,调试器可以查询被调试JVM的状态,设置断点,控制程序执行流程等。首先,需要在远程服务器上运行的Java应用程序中启用远程调试。: 一个高级Java编程接口,提供了在Java代码中编写调试器的能力。通过JDWP,远程调试为开发者提供了一个强大的工具,可以在不同的开发和生产环境中诊断和解决问题。原创 2024-03-18 09:57:38 · 2024 阅读 · 0 评论 -
OpenVas 网络安全扫描系统Docker搭建
针对 CVSS 漏洞评分系统 ,对服务器网络环境进行定级原创 2023-05-18 15:30:23 · 2646 阅读 · 0 评论 -
【无标题】
监控系统架构选型原创 2023-03-31 09:07:54 · 201 阅读 · 0 评论 -
tomcat8调优
Tomcat调优原创 2023-03-09 13:44:35 · 1205 阅读 · 0 评论 -
java中压缩字符串的长度
压缩字符串存储的长度原创 2023-03-08 18:17:59 · 4220 阅读 · 1 评论 -
shardingsphere5.1.1分表分库yaml配置 自定义策略
shardingsphere5.1.1版本原创 2023-03-02 20:17:13 · 10029 阅读 · 0 评论 -
Tomcat 8 升级为 Tomcat10(踩坑记录)
Tomcat 8 升级为 Tomcat10 ,使用jakartaee-migration工具进行填坑原创 2022-08-02 10:43:54 · 5069 阅读 · 0 评论 -
Tomcat启动乱码完整解决
1、问题归属配置问题2、问题解决步骤tomcat /conf 目录下的server.xml配置添加URIEncoding=“UTF-8”<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" /><Connector port="8009" protocol="AJP.原创 2021-09-01 11:24:24 · 734 阅读 · 1 评论 -
Java数据 定义规则脱敏实现
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基原创 2021-07-26 09:57:55 · 4701 阅读 · 4 评论 -
技术团队博客记录
再次记录,方便查看一、美团链接: 美团技术团队.二、有赞链接: 有赞技术团队.原创 2021-06-03 14:00:02 · 127 阅读 · 0 评论 -
Java Hutool(糊涂)工具类索引记录
前言有时候工具类太多,包括项目封装的,不知道用哪一个,在这里记录下目录,方便查找介绍Hutool 是一个 Java 工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让 Java 语言也可以“甜甜的”。Hutool 最初是我项目中 “util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。(抄自作者简介)官方文档链接: hutool API.工具类列表类型转换类型转换工具类 - Convert原创 2021-05-17 09:12:35 · 8858 阅读 · 6 评论 -
JAVA根据正则提取文本内容
前言最近被同事问到如何按条件提取文本里面的内容,在此记录一下场景举个栗子 假设文本有如下内容:iphone version:1.23.01 xiaomi version:1.32.1 huawei version:1.3.41 yijia version:1.23.15假设我们要取 xiaomi version 后面的版本号可以使用 java.util.regex.Pattern 这个包的 compile 方法具体实现废话不多说直接上代码public static voi原创 2021-05-12 09:13:57 · 597 阅读 · 1 评论 -
Linux环境下 Java Graphics2D画图乱码解决以及源码解析
问题描述使用 Graphics2D 画图的时候出现乱码情况,本地测试是没问题,放在linux服务器就出现乱码DEMO代码 File file = new File("/home/war/test.png"); BufferedImage bi = new BufferedImage(400, 200, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = (Graphics2D) bi.getGraphics();原创 2021-04-30 16:35:45 · 1933 阅读 · 5 评论 -
为什么要用微服务?单体应用他不香吗?
前言最近看了一篇文章 千万并发,阿里淘宝的 14 次架构演进之路.反思为什么要用微服务架构,他们到底有什么区别?凡事都要权衡他的利与弊下面我们来说说他们的区别单体服务什么是单体应用?简单的说就是不管啥功能都往一个应用里写,比如电商系统。用户功能、商品功能、订单功能等等,都往一个应用里写。好处:本地开发调试方便,直接起一个项目,调试也是在一个进程内,没有冗长跨进程的调用链,出错可快速定位。本地的函数调用,没有网络调用的开销。简单粗暴,快速交付日志以及调用链路都在一起对比微服务事物机制简原创 2021-03-30 18:14:43 · 554 阅读 · 1 评论 -
线上CPU飙升100%问题排查
目录一、引子二、问题复现三、问题排查3.1 `核心排查步骤`3.2 原因分析三、总结一、引子对于互联网公司,线上CPU飙升的问题很常见(例如某个活动开始,流量突然飙升时),按照本文的步骤排查,基本1分钟即可搞定!特此整理排查方法一篇,供大家参考讨论提高二、问题复现线上系统突然运行缓慢,CPU飙升,甚至到100%,以及Full GC次数过多,接着就是各种报警:例如接口超时报警等。此时急需快速线上排查问题。三、问题排查不管什么问题,既然是CPU飙升,肯定是查一下耗CPU的线程,然后看看GC。3.1转载 2021-03-01 10:12:33 · 763 阅读 · 0 评论 -
灰度发布系统架构设计
灰度发布灰度发布的定义简单灰度发布系统的设计灰度的策略灰度发布具体的执行控制Nginx网关层/业务逻辑层/数据访问层灰度发布复杂场景场景1:调用链上同时灰度多个服务场景2:涉及数据的灰度服务灰度发布的定义互联网产品需要快速迭代开发上线,又要保证质量,保证刚上线的系统,一旦出现问题可以很快控制影响面,就需要设计一套灰度发布系统。灰度发布系统的作用,可以根据配置,将用户的流量导到新上线的系统上,来快速验证新的功能,而一旦出现问题,也可以马上的修复,简单的说,就是一套A/B Test系统。灰度发布允许带着转载 2021-02-05 14:29:17 · 489 阅读 · 0 评论 -
TCP 详解
TCP共有6个标志位,分别是SYN(synchronous),建立联机。ACK(acknowledgement),确认。PSH(push),传输。FIN(finish),结束。RST(reset),重置。URG(urgent),紧急。图解三次握手和四次挥手的过程三次握手建立连接阐述第一次握手:客户端要和服务端进行通信,首先要告知服务端一声,遂发出一个SYN=1的连接请求信号,”服务端哥哥,我想给你说说话”。第二次握手:当服务端接收到客户端的连接请求,此时要给客户端一个确认信息,”我转载 2020-09-22 17:01:12 · 1227 阅读 · 0 评论 -
利用Map与函数式接口来实现 去除if else
前言我想大家肯定都或多或少的看过各种“策略模式”的讲解、布道等等,这篇文章就是来好好“澄清”一下策略模式,并尝试回答以下的问题:策略模式是如何优化业务逻辑代码结构的?杀鸡焉用宰牛刀?就是几个if else场景我需要用到策略模式?!有没有什么更好的代码结构来实现策略模式的吗?策略模式是如何优化业务逻辑代码结构的?要回答这个问题,我们还得先扒一扒策略模式的定义,从定义着手来理解它策略模式的教科书定义它的定义很精简:一个类的行为或其算法可以在运行时更改。我们把它降维到代码层面,用人话翻译一转载 2020-07-03 09:57:12 · 4707 阅读 · 3 评论 -
SpringMVC 中 @ControllerAdvice 注解的三种使用场景!
前言@ControllerAdvice ,很多初学者可能都没有听说过这个注解,实际上,这是一个非常有用的注解,顾名思义,这是一个增强的 Controller。使用这个 Controller ,可以实现三个方面的功能:全局异常处理全局数据绑定全局数据预处理灵活使用这三个功能,可以帮助我们简化很多工作,需要注意的是,这是 SpringMVC 提供的功能,在 Spring Boot 中可以直接使用,下面分别来看。@ControllerAdvice // 可指定包前缀(basePackages =转载 2020-06-17 18:56:34 · 184 阅读 · 0 评论 -
【DDD】领域驱动设计实践
【DDD】领域驱动设计实践一、框架实现图二、框架详述User Interface层application层domain层infrastructure层三、模块结构四、引发思考转载:https://www.cnblogs.com/daoqidelv一、框架实现图该框架实现基本和DDD的指导思想契合,主要分为四层,且将关注点放在了domain层。下面将逐层介绍各个组件的职责。二、框架详述User Interface层门面层,对外以各种协议提供服务,该层需要明确定义支持的服务协议、契约等。包含:转载 2020-05-27 18:14:35 · 4085 阅读 · 0 评论 -
Java 浅拷贝和深拷贝的理解和实现方式
浅拷贝和深拷贝前言浅拷贝一、通过拷贝构造方法实现浅拷贝二、通过重写clone()方法进行浅拷贝深拷贝通过重写clone方法来实现深拷贝二、通过对象序列化实现深拷贝前言Java中的对象拷贝(Object Copy)指的是将一个对象的所有属性(成员变量)拷贝到另一个有着相同类类型的对象中去。举例说明:比如,对象A和对象B都属于类S,具有属性a和b。那么对对象A进行拷贝操作赋值给对象B就是:B.a=A.a; B.b=A.b;在程序中拷贝对象是很常见的,主要是为了在新的上下文环境中复用现有对象的部分或全部转载 2020-05-12 17:26:23 · 2731 阅读 · 0 评论 -
面试官真是搞笑!让实现线程安全的单例,又不让使用synchronized!
这里写自定义目录标题前言问答前言单例模式,是Java中比较常见的一个设计模式,也是我在面试时经常会问到的一个问题。经过我的初步统计,基本上有60%左右的人可以说出2-4种单例的实现方式,有40%左右的人可以说出5-6种单例的实现方式,只有20%左右的人能够说出7种单例的实现。而只有不到1%的人能够说出7种以上的单例实现。其实,作为面试官,我大多数情况下之所以问单例模式,是因为这个题目可以问到很多知识点。比如线程安全、类加载机制、synchronized的原理、volatile的原理、指令重排与内转载 2020-05-11 09:30:58 · 618 阅读 · 0 评论 -
如何正确的打开缓存使用方式
缓存的正确使用方式一、引子二、先更新数据库,再更新缓存三、先删缓存,再更新数据库四、先更新数据库,再删缓存一、引子首先,缓存由于其适应高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。先做一个说明,从理论上...转载 2020-04-29 14:45:36 · 2924 阅读 · 0 评论 -
一图弄懂Redis知识点概括
经验分享(Redis)原创 2020-04-28 16:42:00 · 915 阅读 · 0 评论 -
java 构造方法和set赋值哪个快?
java 构造方法和set赋值哪个快?最近项目里发现构造方法和set复制的代码比较多,但是这两种在效率上有什么区别呢?让我们来手动实测一下,首先贴上测试代码:首先上两个实体类,属性都是相同的,这里使用了 lombok 插件@Data@NoArgsConstructor@AllArgsConstructorpublic class UserDto { private Stri...原创 2020-04-26 15:40:08 · 2081 阅读 · 6 评论