自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木南曌的博客

知行合一

  • 博客(96)
  • 资源 (1)
  • 收藏
  • 关注

原创 BigDecimal:解决精度丢失问题的利器

BigDecimal类是 Java 中处理高精度数值计算的理想选择。通过使用BigInteger类来表示数值的整数部分,并通过一个整数来表示小数点的位置,BigDecimal可以精确表示任何大小的数值,并支持任意精度的运算。在金融、科学计算等领域,使用BigDecimal可以有效避免精度丢失的问题,保证计算结果的准确性。随着计算机技术的发展,越来越多的应用场景要求高度精确的数值计算。BigDecimal类作为一种高精度数值处理工具,已经在许多领域得到了广泛应用。通过本文的介绍,相信读者已经掌握了。

2024-10-20 16:27:07 303

原创 JIT(Just-In-Time Compilation)编译器及其原理实现

JIT编译器是一种特殊的编译器,它在程序运行期间动态地将字节码(Bytecode)转换为机器码。这种转换发生在程序执行时,而不是在程序启动之前。JIT编译器的主要目的是提高程序的执行速度和效率,同时保留字节码带来的平台无关性和易于更新的优势。

2024-09-23 23:07:38 617

原创 TDSQL:腾讯分布式数据库系统的核心要点与优势分析

TDSQL,作为腾讯云推出的分布式数据库系统,以其高可用性、强一致性和可扩展性为特点,在大型应用场景中展现出了卓越的性能。本文将从TDSQL的设计原则、系统架构、实现与优化、性能测试以及应用场景等方面,详细阐述其核心要点与优势。TDSQL凭借其卓越的性能、高可用性和可扩展性,在大规模应用场景中展现出强大的竞争力。随着技术的不断进步和市场的持续拓展,TDSQL有望在未来发挥更加重要的作用。

2024-09-05 23:04:10 638

原创 Java字符串为何是不可变的?

Java中字符串是一个非常常用的数据类型,它不仅在日常编码中频繁使用,也是面试中常见的考点之一。一个经常被讨论的话题是Java中的字符串为何是不可变的。本文将探讨这个问题,并解释其背后的原因。

2024-09-05 22:32:05 407

原创 Jooq 框架介绍及其核心要点

通过上述示例,我们可以看到 Jooq 如何简化了与数据库交互的过程。它不仅提供了类型安全的 SQL 构建器,还支持 ORM 功能,使得开发者可以更高效地进行数据库操作。Jooq 的灵活性和扩展性也非常强,无论是简单的 CRUD 操作还是复杂的查询逻辑,都能轻松应对。对于希望在 Java 应用中实现高效数据库操作的开发者来说,Jooq 是一个非常值得推荐的选择。

2024-08-06 22:26:48 547

原创 spring 循环依赖

在大多数情况下,构造器注入是一个良好的实践,因为它可以确保Bean的不可变性和完整性。然而,在构造器注入不能解决问题时,可以考虑使用setter注入或其他方式来避免循环依赖。最好的做法是尽量避免设计中出现循环依赖,因为这通常是设计上的缺陷。如果确实需要依赖循环,那么应该考虑使用其他设计模式,例如观察者模式,来减少耦合度。

2024-07-26 07:19:04 436

原创 软件架构演进:历史脉络与设计思想的革新

从机器语言到高级语言,从结构化程序设计到面向对象,再到软件架构,每一步都是对软件设计思想的革新,也是对软件开发实践的深刻反思。软件架构的概念虽然在20世纪60年代就有所涉及,但直到90年代,随着Rational和Microsoft等公司的推动,软件架构才真正成为软件开发的热点。软件架构的出现,是为了解决大规模软件系统中的组织和设计问题,它强调组件化和系统级别的设计思考。然而,汇编语言仍然依赖于对计算机硬件的深入了解,不同CPU架构的汇编语言也各不相同,这限制了程序的可移植性。

2024-06-29 17:35:03 361

原创 Dubbo的多协议支持与选择策略

Dubbo作为一款高性能、分布式服务框架,其设计初衷之一就是提供高度灵活性和可扩展性,特别是在服务通信协议方面。Dubbo支持多种协议,以适应不同的应用场景和需求。

2024-06-18 18:42:21 472

