自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 Flink本地模式安装详解

本文开头对flink的几种安装模式都做了介绍,并且详细的介绍了我们开发的时候会使用到的本地模式的安装启动停止过程,并且用了一个demo验证集群是否可用,本地模式是比较方便轻量的安装模式,便于我们开发调试使用。

2024-11-03 19:37:17 785

原创 [Java进阶] 并发编程实战—同步

本文主要对Java中常用的一些同步工具做了详细的讲解,包括synchronized关键字(隐式锁)、显示锁(Locks)、高级的同步工具(如CountDownLatch、CyclicBarrier、Semaphore),并通过代码案例来讲解了各种同步工具的使用以及工作原理。

2024-10-30 22:35:11 908 2

原创 [Java进阶] 调用C和C++代码利器(JNI)

本文主要介绍了Java调用C和C++代码的利器JNI,主要讲述了它的应用场景,同时给出了一个完整的代码实战案例,也列举了一些关于JNI的最佳实践。最后介绍了基于JNI之上的更高阶工具JNA。

2024-10-30 22:29:47 655 1

原创 HR都喜欢的简历模版,不要错过

本文分享了自己在找工作过程中,觉得简历是非常重要的桥梁,因此也分享了一些简历模版给到社区朋友们,希望对大家有帮助。

2024-10-27 23:50:53 279

原创 [Java进阶] 并发编程实战—线程&线程池&协程

本文主要介绍了Java并发编程中的线程、线程池和协程的多种创建方式,对于每一种方式都给出了详细的代码案例。通过代码案例可以很容易的理解在真实的项目开发中如何使用线程、线程池以及协程。

2024-10-27 15:45:22 1201

原创 [Java进阶] 并发编程之进程、线程和协程

本文主要介绍了进程、线程、协程三者的概念,同时也介绍了进程、线程和协程的状态以及生命周期的管理,最后对进程、线程、协程三者从资源开销、上下文切换、隔离性等方面做了对比。

2024-10-25 20:44:29 603

原创 [Java进阶] 并发编程入门介绍

本文主要对Java并发编程入门做了详细介绍,列举了Java并发编程的一些常见的应用场景,介绍了下并发编程的基本单位,以及详细的讲解了一些核心的概念。最后通过两个个创建线程和实现同步的案例使得读者可以对Java并发编程能有一个基本的认知。

2024-10-25 16:09:50 776

原创 [Java进阶] 泛型

本文主要介绍了Java泛型,讲解了Java泛型的常用用法,如泛型类、泛型接口、泛型方法、通配符等,并且给出了使用的案例。同时文末也介绍了Java的类型擦除,主要从为何需要类型擦除、怎么做类型擦除并结合实例做了讲解。

2024-10-23 23:59:57 1290

原创 Apache Paimon介绍

本文主要介绍了Apache Paimon的诞生历程和背景,同时从应用场景、系统架构和核心概念等维度全面介绍了Apache Paimon。

2024-10-23 20:53:20 1187

原创 SLI、SLO和SLA,看了就懂

本文主要介绍了SLI、SLO和SLA的定义,同时说明了为何需要定义SLI、SLO和SLA。文章最后举了一个电商系统下单服务的SLA定义的例子,看完能对SLI、SLO和SLA有比较深入的认知。

2024-10-21 23:41:59 900

原创 [Java进阶] 类加载机制

本文从Java类加载的理论(包括类加载过程、类加载器、双亲委派模型、类加载的时机、符号引用和直接应用)出发,结合了一个案例把类加载过程讲透彻。最后也给出了类加载机制在类隔离、热部署、反射和动态代理等多种场景下的应用。

2024-10-20 21:08:51 648

原创 Java基础系列和实战

本文主要分享了Java基础系列文章,并且对java专栏的后续更新方向做了下预告,需要查看Java的基础系列文章,可以此文章文入口。

2024-10-19 20:35:36 173

原创 [Java基础] Lambda 表达式

本文介绍了Java的Lambda表达式的基本语法,应用的场景,以及总结了一些Java中的一些函数式接口,同时介绍了如何自定义函数式接口并且配合Lambda一起使用。

2024-10-18 23:52:32 873

原创 [Java基础] 输入输出流

本文介绍了Java中的几种输入输出流,他们分别是字节流、字符流、管道流和打印流。文章中给出了这四种流的实战代码,并且在最后给出了Java输入输出流的最佳实践。

2024-10-18 22:53:57 694

原创 [Java基础] 集合框架

本文介绍了Java的集合框架,包括List、Set、Queue、Map和Deque接口,介绍了这些接口的实现,数据结构原理特性,并且介绍了最佳实践。同时也整理了一些常见的面试题。

2024-10-17 23:47:53 1075

原创 [Java基础] 异常处理机制

本文主要阐述了Java中的异常处理机制,以及罗列了一些常见的检查型异常、运行时异常和错误,最后给出了异常处理的最佳实践。

2024-10-17 17:54:13 1077

原创 [Java基础] 面向对象编程

java面向对象编程介绍,比较全面地从类与对象、封装、继承、多态等多个方面介绍了java的面向对象编程。

