- 博客(330)
- 收藏
- 关注
原创 什么事分布式系统中的背压
背压是分布式系统中的一种技术,通过控制请求流来防止过载和级联故障。一场不受控制的洪水甚至会冲走最坚固的水坝。–古老的谚语上面的引述表明,即使是最坚固、设计最精良的大坝也无法承受不受控制和控制的洪水的破坏力。同样,在分布式系统的上下文中,未经检查的调用方通常会使整个系统不堪重负并导致级联故障。在上一篇文章中,我写了如果没有适当的护栏,重试风暴如何有可能使整个服务瘫痪...
2024-10-22 16:45:56 157
原创 你有没有想过如何重新定义 Java 对象相等性??
Java 中的相等性对象相等通常是评估概念的热门话题,也是集合框架的许多实现有效的支柱之一(另一个是 - )。我们通过为 method 提供我们自己的实现来检查相等性。根据Oracle 文档,应遵守以下要求:hashCode()public booleanjava.lang.Object#equals(java.lang.Object other)它是自反的:对于任何非 null 引用值 ,应返...
2024-10-19 14:50:07 509
原创 短剧 《亲子不如养子,我走你们又急啥》
在这个充满变数的社会里,每个人都面临着不同的挑战,尤其是在家庭关系上。《亲子不如养子,我走你们又急啥》就是这样一部触及心灵深处的短剧,它以一种独特的视角探讨了现代家庭中的爱与矛盾。???? 剧情简介:故事围绕着一个普通家庭展开,父母对孩子有着无尽的期望,而孩子却在追求自我价值的过程中与父母产生了分歧。当“亲子”关系面临考验时,一个外来的“养子”成为了这个家庭的新焦点,他用自己的方式让每个人学会了理解和接...
2024-10-17 14:02:10 133
原创 用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
在大数据生态系统中,Parquet 和 ORC 等列式格式以及 Avro 等基于行的格式因其针对特定类型的查询和处理任务的优化性能而被广泛使用。这可能会导致更高的存储成本,尤其是对于具有许多列的大型数据集,因为必须读取一行中的所有数据,即使只需要几列也是如此。ORC 是一种类似于 Parquet 的列式存储格式,但针对读取和写入操作进行了优化,ORC 在压缩方面非常高效,从而降低了存储成本并加快了数据检索速度。由于它们高效的列式存储,这些格式减少了读取和处理的数据量,从而降低了计算成本。
2024-10-17 09:28:04 765
原创 调优:在Java 中字符串重复数据删除性能
字符串重复数据删除是一项重要功能,旨在通过从堆内存中消除重复字符串来优化内存使用。然而,最近的观察表明了一个令人担忧的趋势 – 较新的 Java 版本的字符串重复数据删除性能下降。因此,我们开始进行比较分析,以评估 Java 版本 11、17 和 21 中的字符串重复数据删除性能行为。这篇文章旨在分享我们从这次分析中收集到的观察和见解。WebCrawler Spring Boot 应用程序...
2024-10-16 09:17:17 579
原创 看 Java如何解决项目中资源文件的编码问题
在 Java 项目中,资源文件在存储和管理应用程序数据(如本地化字符串、配置设置和其他静态内容)方面起着至关重要的作用。但是,使用资源文件有时会导致编码问题,从而导致文本显示和处理出现问题。首先,我们来看看编码的定义。它是指使用字节以特定格式表示字符的过程。Java 使用 Unicode 作为其字符集,它支持来自各种语言和脚本的各种字符。如果您在Java 项目中遇到编码问...
2024-10-15 08:42:44 649
原创 看看Java如何在AI里面混的“风声水起”
人工智能 (AI) 使机器能够执行通常不需要人工干预的任务,从而实现行业现代化;解决问题、自然语言理解和图像处理等任务。对于与 AI 相关的软件开发,通常使用Python。然而,Java也是一个强大的选择,因为由于其稳健性和可扩展性,许多组织都在企业应用程序中使用它。在本文中,我们将探讨如何将 Java 编程语言用于 AI 开发,以及支持的库和工具。面向 AI 的 Java 编程语言J...
2024-10-14 08:51:18 617
原创 深度比较:Angular 与 React找到最适合开发者的框架
JS2022 现状调查显示,虽然在过去几年中出现了许多新框架,但 React 和 Angular 仍然占据主导地位。前端框架使用率随时间的变化。来源:2022 年 JS 现状前者的立场似乎相当明确——虽然 React 的使用率一直在稳步攀升,但其竞争对手却在起伏不定。即使是 Angular,React 的“宿敌”,已经开发了近 3 年,也正在过时(而且说得相当快——它在 2022 年的使用率下降...
2024-10-11 08:53:39 875
原创 为什么数字化转型需要更多工作
数字化转型仍然是许多组织明确的重点,积极主动的领导者看到了值得驾驭技术和流程中断的复杂性的机会。据波士顿咨询集团 (Boston Consulting Group) 的董事总经理 Kristy Ellmer 称,“在任何特定时间,任何特定行业都有 30% 处于转型阶段。当公司处于优势地位时,进入转型思维模式的公司会比被动地进行转型更成功。然后,你如何执行它并推动它背后的组织才是真正...
2024-10-09 10:55:06 471
原创 网络嗅探:网络安全中的关键概念
什么是网络探查?嗅探包括被动拦截通过网络的数据包并进行进一步分析。最初,嗅探是为了帮助网络管理员解决连接问题而开发的,从那时起,它已经发展成为网络管理和安全测试的一项重要技术。网络嗅探如何工作?基本上,网络嗅探基于网络接口卡设置为“混杂模式”的事实:通过其路径的所有网络流量都被捕获,而不仅仅是发送到设备的数据包。然后,嗅探软件会分析捕获的数据包,使用户能够读取和解释通过网络的数据。...
2024-10-08 08:39:03 907
原创 程序员不得不了解的Java 23
随着 Java 于 2024 年 9 月 17 日实施其第 23 个主要版本,开发人员将享受到许多新功能和改进。Oracle 的最新版本有望使开发更加高效和愉快,同时增强平台的性能、稳定性和安全性。让我们深入了解开发人员在 Java 23 中应该感到兴奋的关键方面。六个月的发布节奏仍在继续 Oracle 坚持其 6 个月的 Java 发布周期,现在已经是第七个年头了。这种方法成功地为...
2024-10-07 09:05:35 1006
原创 Java 与 Scala:金融科技后端开发的比较分析
为金融科技开发选择合适的后端技术涉及对 Java 和 Scala 的详细了解。这两种语言都带来了明显的优势,对于在金融科技行业工作的专业人士来说,了解这些细微差别至关重要。毫无疑问,Java 是软件开发的真正基石 — 稳定、拥有全面的库和庞大的生态系统。我们中的许多人——包括我!— 多年来一直依赖它,如今 Java 已成为无数金融系统的支柱。Scala 在许多方面都是一种更现代的语...
2024-10-01 09:01:47 835
原创 如何开始使用 Java 21 中的新模式匹配
Java21 变得更简单了!想要编写更简洁、更具可读性的代码?深入了解模式匹配,这是一项强大的新功能,可让您轻松解构和分析数据结构。本文将通过许多示例来探讨模式匹配,展示它如何简化常规数据处理并保持代码简洁。模式匹配的示例图案匹配在两个关键领域大放异彩。首先,switch 语句的模式匹配功能取代了长语句链的时代,让您可以优雅地将选择器表达式与各种数据类型(包括基元、对象甚...
2024-09-30 08:06:01 736
原创 C#排名最靠前关键词竟然是这几个
C#语言在 Stack Overflow 调查中排名前 5 位。它广泛用于创建各种应用程序,从桌面到移动设备再到云原生。由于语言关键字和功能如此之多,开发人员要跟上新功能的发布将是一项艰巨的任务。本文深入探讨了每个 C# 开发人员都应该了解的前 10 个 C# 关键字。1. async和 await关键词:,asyncawaitC# 中引入的 and 关键字使在C# 中处理异步编程变得...
2024-09-29 10:11:08 1120
原创 使用JAVA转换为缩略图,尽然如此简单!
为什么要将文档转换为缩略图?将文档“转换”为缩略图图像(即,以编程方式从文档内容生成缩略图图像)可以创建轻量级内容预览,文档收件人可以毫不费力地快速查看这些预览。我过去曾在这里写过将文件转换为图像数组(例如 PNG 和 JPG)的好处,这些概念与生成缩略图背后的想法之间存在一些交叉,以及一些关键差异。从本质上讲,这两个图像转换过程都旨在生成轻量级图像结果,并且它们都尝试在多...
2024-09-28 08:13:00 715
原创 想要在在 IT 行业发展职业生涯,只需要这三步
在当今数字化时代,IT 行业蓬勃发展,为众多有志之士提供了广阔的职业发展空间。若想在这个充满机遇与挑战的领域中脱颖而出,制定一个清晰的三步策略至关重要。第一步:扎实基础,持续学习。进入 IT 行业,首先要具备坚实的基础知识。无论是编程语言、数据库管理还是网络技术,都需要投入大量的时间和精力去学习和掌握。可以通过参加专业的培训课程、在线学习平台或者阅读相关的技术书籍来不断提升自己的技能水平。同时,I...
2024-09-27 08:12:22 292
原创 iOS 最好的应用程序开发编程语言竟然是这7种
移动用户将超过 88% 的时间花在移动应用程序上。几乎所有其他企业和商业组织都有其专用的应用程序。拥有如此庞大的智能手机应用程序用户群,学习如何创建一个是个好主意!根据 Exploding Topics 的数据,iPhone 的市场份额相对较高,为 57.93%,高于 Android 的 41.64% 市场份额。事实上,2023 年应用总收入达到了高达 2010 亿美元。由于越来越...
2024-09-26 08:18:36 1338
原创 RabbitMQ 队列之战:Classic 和 Quorum 的性能洞察
RabbitMQ是一个功能强大且广泛使用的消息代理,它通过处理消息的传输、存储和交付来促进分布式应用程序之间的通信。作为消息代理,RabbitMQ 充当生产者(发送消息的应用程序)和使用者(接收消息的应用程序)之间的中介,即使在复杂的分布式环境中也能确保可靠的消息传递。RabbitMQ 的核心组件之一是队列,消息在其中临时存储,直到被使用。队列在 RabbitMQ 的架构中起着关...
2024-09-25 08:14:26 1073
原创 Java 22 为开发人员带来了重大增强功能
2024 年 3 月 19 日,甲骨文宣布发布 Java 22,这是流行的编程语言和开发平台的最新版本。这一重大更新提供了广泛的新功能和改进,Java 开发人员应该对此感到兴奋。让我们深入了解 Java 22 中最重要的增强功能,以及它们对 Java 开发社区的意义。Project Amber 的语言增强功能Java 22 的重点领域之一是 Project Amber,它旨在发展 ...
2024-09-24 08:25:24 453
原创 Java 中的运算符重载
在这篇文章中,我们将深入探讨 Java 中 Operator 重载的迷人世界。尽管 Java 本身不支持运算符重载,但我们将发现 Manifold 如何使用该功能扩展 Java。我们将探讨它的好处、局限性和用例,尤其是在科学和数学代码方面。我们还将探索 Manifold 提供的三个强大功能,这些功能增强了默认的 Java 类型安全性,同时支持令人印象深刻的编程技术。我们将讨论单元表...
2024-09-21 08:17:38 786
原创 通过 Java Vector API 利用 SIMD 的强大功能
在高性能计算领域,利用 SIMD(单指令、多数据)指令可以显著提高某些类型计算的性能。SIMD 使处理器能够同时对多个数据点执行相同的操作,使其成为数值计算、图像处理和多媒体操作等任务的理想选择。在Java 17中,开发人员现在可以访问 Vector API,该功能使他们能够直接在Java应用程序中利用 SIMD 的强大功能。在本文中,我们将探讨 Vector API 是什么、它是...
2024-09-20 08:26:53 931
原创 Java 并发性:先发生保证
通常,当我们编写代码时,我们会假设代码的执行顺序与编写的顺序相同。事实并非如此,因为出于优化目的,语句的重新排序发生在编译时或运行时。无论线程何时运行程序,结果都应该是所有操作都按照它们在程序中出现的顺序发生。单线程程序的执行应遵循 as-if-serial 语义。只要保证结果与程序的结果相同(如果语句已按顺序执行),就可以引入优化和重新排序。让我们看一个例子。此块:var i =...
2024-09-19 08:56:58 855
原创 C#实现指南:将文件夹与exe合并为一个exe
是一个用于.NET应用程序的打包工具,它可以将你的应用程序及其所有依赖项(包括dll文件和资源文件)打包到一个单独的可执行文件中。这样做的好处是,你只需分发一个文件,而不是一个文件夹或多个文件,从而简化了部署过程。
2024-09-18 15:33:21 1090
原创 一个强大的浏览器指纹识别库fingerprintjs
企业希望用户在使用软件的时候,获取到各种的用户信息,比如有多少人访问了网站,访问地址来源于哪些地方,访问人群的分类,是否有重复访问等情况。它通过收集用户浏览器和设备的多种属性(如用户代理、屏幕分辨率、插件列表、字体、Canvas和WebGL特性等)来生成一个独特的标识符,用于识别和区分用户。也可以将指纹存储在本地存储(如 localStorage)中,以便在用户的后续访问中使用。数据的加密和解密:一系统需要将数据进行复杂加密存储,防止外在程序的窃取,而某些系统则需要对数据解密,用于特点的场景下数据分析。
2024-09-18 15:32:28 1388
原创 C#开发者的新选择:使用ImageSharp进行图像处理
在.NET生态系统中,ImageSharp是一个功能强大、跨平台的图像处理库,它为开发者提供了丰富的API来处理图像。与传统的System.Drawing不同,ImageSharp不需要依赖Windows GDI+,因此可以在Linux和macOS等非Windows平台上运行。本文将介绍如何使用ImageSharp进行基本的图像处理操作,并通过示例代码展示其用法。
2024-09-18 15:31:44 667
原创 面向企业应用程序的 Python 配置管理
配置管理的重要性在企业应用程序中,配置管理是最被低估的运算符,它使所有内容保持集成并平稳运行。它充当后台经理,确保所有灯光都就位,剧院队列准备就绪,演出可以顺利进行。特别是,在处理多环境部署时,使用紧密的CI/CD流程,一个错误的配置可能会带来应用程序范围的关闭风险。多环境企业应用程序有其自身的一系列挑战,管理配置也不例外。我们都听过著名的“但是,它在我的机器上工作”的借口比日...
2024-09-18 11:38:41 797
原创 智能网络载入:通过 AI 和自动化彻底改变连接
网络载入(新设备访问组织网络的过程)是 IT 运营的基石,影响从安全性到用户满意度的方方面面。传统上,这个过程充满了挑战,尤其是在规模上。在拥有数百或数千台设备的环境中,手动载入可能会消耗不成比例的时间和资源。根据 Cisco 的一项研究,IT 团队花费大约 20% 的时间来管理设备连接问题,这凸显了当前做法的运营负担。此外,考虑到 IoT 设备的激增,问题的规模变得更加明显。Gartner 报告称,到 2025 年,全球将有超过 750 亿台互联 IoT 设备投入使用。
2024-09-18 10:03:01 519
原创 构建基于 IoT 的废物管理系统:软件架构师指南
这使他们能够共享他们收集的数据。IoT 可以通过提供有关废物水平的实时数据来改变废物管理。构建基于 IoT 的废物管理系统可帮助开发人员和软件架构师优化废物处理、降低成本并改善公共卫生。他们通过测量到垃圾桶的距离来检查垃圾桶的装满程度。IoT 可以通过提供有关废物水平的实时数据来帮助解决废物管理问题。可以根据范围、功耗和数据需求使用不同的技术。移动应用程序通过提供实时信息和通知,在基于 IoT 的废物管理系统中发挥着重要作用。卡车只开往满的垃圾桶,而不是空的垃圾桶。更少的驾驶意味着更少的污染。
2024-09-18 10:01:30 815
原创 为什么使用 Rust over C++ 进行 IoT 解决方案开发
正如我们所看到的,Rust 为 IoT 应用程序开发人员提供了高级安全功能,可以防止许多常见错误并产生更可靠、更清晰的代码。同时,Rust 提供了许多工具和开箱即用的库,它们的结果可与 C++ 相媲美,但工作量和代码要少得多。我们的团队一直在寻找最合适的解决方案,为我们提供成功交付所需的一切:多任务处理功能、安全的编码环境以及与网络、麦克风和扬声器连接的接口。我们看到了 Rust 满足这些要求的潜力,因为它有一个强大的生态系统,使我们能够毫不费力地集成所需的功能。Rust 有一个活跃且快速增长的开发社区。
2024-09-18 10:00:40 349
原创 如何设计可靠的 IIoT 架构
在 IIoT 设计中定义业务层可在 IIoT 网络的运作方式与实现这些目标的方式之间建立具体的联系。您的网络层是 IIoT 架构的一部分,它允许设备层与网络的其余部分进行通信。实现层包括 IIoT 架构中设备的纯技术概述,而功能视点定义了实现层中的设备和组件如何连接。应用层是在 IIoT 设计的其他层中收集和传输的数据的最终目的地。如果您的 IIoT 设计中有很多网络技术,或者想要使用 AI 等高级处理工具,那么拆分该层可能是明智的。当然,您的独特设计可以有更多的层次,但从这三个开始是必不可少的。
2024-09-18 09:59:35 319
原创 使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
Istio是一个重要的开源服务网格,可与基于微服务的应用程序无缝集成,从而简化监控、管理以及实施性能和安全策略。它可以防止过载,限制未经授权的访问,并保护传输中的数据。其支持系统统一并确保微服务的平稳运行,显著简化其管理并确保轻松满足性能和安全性要求。Sidecar 代理?sidecar 代理是与 Kubernetes 微服务 Pod 一起运行的独立容器。它负责卸载 Istio 中所有应用程序所需的功能。sidecar 代理是 Istio 架构的一个强大组件,可拦截应用程序的传入和传出网络流量。
2024-09-18 09:58:53 516
原创 Java 性能调优:调整 GC 线程以获得最佳结果
垃圾回收 (GC) 在 Java 的内存管理中起着重要作用。它有助于回收不再使用的内存。垃圾回收器使用自己的线程集来回收内存。这些线程称为 GC 线程。有时,JVM 最终可能会有太多或太少的 GC 线程。在这篇文章中,我们将讨论为什么 JVM 最终会拥有太多/太少的 GC 线程,它的后果,以及解决这些问题的潜在解决方案。如何查找应用程序的 GC 线程计数您可以通过执行线程转储分析来...
2024-09-18 07:44:12 787
原创 使用 NCache 将 Java 微服务扩展到极致性能
微服务已成为软件开发领域的一种变革性架构方法,提供了从整体结构到更加模块化和可扩展的系统的范式转变。微服务的核心是将复杂的应用程序分解为更小的、可独立部署的服务,这些服务可以无缝通信,从而提高敏捷性、灵活性和易维护性。这种分散的方法使开发人员能够专注于特定功能,从而实现快速开发、持续集成和高效扩展,以满足现代动态业务环境的需求。随着组织越来越多地接受微服务的好处,本文探讨了与这种架...
2024-09-15 08:08:53 1201
原创 用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
本文探讨了不同存储格式(特别是 Parquet、Avro 和 ORC)对 Google Cloud Platform (GCP) 上大数据环境中查询性能和成本的影响。本文提供了基准测试,讨论了成本影响,并提供了根据特定使用案例选择合适的格式的建议。在大数据生态系统中,Parquet 和 ORC 等列式格式以及 Avro 等基于行的格式因其针对特定类型的查询和处理任务的优化性能而被广泛使用。本研究的主要目的是评估不同的存储格式(Parquet、Avro、ORC)如何影响大数据环境中的查询性能和成本。
2024-09-14 09:06:07 406
原创 探索使用 CockroachDB、Redpanda 和 Kafka Connect 将数据实时摄取到 Snowflake 中
本文以 “Tour of Snowflake ingestion using CockroachDB and Redpanda Connect” 中的先前讨论为基础,在这篇文章中,我们研究了使用 Redpanda Connect 和 Snowpipe 以批处理模式将更改源从 CockroachDB 流式传输到 Snowflake 的过程。在这里,我们将重点转移到 Kafka Connect,并演示如何利用批处理和流式处理模式将数据摄取到 Snowflake 中。下一步是在流式处理模式下配置连接器。
2024-09-14 09:01:16 353
原创 Snowflake 如何通过 Apache Iceberg 和 Polaris 为大数据的未来提供动力
Snowflake 的使命是让每个组织都成为数据驱动型组织。凭借围绕 Apache Iceberg 的最新创新和 Polaris 的推出,这家数据云公司使开发人员、工程师和架构师能够比以往任何时候都更快、更轻松地利用大数据获得变革性的业务见解。
2024-09-14 08:59:20 435
原创 什么是带有示例的 Java 中的交错数组?
Java 中的交错数组交错数组,也称为数组数组,是一种数据结构,其中数组用于存储其他数组。交错数组的主要特征是主数组的每个元素可以具有不同的大小,从而允许在二维结构中使用可变的列长度。为了理解 Jagged 数组的概念,让我们考虑一个例子。假设我们想要存储有关学生及其各自成绩的信息。我们可以创建一个交错数组来表示这个数据结构。这是它的外观:使用交错数组的好处是,当每个子数组中的元素数量不同时,它可...
2024-09-14 08:05:27 314
原创 释放搜索的力量:关键词、相似性和语义解释
由于我们的搜索查询是 “Machine Learning”,因此关键字搜索会查找完全匹配的文本,并且仅返回包含 “Machine Learning” 的文本。相同的搜索查询“机器学习”在与语义搜索一起应用时,会产生与机器学习概念相关的文本,例如“AI 和数据驱动的决策正在改变行业”和“神经网络是许多 AI 系统的关键组成部分”。现在,我们已经了解了各种搜索技术的上下文,我们已经设置了能够搜索的文档,让我们看看基于每种搜索技术的搜索查询的输出。一种将搜索查询与文档中找到的搜索查询进行匹配的传统方法。
2024-09-13 17:19:38 167
原创 使用 AuraDB 免费版构建 Java 微服务
对于今天的冒险,我们希望构建一个 Java 微服务,它连接到 Neo4j AuraDB Free 数据库中的图形数据并与之交互。我们的数据是Goodreads 数据集的精简版本,其中包括书籍、作者和评论信息。虽然书籍和作者非常适合 MongoDB 等文档数据库,但一旦您将评论添加到组合中,关系的细微差别就会使该项目更适合 AuraDB。这样,我们可以利用不同实体之间的关系来改进基于连接结...
2024-09-13 11:38:49 1150
原创 了解 Java 中的浮点精度问题
Java 浮点数看起来很熟悉在Java中,我们有两种类型的浮点数:和 .所有Java 开发人员都知道它们,但无法回答以下模因中描述的简单问题:floatdouble你够机器人吗?您对 Float 和 Double 了解多少?float并表示浮点数。 使用 32 位,而使用 64 位,可用于十进制或小数部分。但这实际上意味着什么呢?为了理解,让我们回顾一下以下示例:doublefloatdou...
2024-09-13 08:26:02 605
开源的Java垂直爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发 webmagic的核心非常简单
2024-07-23
此附件Chrome的扩展,其中包含了很多有用的工具
2024-07-23
以轻松的方式解构Vue3源码,掌握高阶编程思维!
2024-03-21
以轻松的方式解构Vue3源码,掌握高阶编程思维!
2024-03-21
图片转字符图片工具类,支持 Gif 动画、图片合并、图片加水印、文字消除锯齿、图片无损保存、图片像素风、九宫格图、百叶图等
2024-03-09
C++实现高效的车牌识别系统
2024-03-09
最全车牌识别算法,支持14种中文车牌类型
2023-10-24
电子发票识别,可识别大部分地区的电子普票 电子专票 文件类型支持 pdf ofd
2023-10-24
Admin.NET-next-一个完整的前后端管理系统
2023-10-06
Monitor-BSF-Monitor监控后端
2023-10-06
uniapp+若依 开发租房小程序
2023-09-27
用python网站爬虫,使用所有网站
2023-09-27
盘古分词最全demo,和对应的依赖文件
2023-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人