原创 Dubbo配置指南:全面解析配置文件与核心配置项实战

Dubbo 的配置文件是服务治理、服务提供、服务消费等关键操作的基础,支持通过多种格式进行配置,包括 XML、YAML、Properties 文件以及通过编程 API 的方式。

2024-06-13 22:08:31 721

原创 Dubbo的Cluster策略与Directory实现

Dubbo是一个高性能的Java RPC框架,它提供了丰富的集群容错机制和灵活的路由策略。在Dubbo中,Cluster和Directory是两个核心概念,它们共同工作以实现服务的负载均衡和集群管理。

2024-06-10 15:28:52 412

原创 Dubbo中的Invoker与Exporter机制详解

Dubbo作为一款成熟的高性能、轻量级的Java RPC框架,其核心机制之一便是Invoker与Exporter机制,它们在服务提供端和服务消费端扮演着至关重要的角色,是实现服务调用和管理的基础。下面将详细解析这两个核心组件的工作原理及其在Dubbo框架中的作用。

2024-06-03 18:34:25 575

原创 Dubbo SPI(Service Provider Interface)机制深度解析

Dubbo SPI(Service Provider Interface)机制是Apache Dubbo框架中一项核心的技术组件,它超越了传统Java SPI的范畴,为Dubbo带来了高度的可扩展性和灵活性。在分布式服务架构日益复杂多变的今天,Dubbo SPI机制通过巧妙的设计,允许开发者在不改动框架源码的前提下,动态扩展和定制服务框架的功能,极大地提升了服务的可维护性和适应性。

2024-06-01 15:56:17 312

原创 Dubbo架构概览:服务注册与发现、远程调用、监控与管理

Dubbo 是一个成熟的、高性能的、基于 Java 的微服务开发框架,它主要用于解决分布式系统中的服务治理问题,包括服务的注册与发现、远程过程调用(RPC)、服务监控与管理等多个关键环节。

2024-06-01 15:49:43 838

原创 Dubbo底层RPC原理深度解析

Dubbo作为一款高性能的分布式服务框架,其核心在于其底层的RPC实现,它允许服务在分布式系统中的不同节点间透明地进行远程调用。通过上述机制,Dubbo构建了一个高效、可靠、易于管理的分布式服务调用环境,极大地简化了微服务架构下的服务通信与治理难题。

2024-05-26 18:43:14 556

原创 Dubbo与Spring Cloud等微服务框架的深度比较及选型指南

在当今的微服务架构领域,Dubbo与Spring Cloud作为两大主流框架,各自拥有独特的设计理念与技术优势,广泛应用于不同规模和类型的项目中。本文将从多个维度深入比较Dubbo、Spring Cloud以及其他代表性微服务框架(如gRPC、Istio),以帮助开发者和架构师根据项目需求做出更合适的选择。综上所述,选择合适的微服务框架需依据具体项目需求、团队技术栈、未来可扩展性等多方面因素综合考量。每种框架都有其独到之处,正确选型能极大提升开发效率和系统稳定性。

2024-05-26 12:39:06 648

原创 Dubbo在微服务架构中的角色与价值探析

Dubbo 采用微内核+插件的设计理念,提供了丰富的SPI(Service Provider Interface)扩展点,允许用户轻松地替换或添加自定义组件,以满足特定的业务需求,例如自定义负载均衡策略、序列化方式等。Dubbo 内置了一系列服务治理功能,包括负载均衡、容错机制、服务降级、流量控制等,帮助开发者管理服务的生命周期,确保服务的高可用性和稳定性。自动化的服务注册与发现机制,以及内置的服务治理策略,减轻了运维负担,使微服务架构的管理和维护变得更加高效和自动化。

2024-05-24 17:45:31 412

原创 Dubbo的发展历程与项目背景

Dubbo从阿里巴巴内部的分布式服务框架成长为国际开源社区的明星项目,其发展历程见证了中国开源力量的崛起和微服务架构的演变。从解决企业内部问题出发,到成为全球开发者信赖的技术选择,Dubbo的成功不仅在于其技术的先进性,还在于其开放合作的社区精神和持续迭代的创新活力。如今,Dubbo已经成为构建高性能、可扩展的微服务系统不可或缺的工具之一。

2024-05-23 17:51:32 348