2024-10-16 23:40:54 1068

原创 [Java基础] 流程控制

Java基础知识流程控制语句的总结,给出了一些最佳实践以及一些常见的面试题。

2024-10-16 21:22:47 671

原创 [Java基础] 运算符

java的基本运算符总结,和一些常见的面试题。

2024-10-15 23:57:24 1048

原创 [Java基础] 基本数据类型

java基本数据类型,以及存在的一些潜在问题,避免这些问题的最佳实践。最后罗列了一些常见的面试题。

2024-10-15 23:39:47 769

原创 Java HashMap 的数据结构和底层原理以及其在Jdk8,Jdk11,Jdk17的一些变化,以及一些常问的面试

Java HashMap 的数据结构和底层原理以及其在Jdk8,Jdk11,Jdk17的一些变化,以及一些常问的面试

2024-10-14 19:12:38 316

原创 Flink系统架构和应用部署方式

Flink系统架构包括JobManager、TaskManager、算子、Task和Subtask介绍。同时还介绍了Flink的三种应用部署方式,包括Flink Session模式、Flink Job模式和Flink Application模式。

2024-10-14 09:15:00 1733

原创 Flink 介绍(特性、概念、故障容错、运维部署、应用场景)

从特性、概念、故障容错、运维部署和应用场景五个方面介绍Flink,看完对Flink会有不一样的认知。

2024-10-11 13:15:01 1182

原创 Mongo Java Driver使用getCollection做分页查询遇到的一些坑

Mongo Java Driver使用getCollection做分页查询遇到的一些坑

2024-10-08 00:12:38 380 1

原创 Flink SQL因类型错误导致MAX和MIN计算错误

结合我上面踩的坑,我觉得以后设计表结构的时候,应该让字段的类型与实际存储的数据类型相匹配,同时代码中定义数据结构体时,类型也需要与实际的数据类型一致,这样可以减少在做数据处理的时候的数据转换。

2024-06-23 15:56:41 395

原创 Curator Framework如何写单元测试

使用curator framework框架去操作zookeeper时,我们知道因其的方法风格是那种流式的编写风格,所以我们在写单元测试的时候要把链接zookeeper的操作给mock掉,那么着实是不太好写单测。不过好在curator framework有一个专门用于测试的模块,可以让我们在单测运行之前就在本地启动一个zookeeper server实例,以便于让单测可以直接连接本地的zookeeper实例创建curator client,便于做单元测试。

2024-05-27 23:43:34 616

原创 zookeeper选主之LeaderLatch

利用zookeeper来进行选主,可以使用apache curator framework,它给我们封装了两种选主工具,它们分别是LeaderSelector和LeaderLatch。它们各自的应用场景不一样,LeaderSelector应用于那些需要频繁变主的情况,而LeaderLatch则用于不频繁变主的情况。今天我们主要介绍LeaderLatch。

2024-05-19 08:54:51 415

原创 zookeeper服务注册与发现之Curator实现

众所周知,zookeeper是一个分布式协调框架,它可以实现的分布式协调功能非常多,如分布式锁、动态配置、分布式选举、服务注册与发现等功能。本节我们就先介绍一下zookeeper用于实现服务注册与发现的功能,本节将分别从其原理、实现几个方面简单讲述下zookeeper的服务注册与发现。

2024-05-18 08:42:35 270 1

翻译 OpenTelemetry协议之指标数据模型

指标的 OpenTelemetry 数据模型由协议规范和语义约定组成,用于投递预聚合的指标时间序列数据,该数据模型旨在从现有系统导入数据并将数据导出到现有系统,并支持内部 OpenTelemetry 用例,以从 Spans 或日志流生成指标。流行的现有指标数据格式可以明确地转换为OpenTelemetry 的指标数据模型,而不会丢失语义或保真度,明确指定从 Prometheus 和 Statsd exposition 格式进行的翻译。

2023-09-06 20:11:00 854

翻译 OpenTelemetry协议之概览

所有类型的预聚合指标的基类称为 Metric,它定义基本的指标属性,如名称和属性。从 Metric 继承的类定义了它们的聚合类型以及单个测量或点的结构,API 定义了以下类型的预聚合指标:Counter 用于报告测量的计数器指标,计数器值可以上升或保持不变,但永远不会下降;计数器值不能为负数。有两种类型的计数器度量值 - double 和 long。Gauge metric 报告数值的瞬时测量,Gauge既可以上升也可以下降。仪表值可以是负数,有两种类型的计数器度量值 - double 和 long。

2023-06-18 18:52:58 704

翻译 OpenTelemetry协议之OTLP-0.20.0-stable

gRPC 服务定义、请求和响应的 Protobuf 定义;请确保检查原型版本和成熟度级别。不同信号的schema可能处于不同的成熟度级别——一些稳定,一些处于测试阶段。

2023-06-11 12:22:48 2531

翻译 OpenTelemetry 概念之Sampling

