- 博客(35)
- 收藏
- 关注
原创 Sumsub Java Web Demo 技术文档
该项目是一个基于 Spring Boot 框架构建的 Java Web 应用程序,其核心目标是演示如何与 Sumsub 用户验证服务进行集成。应用程序采用经典的三层架构模式,即表现层(前端静态资源)、业务逻辑层(Controller 和 Service)以及数据访问/模型层(Model)。这种分层结构有助于代码的模块化、可维护性和可测试性。前端通过静态 HTML、CSS 和 JavaScript 文件提供用户交互界面,用户可以通过此界面触发后端API调用。
2025-05-16 17:02:23
1045
原创 Sumsub 活体检测与人证对比 Java Demo
本项目提供了一个JavaDemo,展示了如何与SumsubAPI集成,实现活体检测和人证对比功能。Sumsub是一套身份验证和KYC/AML解决方案,帮助企业验证用户身份并防范欺诈。Demo主要演示了后端API的集成流程,包括创建申请人、获取访问令牌、上传身份证件和查询申请状态等步骤。活体检测和证件图像采集通常由前端的SumsubSDK完成,而本Demo则侧重于后端API如何配合SDK完成整个验证流程。
2025-05-15 17:01:10
1318
原创 区块链详解
区块链本质上是一种分布式账本技术,它由多个节点共同维护一个不断增长的记录列表,这些记录以区块的形式存在,每个区块包含一定时间内的多个交易或数据信息。通过密码学技术,每个区块与前一个区块链接在一起,形成一个不可篡改的链式结构,确保了数据的完整性和安全性。区块链技术不依赖于中心化的信任机构,而是通过共识机制让各个节点就账本状态达成一致,实现了去中心化的信任建立。区块链作为分布式账本技术,凭借去中心化、不可篡改、透明公开和去中介化等核心特性,重塑信任机制与交易模式。
2025-05-09 15:30:32
1200
原创 RabbitMQ 死信、消息堆积、延迟队列
通过本文的介绍,你可以在 Java 中使用 RabbitMQ 实现死信队列、处理消息堆积问题以及实现延迟队列。这些技术可以帮助你提高系统的可靠性和稳定性,确保消息的正确处理。
2025-05-07 14:41:02
772
原创 RabbitMQ 消息不重复消费和顺序性
通过为消息生成唯一 ID 并在消费者端进行记录,可以有效避免消息的重复消费;而采用单消费者模式可以保证消息的顺序性。在实际应用中,需要根据具体的业务场景和需求选择合适的解决方案。以上代码示例基于 RabbitMQ Java 客户端,确保你已经添加了相应的依赖。在 Maven 项目中,可以在pom.xml这样,你就可以在 Java 中保证 RabbitMQ 消息的不重复消费和顺序性。
2025-05-07 11:18:53
876
原创 RabbitMQ 幂等性与消息可靠性保障
通过在生产者端、MQ 中间件端和消费者端采取一系列的措施,RabbitMQ 可以有效地保证消息的可靠性和幂等性。在实际应用中,需要根据具体的业务场景和需求,合理地配置和使用这些功能,以确保系统的稳定性和数据的一致性。同时,还需要注意一些性能方面的问题,例如事务机制对性能的影响、重试机制可能导致的资源消耗等,在保证系统可靠性的前提下,尽可能地提高系统的性能和效率。
2025-05-06 17:54:23
1354
原创 java spring常见面试题
Spring Boot 是一个用于快速构建独立、生产级 Spring 应用程序的框架。核心特性包括自动配置(Auto - Configuration),能根据项目依赖自动配置 Spring 及第三方库;起步依赖(Starter Dependencies),通过简单的依赖坐标整合所需的库;Actuator,提供生产级应用监控和管理功能。
2025-05-06 15:22:58
878
原创 java异常深度理解,错过就亏了!!!
异常是指程序在运行过程中出现的非正常情况,这些情况可能会导致程序无法按照预期的流程继续执行。例如,在进行除法运算时,如果除数为零;在读取文件时,文件不存在;在网络通信时,连接超时等,都会引发异常。Java 通过异常类来表示这些非正常情况,每个异常类都代表了一种特定类型的错误或异常情况。在实际的软件开发中,系统预定义的异常类可能无法满足特定业务需求。自定义异常可以更好地描述业务逻辑中出现的异常情况,使代码的可读性和可维护性更高。
2025-04-30 16:51:01
891
原创 java io流的深入理解,细到极致!!!
Java NIO(New IO)是 Java 1.4 引入的新的 IO API,提供了更高效的 IO 操作方式。NIO 与传统的 IO 流有所不同,它引入了通道(Channel)和缓冲区(Buffer)的概念,支持非阻塞 IO 和选择器(Selector)。通道(Channel)4:是双向的,允许同时进行读写操作。它直接与操作系统的 IO 操作交互,底层依赖于文件描述符。在高性能应用中,通道能够有效地传输数据,例如使用可以进行文件的高效读写,使用可以进行网络套接字的读写。缓冲区(Buffer)
2025-04-30 06:45:00
792
原创 事务和隔离级别深入理解,看完就懂了
事务(Transaction)是数据库操作的一个基本概念,它是访问并可能更新数据库中各种数据项的一个程序执行单元。在关系数据库中,一个事务可以是一条 SQL 语句、一组 SQL 语句或整个程序。事务通常由高级数据库操纵语言或编程语言(如 SQL、C++ 或 Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定,事务由事务开始和事务结束之间执行的全体操作组成。
2025-04-29 21:45:00
1061
原创 docker超级详细的介绍,不看超级亏!!!
Docker 作为容器化技术的领导者,为现代应用的开发、部署和管理提供了高效、灵活的解决方案。通过深入理解 Docker 的核心概念、掌握安装配置和使用技巧、遵循最佳实践并解决常见问题,读者能够充分发挥 Docker 的优势,提升开发效率和系统稳定性。未来,随着云原生技术的不断发展,Docker 将继续在容器生态中扮演重要角色,与 Kubernetes 等工具共同推动微服务架构的普及和创新。
2025-04-29 16:31:04
986
原创 jvm原理和调优实战
JVM 调优是提升 Java 应用性能的关键手段,需要结合应用特点和业务需求,综合运用内存管理、垃圾回收、线程优化等技术。通过合理配置参数、选择合适的 GC 算法、使用性能监控工具,能够显著提升系统的吞吐量和响应时间,保障应用的稳定高效运行。调优过程中需遵循 “分析 - 调整 - 验证” 的流程,持续迭代优化,以适应不断变化的业务场景。
2025-04-29 11:29:55
931
原创 java stream从入门到入土教程
除了使用 Java 提供的标准 Collector,还可以自定义 Collector。自定义 Collector 可以实现更复杂的收集逻辑。acc[1]++;},},Java Stream API 为我们提供了一种强大而灵活的方式来处理集合数据。通过合理使用 Stream 的各种操作,我们可以编写更简洁、高效的代码。在实际应用中,需要根据具体的业务需求和数据特点,选择合适的流操作和优化策略,以提高代码的性能和可读性。
2025-04-29 07:15:00
594
原创 java集合和map的深入理解,看完就懂了!!!
Java 集合框架包含了一系列接口和类,这些接口和类被组织成一个层次结构。Java 集合和 Map 是编程中管理数据的重要工具。Java 集合框架包含一系列接口和类,Collection 接口是集合根接口,衍生出 List、Set、Queue 等子接口,对应实现类如 ArrayList(基于数组,随机访问快)、LinkedList(双向链表,插入删除快)、HashSet(基于哈希表,查找插入快)等。Map 接口用于存储键值对,常见实现类有 HashMap(基于哈希表)、TreeMap(基于红黑树,键有序)
2025-04-28 16:41:17
539
原创 java线程池深入理解(不收藏非常可惜!!!)
线程池是一种线程管理机制,它维护了一个线程集合,这些线程可以被重复使用来执行多个任务。任务队列(Task Queue):用于存储待执行的任务。当线程池中的线程都在忙碌时,新提交的任务会被放入任务队列中等待执行。线程集合(Thread Collection):线程池预先创建的一组线程,这些线程不断地从任务队列中获取任务并执行。线程池管理器(Thread Pool Manager):负责线程池的创建、销毁、线程的分配和调度等操作。虽然Executors。
2025-04-28 14:18:24
989
原创 讲解java多线程与并发(非常详细,收藏就是赚到)
Java 提供了丰富的多线程与并发编程支持,通过使用线程、线程同步、线程通信、线程池、并发集合和并发工具类等技术,可以有效地提高程序的性能和响应速度。在实际开发中,需要根据具体的需求选择合适的技术,并注意避免线程安全问题和死锁等问题。同时,合理配置线程池和使用并发工具类可以提高程序的并发性能和可维护性。
2025-04-28 11:06:59
1058
原创 RabbitMQ、RocketMQ 和 Kafka 的区别(超级详细)
综上所述,RabbitMQ 因其灵活的消息模型和低延迟,在对消息处理灵活性和即时性要求高的场景中表现出色;RocketMQ 凭借高吞吐量、低延迟以及对事务和顺序消息的良好支持,在电商、金融等大规模且对消息可靠性和顺序性要求严格的领域应用广泛;Kafka 则在大数据实时处理、日志采集与分析等需要处理海量数据和高吞吐量的场景中具有明显优势。在选择使用时,需根据具体业务场景的需求、性能要求、数据规模以及技术团队的能力和经验等因素综合考量,从而确定最适合的消息队列系统。
2025-04-27 17:22:13
1361
原创 ffmpeg结合java使用(超详细)
FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包含了非常先进的音频 / 视频编解码库 libavcodec,为音视频处理提供了强大的支持。ffmpeg:是一个命令行工具,用于进行音视频的转换、剪辑等操作。ffplay:一个简单的媒体播放器。ffprobe:用于分析媒体文件的信息。通过本文的介绍,你已经了解了如何在 Java 项目中集成 FFmpeg 进行音视频处理。从环境搭建到常见音视频处理操作,再到错误处理与优化,我们详细介绍了整个过程。
2025-04-27 10:26:57
1131
原创 Elasticsearch 超详细(包含简介、下载安装、使用示例等等)不收藏超级亏!!!
Elasticsearch 是一个基于 Lucene 的分布式搜索和分析引擎,提供实时数据搜索、聚合分析、分布式存储等功能。其设计目标是实现高可用、可扩展、易维护,广泛应用于日志分析、电商搜索、实时监控等场景。Java 作为企业级开发的主流语言,与 Elasticsearch 的集成非常成熟,官方提供了完善的 Java 客户端库。
2025-04-25 16:38:07
1842
原创 mysql进阶(包含关键字的描述及使用方法和调优建议)
MySQL 性能优化需结合索引设计、查询重构和执行计划分析。合理使用关键字,避免全表扫描和不必要的计算,可显著提升查询效率。定期监控和优化数据库,确保在高并发和大数据量下稳定运行。
2025-04-25 10:46:20
1017
原创 了解存储过程,这一篇就够了
存储过程是数据库中的一个对象,它可以包含 SQL 语句、控制结构(如循环、条件判断等),并且可以接受输入参数、返回输出参数。存储过程可以在数据库服务器端执行,减少了客户端与服务器之间的数据传输量,提高了执行效率。MySQL 存储过程是一种强大的数据库编程工具,它可以提高数据库的性能、增强安全性、减少网络流量。通过合理使用存储过程的控制结构和优化技巧,可以进一步提高存储过程的性能和可维护性。在实际应用中,需要根据具体的业务需求和数据库环境来选择是否使用存储过程。
2025-04-25 09:53:28
666
原创 java常见的设计模式(内附描述和示例)
以上就是 Java 中常见设计模式的介绍和示例,不同的设计模式适用于不同的场景,合理运用设计模式能让代码更具可维护性、可扩展性和可复用性。
2025-04-24 15:33:08
868
原创 网络协议的区别与深入理解,看完这一篇你就懂了
1. 协议演进与替代IPv6 普及:随着 IPv4 地址耗尽,IPv6 成为主流,需逐步迁移网络设备与应用支持。安全协议主导:SFTP、HTTPS、SSH 等加密协议取代传统明文协议,成为标准配置。轻量级协议优化:TFTP 在物联网(IoT)和嵌入式设备中仍有应用,但需结合其他安全机制。2. 技术融合与挑战SDN 与协议集成:OpenFlow 等 SDN 技术简化路由协议配置,推动 BGP/OSPF 等协议的集中化管理。5G 与边缘计算。
2025-04-24 14:41:54
1031
原创 websocket深入理解,以及可能出现的常见问题解决方法
Java 提供了丰富的工具和框架来实现 WebSocket 功能,无论是使用标准的 Java WebSocket API 还是 Spring Boot 框架,都可以方便地开发出高性能、实时性强的 WebSocket 应用。在实际开发中,需要根据具体需求选择合适的实现方式,并注意性能优化、安全性问题以及常见错误的处理。
2025-04-24 11:00:21
1356
原创 Netty 从入门到入土(史诗级教程)
Netty 是一个基于 Java NIO 封装的高性能网络编程框架,由 JBoss 开发并开源。它简化了网络编程中如 TCP 和 UDP 套接字服务器等网络编程的复杂性,提供了易于使用且功能强大的 API,被广泛应用于各种网络应用开发中,如分布式系统中的 RPC 框架、游戏服务器等。在某些情况下,Netty 提供的编解码器可能无法满足需求,这时可以自定义编解码器。自定义编解码器需要继承或等相关类,并实现相应的方法。
2025-04-24 10:31:12
1136
原创 分布式事务从入门到精通
分布式事务是分布式系统中的核心挑战,需根据业务需求选择合适的解决方案。传统方案如 2PC、3PC 提供强一致性但性能较低,而 TCC、SAGA、本地消息表等最终一致性方案更适合高并发场景。新兴技术如基于实时性能指标的动态协调、云原生与分布式数据库结合,正推动分布式事务向高效、可靠方向发展。
2025-04-23 11:44:31
913
原创 从零了解xxl-job(分布式任务调度平台)
XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。它支持分布式任务调度,任务的可视化管理,丰富的调度策略,并且提供了强大的容错机制,适用于各种定时任务、批量任务等场景。
2025-04-23 11:18:07
322
原创 从零了解springcloud
Spring Cloud 是一个为开发人员提供快速构建分布式系统的工具集。它基于 Spring Boot,提供了一系列的解决方案,包括服务发现、配置管理、断路器、智能路由、微代理、控制总线等。通过 Spring Cloud,开发者可以轻松地构建出具备高可用性、可扩展性的分布式系统。Spring Cloud 提供了丰富的组件和工具,使得开发者可以轻松地构建分布式系统。通过服务发现、负载均衡、断路器、API 网关等组件,可以提高系统的可用性、可扩展性和安全性。
2025-04-23 10:32:50
608
原创 java 进阶了解Redis
本文介绍了 Redis 在 Java 中的进阶使用,包括各种数据结构的操作方法、事务操作和发布订阅模式。通过这些方法,你可以在 Java 项目中更好地利用 Redis 的强大功能。
2025-04-23 09:58:06
411
原创 消息队列入门到进阶(小白都可以理解)
消息队列(Message Queue,MQ)是一种应用间的通信机制,用于在不同系统或组件之间传递消息,以实现异步通信、解耦和流量控制。它充当消息的中间存储和传输枢纽,允许生产者将消息发送到队列,而消费者从队列中获取消息进行处理。消息队列作为分布式系统中的重要组件,在异步通信、解耦、流量控制等方面发挥着关键作用。通过合理选择和使用消息队列,可以提高系统的性能、可靠性和可扩展性,实现分布式系统的高效协同工作。
2025-04-23 09:35:24
1200
原创 Linux 安装 ffmpeg 文档
运行下面语句安装yasm编译器,如果出现y/N的选择输入y。运行下面语句安装gcc编译器,如果出现y/N的选择输入y。如果安装ffmpeg出现一下错误,则要先安装yasm。运行下面语句下载一个ffmpeg工具。运行下面语句进入local文件夹。运行下面代码查看安装是否成功。运行下面语句创建一个文件夹。下载完成后运行下面代码解压。输入下面代码配置环境变量。在文件最下面添加下面语句。运行下面语句打开文件夹。输入下面代码使修改生效。使用下面代码使配置生效。运行下面代码进行编译。运行下面代码进行安装。
2025-04-22 14:57:09
188
原创 安装elasticsearch7.14.0
浏览器访问9200端口,例如访问 http://服务器IP:9200/运行如果出现下方报错,则需要调大vm.max_map_count。在重新执行启动es步骤出现下面图片代表正在运行。出现下面信息代表访问成功。
2025-04-22 14:55:21
282
原创 安装rocketmq
启动完成后开放10909,10911,10912,9876这个四个端口。找到rocketmq-console-ng-1.0.1.jar的文件。启动后开放9800端口。
2025-04-22 14:48:08
267
java联合sdk实现活体检测和认证对比
2025-05-16
Linux常用命令学习指南
2025-05-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人