原创 Flink 任务调度策略:Lazy from Sources 深入解析

Apache Flink 的任务调度策略对于优化流处理作业的性能和资源利用率至关重要。其中,“Lazy from Sources”(源自源头的惰性调度)是一种策略,它在数据实际到达并且准备执行时才启动下游任务。与Eager调度相比,Lazy策略更加保守和资源高效,尤其适用于资源受限或数据流稳定性的场景。

2024-05-21 16:14:24 512

原创 Flink 任务调度策略:Eager 模式详解

Apache Flink 是一个高度灵活且功能强大的流处理框架,它支持多种任务调度策略以适应不同的应用场景和资源管理需求。其中,Eager(积极)调度策略是一种旨在快速启动任务、优化数据局部性和提高整体作业执行效率的方法。下面是关于 Flink 中 Eager 调度策略的详细说明。

2024-05-21 15:08:43 566

原创 Flink的状态原语详述

Flink 的状态原语为开发者提供了强大的工具集,用于构建复杂且健壮的流处理应用。通过灵活运用这些状态类型,可以实现窗口聚合、事件时间处理、会话管理等多种高级流处理需求,同时保证系统的高可用性和容错性。正确理解和应用这些状态原语,是开发高质量Flink应用的关键。

2024-05-16 15:42:11 313

原创 Apache Flink典型应用场景全面解析

Flink的统一处理引擎设计允许用户使用同一套API处理无界流数据和有界数据集,这意味着开发人员可以编写一次代码,同时支持实时处理和批处理作业,简化了大数据处理的基础设施和开发维护成本,适用于那些既需要实时洞察又需要离线分析的业务场景。以下是Flink几个典型的使用场景,展示了其在不同行业和业务需求中的应用潜力。应用描述: 在自动驾驶汽车和智能交通系统中,Flink能够实时处理来自车辆、道路传感器、天气预报等来源的大量数据,进行路况预测、碰撞预警、路径规划等,为安全高效的自动驾驶决策提供支持。

2024-05-15 11:31:03 560

原创 Flink中基于Chandy-Lamport算法的分布式快照实现详解

Apache Flink利用了一种基于Chandy-Lamport分布式快照算法的变体——异步屏障快照(Asynchronous Barrier Snapshotting, ABS)来实现其强大的容错机制。Chandy-Lamport算法最初由K.M. Chandy和Leslie Lamport于1985年提出,是一种用于分布式系统中创建全局一致状态快照的算法。下面将深入介绍Flink如何采用并改进这一算法以适应流处理的需求。

2024-05-14 11:26:17 581

原创 Flink作业的逻辑与物理拓扑详解

逻辑拓扑和物理拓扑是Flink作业生命周期中的两个重要阶段,分别代表了从编程逻辑到可执行分布式计算任务的转换过程。逻辑拓扑关注计算逻辑本身,而物理拓扑则是在逻辑基础上,结合了执行环境的具体要求,实现了计算逻辑在分布式环境中的高效部署与执行。这一系列转换确保了Flink能够提供高性能、低延迟、高可靠性的流处理能力。

2024-05-14 10:23:22 513

原创 深入解析Apache Flink核心概念:事件流、状态、事件时间和快照

Apache Flink树立了流处理领域的标杆,其核心支柱——事件流、状态管理、事件时间处理,以及快照机制,共同构成了一个强大而灵活的框架,专为应对大数据的实时和历史分析挑战而设计。

2024-05-13 15:35:26 524 1

原创 Flink物理分区概念与分类详解

Apache Flink是一个分布式流处理框架,它允许在大规模数据流上进行实时计算。在Flink中,数据如何在不同的任务(Task)之间传输是一个关键因素,直接影响到系统的性能和可扩展性。是指在实际的数据流传输过程中,如何将数据分配到下游任务的不同子任务(subtasks)上的策略。这与逻辑分区(如通过keyBy操作实现的分区)不同,物理分区更多关注的是数据在分布式环境中的实际分布方式。

2024-05-06 17:56:54 504 1

原创 Apache Flink 中作业图与执行图的深入解析