了解采样以及 OpenTelemetry 中可用的不同采样选项。通过分布式跟踪,您可以观察请求在分布式系统中从一项服务传递到另一项服务的情况,出于多种原因,它非常实用,例如了解您的服务连接和诊断延迟问题,以及许多其他好处。但是,如果您的所有请求中的大多数在 200 秒内都成功并且没有出现不可接受的延迟或错误,那么您真的需要所有这些数据吗?事实是这样的——您并不总是需要大量数据才能找到正确的答案,您只需要正确的数据采样。采样背后的想法是控制发送到可观察性后端的跨度,从而降低摄取成本;

2023-06-04 01:01:16 369

翻译 OpenTelemetry 概念之Baggage

在 OpenTelemetry 中,Baggage 是跨度之间传递的上下文信息,它是一个键值存储,与跟踪中的跨度上下文一起驻留,使值可用于该跟踪中创建的任何跨度。例如,假设您希望跟踪中的每个跨度都有一个 CustomerId 属性,这涉及多个服务;然而,CustomerId 仅在一项特定服务中可用,为实现您的目标,您可以使用 OpenTelemetry Baggage 在整个系统中传播此值。

2023-05-31 23:27:29 410

翻译 OpenTelemetry 概念之Logs

日志是带时间戳的文本记录,结构化(推荐)或非结构化,带有元数据,虽然日志是一个独立的数据源,但它们也可以附加到 span。在 OpenTelemetry 中,任何不属于分布式跟踪或指标的数据都是日志,例如,事件是一种特定类型的日志。日志通常用于确定问题的根本原因,通常包含有关谁更改了什么以及更改结果的信息。有关详细信息,请参阅。

2023-05-31 22:26:00 189

翻译 OpenTelemetry 概念之Metrics

除了度量工具之外,聚合的概念也是一个需要理解的重要概念,聚合是一种技术,通过该技术可以将大量测量结果组合成关于在时间窗口内发生的度量事件的精确或估计的统计数据。:直方图是客户端值的聚合,例如请求延迟,如果您有很多值,并且对每个单独的值不感兴趣,但对这些值的统计数据感兴趣,则直方图可能是一个不错的选择(例如,有多少请求花费的时间少于 1 秒?:随着时间的推移积累的价值,但也可以再次下降,一个例子可能是队列长度,它会随着队列中工作项的数量而增加和减少。:读取时测量到的当前值,一个例子是车辆中的燃油表。

2023-05-31 22:14:38 330

翻译 OpenTelemetry 概念之Traces

Traces为我们提供了向应用程序发出请求时发生的情况的全景图,无论您的应用程序是具有单个数据库的单体应用还是具有复杂网格的服务,Traces对于理解请求在您的应用程序中采用的完整“路径”至关重要。此示例跟踪输出具有三个不同的类似日志的单元,叫做Spans,名称分别叫做Hello-Greetings、Hello-Salutations和Hello,由于每个Span的上下文中包含相同的trace_id,所以它们被认定为相同的一个Trace中的不同部分。

2023-05-30 00:58:11 305

翻译 OpenTelemetry 可观察性入门

可观察性让我们从外部了解系统,让我们在不知道其内部运作的情况下提出有关该系统的问题,此外,它使我们能够轻松地解决和处理新问题(即“未知的未知数”),并帮助我们回答问题,”为什么会这样?为了能够询问系统的这些问题,必须对应用程序进行适当的检测。也就是说,应用程序代码必须发出信号,例如traces、metrics和logs。当应用程序是恰好被仪表化的,当故障发生时,开发者就不需要再添加仪表去排除故障,因为他们有需要的所有的信息。OpenTelemetry 是检测应用程序代码的装置,有助于使系统可观察。

2023-05-25 21:16:39 174

翻译 OpenTelemetry In Java之自动检测Agent配置

SDK 的自动配置模块用于代理的基本配置,阅读以查找配置导出或采样等设置。

2023-05-24 01:13:16 1268

翻译 OpenTelemetry In Java之自动检测

Java 自动检测使用可以附加到任何 Java 8+ 应用程序的 Java 代理 JAR,它动态注入字节码以从许多流行的库和框架中捕获遥测数据,它可用于在应用程序或服务的“边缘”捕获遥测数据,例如入站请求、出站 HTTP 调用、数据库调用等。要了解如何手动检测您的服务或应用程序代码,请参阅。

2023-05-21 16:16:46 547

翻译 OpenTelemetry In Java 快速开始

在不到 5 分钟的时间内为您的应用程序获取遥测数据!此页面将向您展示如何开始使用 Java 中的 OpenTelemetry。您将学习如何自动检测一个简单的 Java 应用程序,通过把和发送到控制台的方式。

2023-05-21 01:50:07 953

jdk-22.0.2-macos-x64-bin.tar.gz

JDK 22.0.2版本是Java SE平台的又一重要更新,引入了多项新特性。其中,G1垃圾收集器的区域固定减少了延迟,提高了性能;外来函数与内存API使Java程序能高效安全地与外部代码和数据交互;未命名变量和模式的引入增强了代码可读性。这些新特性共同提升了Java语言的性能,简化了开发过程,使代码更加易读易维护。

2024-10-27

空空如也

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

TA关注的人

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