从用户编写的应用程序代码到最后物理执行的过程中,Flink 通过逐层构建和优化执行图,有效地将复杂的流处理逻辑转换为可在分布式环境中高效执行的任务网络。这一系列图的转换过程确保了 Flink 能够透明地处理分布式系统的复杂性,并实现高可用、高性能的流和批处理作业。Apache Flink 是一个用于分布式流处理和批处理的开源框架,它的核心概念之一是使用一系列层次化的执行图来抽象和优化用户的流处理作业。

2024-04-25 17:22:19 466 2

原创 Flink 作业管理器:核心功能、角色与责任详解

它负责作业的接收、解析、规划、调度、状态管理、容错处理以及与用户的交互,确保流处理作业在复杂的分布式环境中高效、可靠地运行。通过高可用部署和丰富的监控手段,作业管理器为用户提供了一个稳定、可控的流处理平台,适应各种规模和复杂度的实时数据处理场景。Apache Flink 中的作业管理器(JobManager),又称为 Master,是整个 Flink 集群的核心控制组件,负责对提交的流处理作业进行全局管理和协调。

2024-04-24 16:25:02 606 3

原创 Flink Checkpoint 状态后端详解:类型、特性对比及场景化选型指南

用户还可以根据自己的需求实现自定义的状态后端,以对接第三方存储系统或满足特定的存储和访问特性。场景化选型方案:小型且短生命周期的流处理作业:优先考虑 MemoryStateBackend,因为它在内存中直接存储状态,拥有最快的访问速度。中等规模且状态不需要长期保留的作业:FsStateBackend 是一个不错的选择,既能克服内存限制,又能保证较好的性能。大型流处理作业,需要长期维护大状态数据。

2024-04-02 19:23:10 637

原创 Flink Checkpoint 机制深度解析:原理、注意事项与最佳实践

Checkpoint 主要通过周期性地创建应用流图状态的全局快照来实现,当系统发生故障时,可以从最近成功的 Checkpoint 快照恢复,从而实现 Exactly-Once 处理语义。:所有算子完成状态快照后,会通知 Checkpoint Coordinator,只有当所有参与 Checkpoint 的算子都成功完成了状态持久化,这个 Checkpoint 才会被标记为“已完成”。:若在处理过程中某部分失败,Flink 会从最近的已完成 Checkpoint 进行状态恢复,重新构建出一致的数据流视图。

2024-04-01 11:43:18 1105

原创 Flink 中 Slot 机制详解:概念、原理与开发实践

Flink 支持算子链(Operator Chaining),当链上的算子具有相同的并行度时,这些算子可以共享一个 Slot,减少数据在内存中传输的成本,提高性能。总结来说,Flink 中的 Slot 是实现作业并行执行和资源管理的关键组件,通过灵活配置 Slot 数量和合理使用 Slot Sharing Group,能够有效优化分布式环境下作业的执行效率和资源利用率。:作业中的一个算子设置了并行度之后,会生成对应的多个子任务,这些子任务将会被分配到不同或相同的 Slot 上执行,以实现并行处理数据。

2024-03-29 16:26:07 1076

原创 大模型的 Token 使用详解:限制与注意事项

Token 可以是单个字符、单词、或由多个词组成的短语。Token 作为模型理解和处理文本的基础,有助于模型捕捉语言的结构和语义信息。

2024-03-27 23:14:38 2622

原创 Flink 中 Task(任务)的概念、定位及应用详解与易混淆点梳理

在 Flink 中,Task 是作业(Job)拆解后的最小执行单元,它负责执行具体的计算逻辑。一般情况下每个 Task 对应着作业中特定运算步骤的一个实例,比如 map、filter、join 等操作。在发生 Operator Chain 情况下,一个 Task 可能包含多个算子的操作逻辑。任务的划分:在一个job的执行计划(数据流图)中,从source到计算到sink,每当并行度发生变化或者数据需要分组(keyBy)时(还可通过API明确设置),就会产生任务。

2024-03-25 17:07:30 961

原创 深度解析大模型的关键特性与优势

大模型在经过大规模数据训练后,能在未经见过的场景下表现出良好的泛化能力,即在处理未在训练集中出现过的任务时仍能给出合理的答案或结果,体现出较强的“涌现”能力。总而言之,大模型以其显著的规模优势、强大的泛化能力和广泛的应用前景,正在深度学习和人工智能领域发挥着至关重要的作用,并引领新一轮的技术创新和产业变革。大模型的广泛应用带来了伦理和社会问题的讨论,例如隐私保护、数据偏见、模型可解释性等方面,这些都是大模型发展过程中不容忽视的重要方面。

2024-03-22 16:44:35 672

原创 Apache Flink 中 Watermark 机制详解及其核心原理与应用示例

在 Apache Flink 流处理框架中,Watermark 是一个关键的时间概念,用于处理事件时间窗口(event-time processing)中的乱序事件问题。由于网络延迟等因素,事件可能会乱序到达,为了确保在某个时间窗口内完成所有相关的事件处理,Flink 引入了 Watermark 机制。水印是一个特殊的时间戳,代表了某个时间点之前的数据理论上应该都已经到达了系统,即“最多允许的延迟”。一旦水印时间戳超过了窗口结束时间,窗口就可以被认为是完整的,并触发窗口计算。

2024-03-20 19:13:26 858

原创 深度解析大模型:概念、架构与应用价值

大模型,作为一种前沿的人工智能技术,已经成为深度学习领域的研究热点和发展趋势。这一概念主要指代那些规模庞大、参数数量众多、结构复杂的机器学习模型,尤其是深度神经网络模型。总结来说,大模型凭借其前所未有的规模和复杂性,正持续拓展人工智能技术的边界,为未来智能系统的开发和应用开辟了广阔的可能性。随着技术的不断迭代升级,大模型有望进一步推动人工智能向通用智能方向发展。

2024-03-18 22:24:44 578

原创 Flink 数据目录体系:深入理解 Catalog、Database 及 Table 概念

综上所述,Catalog、Database 和 Table 构成了 Flink 数据管理的基础架构,它们共同提供了对分布式数据源的抽象和统一访问接口,使得用户能够在一个统一的视角下对各类数据源进行透明化管理和高效处理。Apache Flink 在其数据处理框架中引入了 Catalog、Database、Table 等一系列概念,旨在为用户提供一种结构化的元数据管理和访问机制,从而简化大数据环境下的数据源整合和处理流程。

2024-03-15 17:58:24 1185

原创 Flink 流处理框架核心性能

Flink 提供了一系列丰富的窗口操作支持,包括基于时间(time-based)、计数(count-based)、会话(session-based)以及数据驱动(data-driven)的窗口定义,大大增强了对复杂流数据模式分析的能力。对于有状态计算,Flink 实现了 Exactly-once 的一致性保证,确保在出现故障或系统重启的情况下,每个记录只被精确处理一次,从而避免重复计算和数据丢失,这对于涉及资金交易、审计跟踪等要求极高准确性的应用至关重要。3 多元数据处理模式。

2024-03-15 17:57:11 589

原创 Flink 简述

Apache Flink 是一款开源的分布式流处理和批量数据处理框架,以其高效、容错性强、精确一次(exactly-once)的状态一致性保证而著称,在实时计算领域占据重要地位。Flink 最初专注于流式计算,但它同时支持批处理,并认为批处理不过是有限流的一个特殊形式,从而实现了真正意义上的流批一体(streaming-first)计算模型。总之,Apache Flink是一个强大而灵活的实时计算引擎,尤其适用于那些需要对实时数据流进行复杂计算、分析和响应的应用场景。

2024-03-15 17:13:39 463

原创 机器学习完整路径

要剖析业务场景,设定清晰的目标,同时还要明确当前问题属于哪一种机器学习类型。

2023-07-30 16:37:08 1153

原创 生成4位不重复的字符串

实际的业务场景中需要生成4位不重复的字符串,这个场景比较特殊,不具有普遍性,正常场景的唯一单号都不会只有4位。最先想到的是随机生成4位字符串,字符包括数字、大小写字母一共62位,基本可以满足使用要求,但是越到后面,重复的概率就会越大。想要保证不重复,可以加入时间戳,机器id等,类似雪花算法的思路,但是长度都比较长,将其映射为4位长度的字符串有点困难。只能换一个思路,通过递增的方式来保证唯一性,递增可以借助数据库实现。同时将10进制转换为62进制可以满足4位长度的限制。这样10进制的最大值为 147763

2020-11-20 15:08:27 2373

mysql-connector-java-5.1.6-bin

好用的jar包

2017-03-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除