Java 大视界 -- 基于 Java 的大数据分布式任务调度系统设计与实现(117)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!💖
一、欢迎加入【福利社群】
点击快速加入: 青云交灵犀技韵交响盛汇福利社群
点击快速加入2: 2024 CSDN 博客之星 创作交流营(NEW)
二、本博客的精华专栏:
- 大数据新视界专栏系列:聚焦大数据,展技术应用,推动进步拓展新视野。
- Java 大视界专栏系列(NEW):聚焦 Java 编程,细剖基础语法至高级框架。展示 Web、大数据等多领域应用,精研 JVM 性能优化,助您拓宽视野,提升硬核编程力。
- Java 大厂面试专栏系列:提供大厂面试的相关技巧和经验,助力求职。
- Python 魅力之旅:探索数据与智能的奥秘专栏系列:走进 Python 的精彩天地,感受数据处理与智能应用的独特魅力。
- Java 虚拟机(JVM)专栏系列:深入剖析 JVM 的工作原理和优化方法。
- Java 学习路线专栏系列:为不同阶段的学习者规划清晰的学习路径。
- JVM 万亿性能密码:在数字世界的浩瀚星海中,JVM 如神秘宝藏,其万亿性能密码即将开启奇幻之旅。
- AI(人工智能)专栏系列:紧跟科技潮流,介绍人工智能的应用和发展趋势。
- 智创 AI 新视界专栏系列(NEW):深入剖析 AI 前沿技术,展示创新应用成果,带您领略智能创造的全新世界,提升 AI 认知与实践能力。
- 数据库核心宝典:构建强大数据体系专栏系列:专栏涵盖关系与非关系数据库及相关技术,助力构建强大数据体系。
- MySQL 之道专栏系列:您将领悟 MySQL 的独特之道,掌握高效数据库管理之法,开启数据驱动的精彩旅程。
- 大前端风云榜:引领技术浪潮专栏系列:大前端专栏如风云榜,捕捉 Vue.js、React Native 等重要技术动态,引领你在技术浪潮中前行。
三、【青云交技术圈福利社群】和【架构师社区】的精华频道:
- 福利社群:无论你是技术萌新还是行业大咖,这儿总有契合你的天地,助力你于技术攀峰、资源互通及人脉拓宽之途不再形单影只。 点击快速加入【福利社群】 和 【CSDN 博客之星 创作交流营(NEW)】
- 今日看点:宛如一盏明灯,引领你尽情畅游社区精华频道,开启一场璀璨的知识盛宴。
- 今日精品佳作:为您精心甄选精品佳作,引领您畅游知识的广袤海洋,开启智慧探索之旅,定能让您满载而归。
- 每日成长记录:细致入微地介绍成长记录,图文并茂,真实可触,让你见证每一步的成长足迹。
- 每日荣登原力榜:如实记录原力榜的排行真实情况,有图有真相,一同感受荣耀时刻的璀璨光芒。
- 每日荣登领军人物榜:精心且精准地记录领军人物榜的真实情况,图文并茂地展现,让领导风采尽情绽放,令人瞩目。
- 每周荣登作者周榜:精准记录作者周榜的实际状况,有图有真相,领略卓越风采的绽放。
展望未来,我誓做前沿技术的先锋,于人工智能、大数据领域披荆斩棘。持续深耕,输出独家深度专题,为你搭建通往科技前沿的天梯,助你领航时代,傲立潮头。
即将开启技术挑战与代码分享盛宴,以创新形式激活社区,点燃技术热情。让思维碰撞,迸发智慧光芒,照亮探索技术巅峰的征途。
珍视你的每一条反馈,视其为前行的灯塔。精心雕琢博客内容,精细优化功能体验,为你打造沉浸式知识殿堂。拓展多元合作,携手行业巨擘,汇聚海量优质资源,伴你飞速成长。
期待与你在网络空间并肩同行,共铸辉煌。你的点赞,是我前行的动力;关注,是对我的信任;评论,是思想的交融;打赏,是认可的温暖;订阅,是未来的期许。这些皆是我不断奋进的力量源泉。
衷心感谢每一位支持者,你们的互动,推动我勇攀高峰。诚邀访问 【我的博客主页】 或 【青云交技术圈福利社群】 或 【架构师社区】 ,如您对涨粉、技术交友、技术交流、内部学习资料获取、副业发展、项目外包和商务合作等方面感兴趣,欢迎在文章末尾添加我的微信名片 【QingYunJiao】 (点击直达) ,添加时请备注【CSDN 技术交流】。更多精彩内容,等您解锁。
让我们携手踏上知识之旅,汇聚智慧,打造知识宝库,吸引更多伙伴。未来,与志同道合者同行,在知识领域绽放无限光彩,铸就不朽传奇!
Java 大视界 -- 基于 Java 的大数据分布式任务调度系统设计与实现(117)
- 引言
- 正文
- 一、分布式任务调度系统概述
- 1.1 分布式任务调度的概念
- 1.2 应用场景
- 二、系统设计
- 2.1 架构设计
- 2.2 模块设计
- 三、系统实现
- 3.1 开发环境搭建
- 1. 添加 Maven 依赖
- 2. 配置 Redis
- 3. 配置 MySQL
- 3.2 核心代码实现
- 四、案例分析
- 4.1 某电商系统的应用案例
- 4.2 案例总结
- 结束语
- 🗳️参与投票和与我联系:
引言
亲爱的 Java 和 大数据爱好者们,大家好!在当今信息爆炸的时代,数据如同源源不断的洪流,以前所未有的速度和规模增长。Java 大数据技术凭借其卓越的性能、强大的生态系统以及广泛的适用性,在众多领域展现出了非凡的价值。回顾我们在《Java 大视界》系列中的探索历程,每一篇文章都像是一座里程碑,见证了 Java 大数据技术在不同场景下的神奇应用。
在《Java 大视界 – Java 大数据在智慧交通信号灯智能控制中的应用(116)》里,我们利用 Java 大数据技术对交通流量数据进行实时分析和处理,通过智能算法动态调整交通信号灯的配时,极大地缓解了城市交通拥堵问题,让城市道路变得更加畅通。在《Java 大视界 – Java 大数据机器学习模型的超参数优化技巧与实践(115)》中,我们深入研究了如何运用 Java 大数据技术对机器学习模型的超参数进行精细优化,从而提高模型的准确性和泛化能力,为数据分析和预测提供了更强大的工具。而《Java 大视界 – Java 大数据在智能金融反欺诈中的技术实现与案例分析(114)》则展示了 Java 大数据技术在金融安全领域的重要作用,通过实时监测和分析海量的金融交易数据,能够及时发现并防范欺诈行为,保障了金融系统的稳定运行。
然而,随着数据量的持续增长和业务复杂度的不断提高,传统的单机任务调度方式已经难以满足大数据处理的需求。单机任务调度在面对大规模数据和复杂任务时,往往会出现处理速度慢、资源利用率低、可靠性差等问题。分布式任务调度系统应运而生,它通过将任务分解并分配到多个计算节点上并行执行,充分利用了集群的计算资源,大大提高了任务处理的效率和系统的可靠性。因此,设计和实现一个基于 Java 的大数据分布式任务调度系统具有重要的现实意义和广阔的应用前景。
正文
一、分布式任务调度系统概述
1.1 分布式任务调度的概念
分布式任务调度是一种先进的任务管理策略,它将一个复杂的大规模任务拆分成多个相对独立的子任务,并将这些子任务合理地分配到分布式环境中的多个计算节点上同时执行。与传统的单机任务调度相比,分布式任务调度具有以下显著优势:
- 并行处理能力:通过将任务分配到多个计算节点上并行执行,大大缩短了任务的处理时间,提高了系统的整体性能。
- 可扩展性:可以根据任务的规模和需求,灵活地增加或减少计算节点的数量,以满足不同的业务场景。
- 容错性:当某个计算节点出现故障时,系统可以自动将该节点上的任务转移到其他可用节点上继续执行,保证了任务的可靠性和连续性。
在分布式任务调度系统中,有一个核心的任务调度器,它负责监控各个计算节点的资源使用情况,根据任务的优先级、资源需求等因素,将子任务分配到最合适的计算节点上。同时,任务调度器还会实时跟踪任务的执行状态,及时处理任务执行过程中出现的异常情况,确保整个任务能够顺利完成。
1.2 应用场景
分布式任务调度系统在众多领域都有着广泛的应用,以下是几个典型的应用场景:
-
大数据处理领域:在 Hadoop、Spark 等大数据处理框架中,需要对海量的数据进行分布式计算。分布式任务调度系统可以根据数据的分布情况和计算节点的资源状况,将数据处理任务合理地分配到各个计算节点上,实现数据的并行处理,从而显著提高数据处理的效率。例如,在数据仓库的 ETL(Extract, Transform, Load)过程中,需要对大量的数据进行抽取、转换和加载操作,分布式任务调度系统可以确保这些任务在多个节点上高效、稳定地执行。
-
云计算领域:云服务提供商需要管理大量的虚拟机和容器,为用户提供计算、存储和网络等资源。分布式任务调度系统可以根据用户的需求和资源使用情况,动态地分配资源,提高资源的利用率。例如,当某个用户需要运行一个大规模的计算任务时,分布式任务调度系统可以自动为其分配多个计算节点,并在任务完成后及时释放资源,实现资源的优化配置。
-
电商系统领域:电商系统每天需要处理大量的订单、库存管理、促销活动等任务。分布式任务调度系统可以确保这些任务按照优先级和时间顺序依次执行,提高系统的响应速度和稳定性。例如,在电商平台的促销活动期间,会有大量的订单涌入,分布式任务调度系统可以将订单处理任务快速分配到多个计算节点上,确保订单能够及时处理,避免出现系统卡顿或崩溃的情况。
二、系统设计
2.1 架构设计
一个典型的分布式任务调度系统架构主要由以下几个部分组成:
- 任务调度中心:作为整个系统的核心枢纽,任务调度中心负责接收用户提交的任务请求,对任务进行管理、调度和监控。它会根据任务的优先级、资源需求以及各个计算节点的状态,将任务合理地分配到合适的计算节点上执行。同时,任务调度中心还会实时监控任务的执行状态,及时处理任务执行过程中出现的异常情况,确保任务能够按时、准确地完成。
- 计算节点:计算节点是执行具体任务的实体,它们接收任务调度中心分配的任务,并按照任务的要求进行计算和处理。计算节点可以是物理服务器、虚拟机或容器,它们通过网络与任务调度中心进行通信,接收任务指令并反馈任务执行结果。
- 消息队列:消息队列用于实现任务调度中心和计算节点之间的通信,确保任务信息的可靠传输。当任务调度中心需要将任务分配给计算节点时,会将任务信息发送到消息队列中,计算节点从消息队列中获取任务信息并执行任务。消息队列还可以实现任务的异步处理,提高系统的并发处理能力,避免因任务处理不及时而导致的系统瓶颈。
- 数据库:数据库用于存储任务信息、任务执行结果、计算节点的状态等数据,方便后续的查询和分析。任务调度中心可以从数据库中获取任务的历史信息,根据任务的执行情况进行优化和调整,同时也可以为系统的性能监控和故障排查提供数据支持。
以下是一个简单的架构示意图:
2.2 模块设计
- 任务管理模块:任务管理模块是整个系统的任务入口,它负责任务的创建、修改、删除和查询等操作。该模块提供了一个友好的用户界面,让用户可以方便地提交任务请求,并对任务进行管理。同时,任务管理模块还会对任务进行验证和合法性检查,确保任务的参数和要求符合系统的规定。以下是一个完整的 Java 代码示例,包含了任务的基本操作和错误处理:
import java.util.ArrayList;
import java.util.List;
// 任务管理类,负责对任务进行管理操作
public class TaskManager {
// 存储所有任务的列表
private List<Task> tasks = new ArrayList<>();
/**
* 添加任务到任务列表中
* @param task 要添加的任务
* @throws IllegalArgumentException 如果任务为空,则抛出异常
*/
public void addTask(Task task) {
if (task == null) {
throw new IllegalArgumentException("Task cannot be null");
}
tasks.add(task);
}
/**
* 从任务列表中移除指定任务
* @param task 要移除的任务
* @throws IllegalArgumentException 如果任务为空,则抛出异常
*/
public void removeTask(Task task) {
if (task == null) {
throw new IllegalArgumentException("Task cannot be null");
}
tasks.remove(task);
}
/**
* 获取所有任务的列表
* @return 包含所有任务的列表
*/
public List<Task> getTasks() {
return tasks;
}
/**
* 根据任务 ID 获取任务
* @param taskId 任务的 ID
* @return 找到的任务,如果未找到则返回 null
*/
public Task getTaskById(String taskId) {
for (Task task : tasks) {
if (task.getId().equals(taskId)) {
return task;
}
}
return null;
}
}
// 任务类,用于封装任务的基本信息
class Task {
// 任务的唯一标识符
private String id;
// 任务的名称
private String name;
// 任务的 Cron 表达式,用于定时执行任务
private String cronExpression;
/**
* 构造函数,初始化任务的基本信息
* @param id 任务的唯一标识符
* @param name 任务的名称
* @param cronExpression 任务的 Cron 表达式
* @throws IllegalArgumentException 如果任务 ID 或名称为空,则抛出异常
*/
public Task(String id, String name, String cronExpression) {
if (id == null || id.isEmpty() || name == null || name.isEmpty()) {
throw new IllegalArgumentException("Task ID and name cannot be null or empty");
}
this.id = id;
this.name = name;
this.cronExpression = cronExpression;
}
/**
* 获取任务的唯一标识符
* @return 任务的唯一标识符
*/
public String getId() {
return id;
}
/**
* 获取任务的名称
* @return 任务的名称
*/
public String getName() {
return name;
}
/**
* 获取任务的 Cron 表达式
* @return 任务的 Cron 表达式
*/
public String getCronExpression() {
return cronExpression;
}
/**
* 设置任务的 Cron 表达式
* @param cronExpression 新的 Cron 表达式
*/
public void setCronExpression(String cronExpression) {
this.cronExpression = cronExpression;
}
}
- 调度算法模块:调度算法模块是任务调度的核心,它根据任务的优先级、资源使用情况等因素,选择合适的计算节点执行任务。常见的调度算法有轮询算法、随机算法、优先级算法等。不同的调度算法适用于不同的场景,系统可以根据实际需求选择合适的调度算法。以下是轮询调度算法和优先级调度算法的 Java 代码实现:
import java.util.Comparator;
import java.util.List;
// 调度算法接口,定义了选择计算节点的方法
public interface SchedulingAlgorithm {
/**
* 从计算节点列表中选择一个节点
* @param nodes 计算节点列表
* @return 选择的计算节点
*/
ComputeNode selectNode(List<ComputeNode> nodes);
}
// 轮询调度算法实现类,按顺序依次选择计算节点
class RoundRobinAlgorithm implements SchedulingAlgorithm {
// 当前节点的索引
private int currentIndex = 0;
@Override
public ComputeNode selectNode(List<ComputeNode> nodes) {
if (nodes == null || nodes.isEmpty()) {
return null;
}
// 获取当前索引对应的计算节点
ComputeNode selectedNode = nodes.get(currentIndex);
// 更新索引,实现轮询
currentIndex = (currentIndex + 1) % nodes.size();
return selectedNode;
}
}
// 优先级调度算法实现类,根据计算节点的优先级选择节点
class PriorityAlgorithm implements SchedulingAlgorithm {
@Override
public ComputeNode selectNode(List<ComputeNode> nodes) {
if (nodes == null || nodes.isEmpty()) {
return null;
}
// 按照优先级从高到低排序
nodes.sort(Comparator.comparingInt(ComputeNode::getPriority).reversed());
return nodes.get(0);
}
}
// 计算节点类,封装了计算节点的基本信息
class ComputeNode {
// 计算节点的唯一标识符
private String id;
// 计算节点的可用状态
private boolean isAvailable;
// 计算节点的优先级
private int priority;
/**
* 构造函数,初始化计算节点的基本信息
* @param id 计算节点的唯一标识符
* @param isAvailable 计算节点的可用状态
* @param priority 计算节点的优先级
*/
public ComputeNode(String id, boolean isAvailable, int priority) {
this.id = id;
this.isAvailable = isAvailable;
this.priority = priority;
}
/**
* 获取计算节点的唯一标识符
* @return 计算节点的唯一标识符
*/
public String getId() {
return id;
}
/**
* 判断计算节点是否可用
* @return 如果可用返回 true,否则返回 false
*/
public boolean isAvailable() {
return isAvailable;
}
/**
* 获取计算节点的优先级
* @return 计算节点的优先级
*/
public int getPriority() {
return priority;
}
/**
* 设置计算节点的优先级
* @param priority 新的优先级
*/
public void setPriority(int priority) {
this.priority = priority;
}
}
- 监控模块:监控模块负责实时监控任务的执行状态、计算节点的资源使用情况等信息,及时发现并处理异常情况。它通过收集计算节点的性能指标,如 CPU 使用率、内存使用率、网络带宽等,判断计算节点的健康状况。当某个计算节点出现异常时,监控模块会及时通知任务调度中心,任务调度中心会将任务重新分配到其他可用的计算节点上。以下是一个完整的监控模块 Java 代码示例,包含了性能指标的收集和异常处理:
import java.util.List;
// 监控模块类,用于监控计算节点的状态
public class MonitoringModule {
/**
* 监控计算节点列表中各个节点的状态
* @param nodes 计算节点列表
*/
public void monitorNodes(List<ComputeNode> nodes) {
if (nodes == null || nodes.isEmpty()) {
return;
}
for (ComputeNode node : nodes) {
if (!node.isAvailable()) {
System.out.println("Node " + node.getId() + " is not available.");
// 这里可以添加处理节点不可用的逻辑,如通知任务调度中心
}
// 模拟收集 CPU 使用率
double cpuUsage = getCPUUsage(node);
if (cpuUsage > 0.8) {
System.out.println("Node " + node.getId() + " has high CPU usage: " + cpuUsage * 100 + "%");
// 这里可以添加处理高 CPU 使用率的逻辑,如调整任务分配
}
// 模拟收集内存使用率
double memoryUsage = getMemoryUsage(node);
if (memoryUsage > 0.9) {
System.out.println("Node " + node.getId() + " has high memory usage: " + memoryUsage * 100 + "%");
// 这里可以添加处理高内存使用率的逻辑,如释放内存
}
}
}
/**
* 模拟获取计算节点的 CPU 使用率
* @param node 计算节点
* @return CPU 使用率
*/
private double getCPUUsage(ComputeNode node) {
// 这里可以实现实际的 CPU 使用率获取逻辑,例如使用 Java 的 ManagementFactory 类
java.lang.management.OperatingSystemMXBean osBean = java.lang.management.ManagementFactory.getOperatingSystemMXBean();
if (osBean instanceof com.sun.management.OperatingSystemMXBean) {
com.sun.management.OperatingSystemMXBean sunOsBean = (com.sun.management.OperatingSystemMXBean) osBean;
return sunOsBean.getSystemCpuLoad();
}
return Math.random();
}
/**
* 模拟获取计算节点的内存使用率
* @param node 计算节点
* @return 内存使用率
*/
private double getMemoryUsage(ComputeNode node) {
// 这里可以实现实际的内存使用率获取逻辑,例如使用 Java 的 Runtime 类
Runtime runtime = Runtime.getRuntime();
long totalMemory = runtime.totalMemory();
long freeMemory = runtime.freeMemory();
long usedMemory = totalMemory - freeMemory;
return (double) usedMemory / totalMemory;
}
}
- 容错模块:容错模块是保障系统可靠性的关键,当计算节点出现故障时,它能够自动将任务转移到其他可用的计算节点上执行,确保任务的可靠性。它通过定期检查计算节点的状态,发现故障节点后,会将该节点上正在执行的任务进行备份,并重新分配到其他可用的计算节点上继续执行。以下是一个完整的容错模块 Java 代码示例,包含了任务备份和重新分配的逻辑:
import java.util.List;
// 容错模块类,用于处理计算节点故障
public class FaultToleranceModule {
/**
* 处理计算节点故障的方法
* @param failedNode 故障的计算节点
* @param availableNodes 可用的计算节点列表
* @param task 正在执行的任务
*/
public void handleNodeFailure(ComputeNode failedNode, List<ComputeNode> availableNodes, Task task) {
if (failedNode == null || availableNodes == null || availableNodes.isEmpty() || task == null) {
return;
}
System.out.println("Node " + failedNode.getId() + " has failed. Reassigning task " + task.getId());
// 备份任务
backupTask(task);
// 过滤掉不可用的节点
List<ComputeNode> trulyAvailableNodes = new ArrayList<>();
for (ComputeNode node : availableNodes) {
if (node.isAvailable()) {
trulyAvailableNodes.add(node);
}
}
if (trulyAvailableNodes.isEmpty()) {
System.out.println("No available nodes to reassign the task.");
return;
}
// 选择一个可用节点
SchedulingAlgorithm algorithm = new RoundRobinAlgorithm();
ComputeNode newNode = algorithm.selectNode(trulyAvailableNodes);
if (newNode != null) {
// 重新分配任务到新节点
System.out.println("Reassigning task " + task.getId() + " to node " + newNode.getId());
// 模拟将任务发送到新节点执行,实际可通过消息队列等方式实现
sendTaskToNode(task, newNode);
} else {
System.out.println("No suitable available nodes to reassign the task.");
}
}
/**
* 备份任务的方法
* @param task 要备份的任务
*/
private void backupTask(Task task) {
// 这里可以实现实际的任务备份逻辑,如将任务信息保存到文件或数据库
try {
java.io.FileWriter writer = new java.io.FileWriter("task_backup_" + task.getId() + ".txt");
writer.write("Task ID: " + task.getId() + "\n");
writer.write("Task Name: " + task.getName() + "\n");
writer.write("Cron Expression: " + task.getCronExpression() + "\n");
writer.close();
System.out.println("Task " + task.getId() + " has been backed up.");
} catch (java.io.IOException e) {
System.err.println("Failed to backup task " + task.getId() + ": " + e.getMessage());
}
}
/**
* 模拟将任务发送到节点执行的方法
* @param task 要发送的任务
* @param node 目标节点
*/
private void sendTaskToNode(Task task, ComputeNode node) {
// 实际应用中可通过消息队列(如 Redis、Kafka)将任务信息发送到节点
// 这里简单模拟输出
System.out.println("Sending task " + task.getId() + " to node " + node.getId());
}
}
三、系统实现
3.1 开发环境搭建
我们选用 Java 作为开发语言,利用 Spring Boot 框架来简化开发流程,同时借助 Redis 作为消息队列,MySQL 作为数据库。以下是详细的开发环境搭建步骤:
1. 添加 Maven 依赖
在 pom.xml
文件中添加必要的依赖,让项目能够使用 Spring Boot、Redis 和 MySQL 相关功能。
<dependencies>
<!-- Spring Boot Starter核心依赖,提供基础的Spring Boot功能支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- Spring Boot Starter Web依赖,用于构建 Web 应用 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Redis依赖,用于构建高效的消息队列 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- MySQL数据库驱动依赖,实现与MySQL数据库的连接和交互 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- Spring Boot Starter Data JPA依赖,简化数据库操作 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
2. 配置 Redis
在 application.properties
文件中添加 Redis 的连接配置,确保系统能够与 Redis 服务器正常通信。
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=your_redis_password # 如果有密码则添加
3. 配置 MySQL
同样在 application.properties
中配置 MySQL 数据库的连接信息,包括数据库地址、用户名、密码等。
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
3.2 核心代码实现
以下是一个完整的任务调度中心代码示例,整合了前面的任务管理、调度算法、监控和容错模块,让系统能够完整地运行起来。
import java.util.ArrayList;
import java.util.List;
// 任务调度中心类,负责协调各个模块完成任务调度
public class TaskScheduler {
// 任务管理模块
private TaskManager taskManager;
// 调度算法模块
private SchedulingAlgorithm schedulingAlgorithm;
// 监控模块
private MonitoringModule monitoringModule;
// 容错模块
private FaultToleranceModule faultToleranceModule;
// 计算节点列表
private List<ComputeNode> computeNodes;
/**
* 构造函数,初始化各个模块和计算节点列表
*/
public TaskScheduler() {
this.taskManager = new TaskManager();
this.schedulingAlgorithm = new RoundRobinAlgorithm();
this.monitoringModule = new MonitoringModule();
this.faultToleranceModule = new FaultToleranceModule();
this.computeNodes = new ArrayList<>();
// 初始化计算节点
computeNodes.add(new ComputeNode("node1", true, 1));
computeNodes.add(new ComputeNode("node2", true, 2));
}
/**
* 添加任务到任务调度中心,并进行任务调度
* @param task 要添加的任务
*/
public void addTask(Task task) {
taskManager.addTask(task);
scheduleTask(task);
}
/**
* 调度任务到合适的计算节点执行
* @param task 要调度的任务
*/
private void scheduleTask(Task task) {
ComputeNode selectedNode = schedulingAlgorithm.selectNode(computeNodes);
if (selectedNode != null && selectedNode.isAvailable()) {
System.out.println("Assigning task " + task.getId() + " to node " + selectedNode.getId());
// 这里可以添加将任务发送到节点执行的逻辑,例如通过消息队列
try {
org.springframework.data.redis.core.RedisTemplate<String, String> redisTemplate = getRedisTemplate();
redisTemplate.opsForList().leftPush("task_queue_" + selectedNode.getId(), task.toString());
} catch (Exception e) {
System.err.println("Failed to send task " + task.getId() + " to node " + selectedNode.getId() + ": " + e.getMessage());
}
} else {
System.out.println("No available nodes to assign the task.");
}
}
/**
* 监控计算节点的状态
*/
public void monitorNodes() {
monitoringModule.monitorNodes(computeNodes);
}
/**
* 处理计算节点故障
* @param failedNode 故障的计算节点
*/
public void handleNodeFailure(ComputeNode failedNode) {
List<Task> tasks = taskManager.getTasks();
for (Task task : tasks) {
// 假设任务在故障节点上执行,这里需要根据实际情况判断
// 例如,通过查询任务执行记录来确定任务是否在该节点执行
faultToleranceModule.handleNodeFailure(failedNode, computeNodes, task);
}
}
/**
* 获取 RedisTemplate 实例,用于操作 Redis
* @return RedisTemplate 实例
*/
private org.springframework.data.redis.core.RedisTemplate<String, String> getRedisTemplate() {
org.springframework.data.redis.connection.RedisConnectionFactory connectionFactory = new org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory();
org.springframework.data.redis.core.RedisTemplate<String, String> redisTemplate = new org.springframework.data.redis.core.RedisTemplate<>();
redisTemplate.setConnectionFactory(connectionFactory);
redisTemplate.setKeySerializer(new org.springframework.data.redis.serializer.StringRedisSerializer());
redisTemplate.setValueSerializer(new org.springframework.data.redis.serializer.StringRedisSerializer());
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
四、案例分析
4.1 某电商系统的应用案例
某电商系统在业务高峰期,如 “双 11”“618” 等大促活动期间,面临着巨大的订单处理压力和库存更新任务量。在引入分布式任务调度系统之前,采用传统单机任务调度方式,系统响应迟缓,订单处理时间长,库存更新不及时,导致大量用户投诉和订单流失。
引入分布式任务调度系统后,系统性能得到了显著提升。以下是优化前后的性能对比:
指标 | 优化前 | 优化后 | 提升幅度 |
---|---|---|---|
订单处理时间 | 平均 10 秒 | 平均 3 秒 | 70% |
库存更新时间 | 平均 8 秒 | 平均 2 秒 | 75% |
系统吞吐量(订单 / 分钟) | 200 | 800 | 300% |
系统可用性 | 95% | 99.9% | - |
在 “双 11” 活动期间,该电商系统每秒接收数千笔订单,分布式任务调度系统将订单处理任务合理分配到多个计算节点上并行执行,同时实时监控各个节点的状态,确保任务的高效处理。库存更新任务也能够及时完成,避免了超卖现象的发生。通过系统的容错机制,即使个别计算节点出现故障,也不会影响整体业务的正常运行。
4.2 案例总结
通过该电商系统的应用案例可以看出,分布式任务调度系统在处理高并发、大规模任务时具有显著的优势。它能够提高系统的处理能力、缩短响应时间、增强系统的可靠性和可用性,从而提升用户体验和业务竞争力。
在实际应用中,企业应根据自身业务特点和系统需求,选择合适的分布式任务调度系统,并进行合理的配置和优化。例如,对于电商系统,可以根据不同的业务场景(如促销活动、日常运营)动态调整任务调度策略,合理分配计算资源,以达到最佳的性能和成本效益。
结束语
亲爱的 Java 和 大数据爱好者们,在大数据时代的浪潮中,基于 Java 的大数据分布式任务调度系统已成为企业提升数据处理效能、增强业务竞争力的核心技术支撑。我们从系统架构的精巧设计,到调度算法的匠心抉择,再到容错与监控机制的完善构建,每一个环节都蕴含着提升系统性能与可靠性的关键要素。
亲爱的 Java 和 大数据爱好者们,展望未来,《大数据新视界》和《 Java 大视界》专栏联合推出的第三个三阶段系列的第二十篇文章《Java 大视界 – Java 大数据在智能政务公共服务资源优化配置中的应用(118)》,将引领我们深入智能政务领域,探索 Java 大数据如何精准优化公共服务资源配置,提升政府服务效能,推动社会治理的数字化转型。让我们共同期待这场技术与政务深度融合的创新之旅。
亲爱的 Java 和 大数据爱好者们,您在实际项目中,是否针对分布式任务调度系统的监控模块进行过定制化开发?若有,主要优化了哪些方面的功能?对于不同类型的任务(如计算密集型、I/O 密集型),您认为应如何选择最合适的调度算法?欢迎在评论区或【青云交社区 – Java 大视界频道】畅所欲言!
诚邀各位参与投票,在分布式任务调度系统中,您认为哪项技术对提升性能最为关键?快来投出你的宝贵一票,点此链接投票 。
- Java 大视界 – Java 大数据在智慧交通信号灯智能控制中的应用(116)(最新)
- Java 大视界 – Java 大数据机器学习模型的超参数优化技巧与实践(115)(最新)
- Java 大视界 – Java 大数据在智能金融反欺诈中的技术实现与案例分析(114)(最新)
- Java 大视界 – 基于 Java 的大数据流处理容错机制与恢复策略(113)(最新)
- Java 大视界 – Java 大数据在智能教育考试评估与学情分析中的应用(112)(最新)
- Java 大视界 – Java 大数据中的联邦学习激励机制设计与实践(111)(最新)
- Java 大视界 – Java 大数据在智慧文旅游客流量预测与景区运营优化中的应用(110)(最新)
- Java 大视界 – 基于 Java 的大数据分布式缓存一致性维护策略解析(109)(最新)
- Java 大视界 – Java 大数据在智能安防入侵检测与行为分析中的应用(108)(最新)
- Java 大视界 – Java 大数据机器学习模型的可解释性增强技术与应用(107)(最新)
- Java 大视界 – Java 大数据在智能医疗远程诊断中的技术支撑与挑战(106)(最新)
- Java 大视界 – 基于 Java 的大数据可视化交互设计与实现技巧(105)(最新)
- Java 大视界 – Java 大数据在智慧环保污染源监测与预警中的应用(104)(最新)
- Java 大视界 – Java 大数据中的时间序列数据异常检测算法对比与实践(103)(最新)
- Java 大视界 – Java 大数据在智能物流路径规划与车辆调度中的创新应用(102)(最新)
- Java 大视界 – Java 大数据分布式文件系统的性能调优实战(101)(最新)
- Java 大视界 – Java 大数据在智慧能源微电网能量管理中的关键技术(100)(最新)
- Java 大视界 – 基于 Java 的大数据机器学习模型压缩与部署优化(99)(最新)
- Java 大视界 – Java 大数据在智能零售动态定价策略中的应用实战(98)(最新)
- Java 大视界 – 深入剖析 Java 大数据实时 ETL 中的数据质量保障策略(97)(最新)
- Java 大视界 – 总结与展望:Java 大数据领域的新征程与无限可能(96)(最新)
- 技术逐梦十二载:CSDN 相伴,400 篇文章见证成长,展望新篇(最新)
- Java 大视界 – Java 大数据未来十年的技术蓝图与发展愿景(95)(最新)
- Java 大视界 – 国际竞争与合作:Java 大数据在全球市场的机遇与挑战(94)(最新)
- Java 大视界 – 企业数字化转型中的 Java 大数据战略与实践(93)(最新)
- Java 大视界 – 人才需求与培养:Java 大数据领域的职业发展路径(92)(最新)
- Java 大视界 – 开源社区对 Java 大数据发展的推动与贡献(91)(最新)
- Java 大视界 – 绿色大数据:Java 技术在节能减排中的应用与实践(90)(最新)
- Java 大视界 – 全球数据治理格局下 Java 大数据的发展路径(89)(最新)
- Java 大视界 – 量子计算时代 Java 大数据的潜在变革与应对策略(88)(最新)
- Java 大视界 – 大数据伦理与法律:Java 技术在合规中的作用与挑战(87)(最新)
- Java 大视界 – 云计算时代 Java 大数据的云原生架构与应用实践(86)(最新)
- Java 大视界 – 边缘计算与 Java 大数据协同发展的前景与挑战(85)(最新)
- Java 大视界 – 区块链赋能 Java 大数据:数据可信与价值流转(84)(最新)
- Java 大视界 – 人工智能驱动下 Java 大数据的技术革新与应用突破(83)(最新)
- Java 大视界 – 5G 与 Java 大数据融合的行业应用与发展趋势(82)(最新)
- Java 大视界 – 后疫情时代 Java 大数据在各行业的变革与机遇(81)(最新)
- Java 大视界 – Java 大数据在智能体育中的应用与赛事分析(80)(最新)
- Java 大视界 – Java 大数据在智能家居中的应用与场景构建(79)(最新)
- 解锁 DeepSeek 模型高效部署密码:蓝耘平台深度剖析与实战应用(最新)
- Java 大视界 – Java 大数据在智能政务中的应用与服务创新(78)(最新)
- Java 大视界 – Java 大数据在智能金融监管中的应用与实践(77)(最新)
- Java 大视界 – Java 大数据在智能供应链中的应用与优化(76)(最新)
- 解锁 DeepSeek 模型高效部署密码:蓝耘平台全解析(最新)
- Java 大视界 – Java 大数据在智能教育中的应用与个性化学习(75)(最新)
- Java 大视界 – Java 大数据在智慧文旅中的应用与体验优化(74)(最新)
- Java 大视界 – Java 大数据在智能安防中的应用与创新(73)(最新)
- Java 大视界 – Java 大数据在智能医疗影像诊断中的应用(72)(最新)
- Java 大视界 – Java 大数据在智能电网中的应用与发展趋势(71)(最新)
- Java 大视界 – Java 大数据在智慧农业中的应用与实践(70)(最新)
- Java 大视界 – Java 大数据在量子通信安全中的应用探索(69)(最新)
- Java 大视界 – Java 大数据在自动驾驶中的数据处理与决策支持(68)(最新)
- Java 大视界 – Java 大数据在生物信息学中的应用与挑战(67)(最新)
- Java 大视界 – Java 大数据与碳中和:能源数据管理与碳排放分析(66)(最新)
- Java 大视界 – Java 大数据在元宇宙中的关键技术与应用场景(65)(最新)
- Java 大视界 – Java 大数据中的隐私增强技术全景解析(64)(最新)
- Java 大视界 – Java 大数据中的自然语言生成技术与实践(63)(最新)
- Java 大视界 – Java 大数据中的知识图谱构建与应用(62)(最新)
- Java 大视界 – Java 大数据中的异常检测技术与应用(61)(最新)
- Java 大视界 – Java 大数据中的数据脱敏技术与合规实践(60)(最新)
- Java 大视界 – Java 大数据中的时间序列预测高级技术(59)(最新)
- Java 大视界 – Java 与大数据分布式机器学习平台搭建(58)(最新)
- Java 大视界 – Java 大数据中的强化学习算法实践与优化 (57)(最新)
- Java 大视界 – Java 大数据中的深度学习框架对比与选型(56)(最新)
- Java 大视界 – Java 大数据实时数仓的构建与运维实践(55)(最新)
- Java 大视界 – Java 与大数据联邦数据库:原理、架构与实现(54)(最新)
- Java 大视界 – Java 大数据中的图神经网络应用与实践(53)(最新)
- Java 大视界 – 深度洞察 Java 大数据安全多方计算的前沿趋势与应用革新(52)(最新)
- Java 大视界 – Java 与大数据流式机器学习:理论与实战(51)(最新)
- Java 大视界 – 基于 Java 的大数据分布式索引技术探秘(50)(最新)
- Java 大视界 – 深入剖析 Java 在大数据内存管理中的优化策略(49)(最新)
- Java 大数据未来展望:新兴技术与行业变革驱动(48)(最新)
- Java 大数据自动化数据管道构建:工具与最佳实践(47)(最新)
- Java 大数据实时数据同步:基于 CDC 技术的实现(46)(最新)
- Java 大数据与区块链的融合:数据可信共享与溯源(45)(最新)
- Java 大数据数据增强技术:提升数据质量与模型效果(44)(最新)
- Java 大数据模型部署与运维:生产环境的挑战与应对(43)(最新)
- Java 大数据无监督学习:聚类与降维算法应用(42)(最新)
- Java 大数据数据虚拟化:整合异构数据源的策略(41)(最新)
- Java 大数据可解释人工智能(XAI):模型解释工具与技术(40)(最新)
- Java 大数据高性能计算:利用多线程与并行计算框架(39)(最新)
- Java 大数据时空数据处理:地理信息系统与时间序列分析(38)(最新)
- Java 大数据图计算:基于 GraphX 与其他图数据库(37)(最新)
- Java 大数据自动化机器学习(AutoML):框架与应用案例(36)(最新)
- Java 与大数据隐私计算:联邦学习与安全多方计算应用(35)(最新)
- Java 驱动的大数据边缘计算:架构与实践(34)(最新)
- Java 与量子计算在大数据中的潜在融合:原理与展望(33)(最新)
- Java 大视界 – Java 大数据星辰大海中的团队协作之光:照亮高效开发之路(十六)(最新)
- Java 大视界 – Java 大数据性能监控与调优:全链路性能分析与优化(十五)(最新)
- Java 大视界 – Java 大数据数据治理:策略与工具实现(十四)(最新)
- Java 大视界 – Java 大数据云原生应用开发:容器化与无服务器计算(十三)(最新)
- Java 大视界 – Java 大数据数据湖架构:构建与管理基于 Java 的数据湖(十二)(最新)
- Java 大视界 – Java 大数据分布式事务处理:保障数据一致性(十一)(最新)
- Java 大视界 – Java 大数据文本分析与自然语言处理:从文本挖掘到智能对话(十)(最新)
- Java 大视界 – Java 大数据图像与视频处理:基于深度学习与大数据框架(九)(最新)
- Java 大视界 – Java 大数据物联网应用:数据处理与设备管理(八)(最新)
- Java 大视界 – Java 与大数据金融科技应用:风险评估与交易分析(七)(最新)
- 蓝耘元生代智算云:解锁百亿级产业变革的算力密码(最新)
- Java 大视界 – Java 大数据日志分析系统:基于 ELK 与 Java 技术栈(六)(最新)
- Java 大视界 – Java 大数据分布式缓存:提升数据访问性能(五)(最新)
- Java 大视界 – Java 与大数据智能推荐系统:算法实现与个性化推荐(四)(最新)
- Java 大视界 – Java 大数据机器学习应用:从数据预处理到模型训练与部署(三)(最新)
- Java 大视界 – Java 与大数据实时分析系统:构建低延迟的数据管道(二)(最新)
- Java 大视界 – Java 微服务架构在大数据应用中的实践:服务拆分与数据交互(一)(最新)
- Java 大视界 – Java 大数据项目架构演进:从传统到现代化的转变(十六)(最新)
- Java 大视界 – Java 与大数据云计算集成:AWS 与 Azure 实践(十五)(最新)
- Java 大视界 – Java 大数据平台迁移与升级策略:平滑过渡的方法(十四)(最新)
- Java 大视界 – Java 大数据分析算法库:常用算法实现与优化(十三)(最新)
- Java 大视界 – Java 大数据测试框架与实践:确保数据处理质量(十二)(最新)
- Java 大视界 – Java 分布式协调服务:Zookeeper 在大数据中的应用(十一)(最新)
- Java 大视界 – Java 与大数据存储优化:HBase 与 Cassandra 应用(十)(最新)
- Java 大视界 – Java 大数据可视化:从数据处理到图表绘制(九)(最新)
- Java 大视界 – Java 大数据安全框架:保障数据隐私与访问控制(八)(最新)
- Java 大视界 – Java 与 Hive:数据仓库操作与 UDF 开发(七)(最新)
- Java 大视界 – Java 驱动大数据流处理:Storm 与 Flink 入门(六)(最新)
- Java 大视界 – Java 与 Spark SQL:结构化数据处理与查询优化(五)(最新)
- Java 大视界 – Java 开发 Spark 应用:RDD 操作与数据转换(四)(最新)
- Java 大视界 – Java 实现 MapReduce 编程模型:基础原理与代码实践(三)(最新)
- Java 大视界 – 解锁 Java 与 Hadoop HDFS 交互的高效编程之道(二)(最新)
- Java 大视界 – Java 构建大数据开发环境:从 JDK 配置到大数据框架集成(一)(最新)
- 大数据新视界 – Hive 多租户资源分配与隔离(2 - 16 - 16)(最新)
- 大数据新视界 – Hive 多租户环境的搭建与管理(2 - 16 - 15)(最新)
- 技术征途的璀璨华章:青云交的砥砺奋进与感恩之心(最新)
- 大数据新视界 – Hive 集群性能监控与故障排查(2 - 16 - 14)(最新)
- 大数据新视界 – Hive 集群搭建与配置的最佳实践(2 - 16 - 13)(最新)
- 大数据新视界 – Hive 数据生命周期自动化管理(2 - 16 - 12)(最新)
- 大数据新视界 – Hive 数据生命周期管理:数据归档与删除策略(2 - 16 - 11)(最新)
- 大数据新视界 – Hive 流式数据处理框架与实践(2 - 16 - 10)(最新)
- 大数据新视界 – Hive 流式数据处理:实时数据的接入与处理(2 - 16 - 9)(最新)
- 大数据新视界 – Hive 事务管理的应用与限制(2 - 16 - 8)(最新)
- 大数据新视界 – Hive 事务与 ACID 特性的实现(2 - 16 - 7)(最新)
- 大数据新视界 – Hive 数据倾斜实战案例分析(2 - 16 - 6)(最新)
- 大数据新视界 – Hive 数据倾斜问题剖析与解决方案(2 - 16 - 5)(最新)
- 大数据新视界 – Hive 数据仓库设计的优化原则(2 - 16 - 4)(最新)
- 大数据新视界 – Hive 数据仓库设计模式:星型与雪花型架构(2 - 16 - 3)(最新)
- 大数据新视界 – Hive 数据抽样实战与结果评估(2 - 16 - 2)(最新)
- 大数据新视界 – Hive 数据抽样:高效数据探索的方法(2 - 16 - 1)(最新)
- 智创 AI 新视界 – 全球合作下的 AI 发展新机遇(16 - 16)(最新)
- 智创 AI 新视界 – 产学研合作推动 AI 技术创新的路径(16 - 15)(最新)
- 智创 AI 新视界 – 确保 AI 公平性的策略与挑战(16 - 14)(最新)
- 智创 AI 新视界 – AI 发展中的伦理困境与解决方案(16 - 13)(最新)
- 智创 AI 新视界 – 改进 AI 循环神经网络(RNN)的实践探索(16 - 12)(最新)
- 智创 AI 新视界 – 基于 Transformer 架构的 AI 模型优化(16 - 11)(最新)
- 智创 AI 新视界 – AI 助力金融风险管理的新策略(16 - 10)(最新)
- 智创 AI 新视界 – AI 在交通运输领域的智能优化应用(16 - 9)(最新)
- 智创 AI 新视界 – AIGC 对游戏产业的革命性影响(16 - 8)(最新)
- 智创 AI 新视界 – AIGC 重塑广告行业的创新力量(16 - 7)(最新)
- 智创 AI 新视界 – AI 引领下的未来社会变革预测(16 - 6)(最新)
- 智创 AI 新视界 – AI 与量子计算的未来融合前景(16 - 5)(最新)
- 智创 AI 新视界 – 防范 AI 模型被攻击的安全策略(16 - 4)(最新)
- 智创 AI 新视界 – AI 时代的数据隐私保护挑战与应对(16 - 3)(最新)
- 智创 AI 新视界 – 提升 AI 推理速度的高级方法(16 - 2)(最新)
- 智创 AI 新视界 – 优化 AI 模型训练效率的策略与技巧(16 - 1)(最新)
- 大数据新视界 – 大数据大厂之 Hive 临时表与视图的应用场景(下)(30 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 临时表与视图:灵活数据处理的技巧(上)(29 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 元数据管理工具与实践(下)(28 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 元数据管理:核心元数据的深度解析(上)(27 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据湖集成与数据治理(下)(26 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据湖架构中的角色与应用(上)(25 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive MapReduce 性能调优实战(下)(24 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 基于 MapReduce 的执行原理(上)(23 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 窗口函数应用场景与实战(下)(22 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 窗口函数:强大的数据分析利器(上)(21 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据压缩算法对比与选择(下)(20 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据压缩:优化存储与传输的关键(上)(19/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据质量监控:实时监测异常数据(下)(18/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据质量保障:数据清洗与验证的策略(上)(17/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据安全:加密技术保障数据隐私(下)(16 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据安全:权限管理体系的深度解读(上)(15 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 与其他大数据工具的集成:协同作战的优势(下)(14/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 与其他大数据工具的集成:协同作战的优势(上)(13/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 函数应用:复杂数据转换的实战案例(下)(12/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 函数库:丰富函数助力数据处理(上)(11/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据桶:优化聚合查询的有效手段(下)(10/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据桶原理:均匀分布数据的智慧(上)(9/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据分区:提升查询效率的关键步骤(下)(8/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据分区:精细化管理的艺术与实践(上)(7/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 查询性能优化:索引技术的巧妙运用(下)(6/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 查询性能优化:基于成本模型的奥秘(上)(5/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据导入:优化数据摄取的高级技巧(下)(4/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据导入:多源数据集成的策略与实战(上)(3/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据仓库:构建高效数据存储的基石(下)(2/ 30)(最新)
- 大数据新视界 – 大数据大厂之 Hive 数据仓库:架构深度剖析与核心组件详解(上)(1 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:量子计算启发下的数据加密与性能平衡(下)(30 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:融合人工智能预测的资源预分配秘籍(上)(29 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:分布式环境中的优化新视野(下)(28 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:跨数据中心环境下的挑战与对策(上)(27 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能突破:处理特殊数据的高级技巧(下)(26 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能突破:复杂数据类型处理的优化路径(上)(25 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:资源分配与负载均衡的协同(下)(24 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:集群资源动态分配的智慧(上)(23 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能飞跃:分区修剪优化的应用案例(下)(22 / 30)(最新)
- 智创 AI 新视界 – AI 助力医疗影像诊断的新突破(最新)
- 智创 AI 新视界 – AI 在智能家居中的智能升级之路(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能飞跃:动态分区调整的策略与方法(上)(21 / 30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 存储格式转换:从原理到实践,开启大数据性能优化星际之旅(下)(20/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:基于数据特征的存储格式选择(上)(19/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能提升:高级执行计划优化实战案例(下)(18/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能提升:解析执行计划优化的神秘面纱(上)(17/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:优化数据加载的实战技巧(下)(16/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:数据加载策略如何决定分析速度(上)(15/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:为企业决策加速的核心力量(下)(14/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 在大数据架构中的性能优化全景洞察(上)(13/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:新技术融合的无限可能(下)(12/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:融合机器学习的未来之路(上 (2-2))(11/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:融合机器学习的未来之路(上 (2-1))(11/30)(最新)
- 大数据新视界 – 大数据大厂之经典案例解析:广告公司 Impala 优化的成功之道(下)(10/30)(最新)
- 大数据新视界 – 大数据大厂之经典案例解析:电商企业如何靠 Impala性能优化逆袭(上)(9/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:从数据压缩到分析加速(下)(8/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:应对海量复杂数据的挑战(上)(7/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 资源管理:并发控制的策略与技巧(下)(6/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 与内存管理:如何避免资源瓶颈(上)(5/30)(最新)
- 大数据新视界 – 大数据大厂之提升 Impala 查询效率:重写查询语句的黄金法则(下)(4/30)(最新)
- 大数据新视界 – 大数据大厂之提升 Impala 查询效率:索引优化的秘籍大揭秘(上)(3/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:数据存储分区的艺术与实践(下)(2/30)(最新)
- 大数据新视界 – 大数据大厂之 Impala 性能优化:解锁大数据分析的速度密码(上)(1/30)(最新)
- 大数据新视界 – 大数据大厂都在用的数据目录管理秘籍大揭秘,附海量代码和案例(最新)
- 大数据新视界 – 大数据大厂之数据质量管理全景洞察:从荆棘挑战到辉煌策略与前沿曙光(最新)
- 大数据新视界 – 大数据大厂之大数据环境下的网络安全态势感知(最新)
- 大数据新视界 – 大数据大厂之多因素认证在大数据安全中的关键作用(最新)
- 大数据新视界 – 大数据大厂之优化大数据计算框架 Tez 的实践指南(最新)
- 技术星河中的璀璨灯塔 —— 青云交的非凡成长之路(最新)
- 大数据新视界 – 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 4)(最新)
- 大数据新视界 – 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 3)(最新)
- 大数据新视界 – 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 2)(最新)
- 大数据新视界 – 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 1)(最新)
- 大数据新视界 – 大数据大厂之Cassandra 性能优化策略:大数据存储的高效之路(最新)
- 大数据新视界 – 大数据大厂之大数据在能源行业的智能优化变革与展望(最新)
- 智创 AI 新视界 – 探秘 AIGC 中的生成对抗网络(GAN)应用(最新)
- 大数据新视界 – 大数据大厂之大数据与虚拟现实的深度融合之旅(最新)
- 大数据新视界 – 大数据大厂之大数据与神经形态计算的融合:开启智能新纪元(最新)
- 智创 AI 新视界 – AIGC 背后的深度学习魔法:从原理到实践(最新)
- 大数据新视界 – 大数据大厂之大数据和增强现实(AR)结合:创造沉浸式数据体验(最新)
- 大数据新视界 – 大数据大厂之如何降低大数据存储成本:高效存储架构与技术选型(最新)
- 大数据新视界 --大数据大厂之大数据与区块链双链驱动:构建可信数据生态(最新)
- 大数据新视界 – 大数据大厂之 AI 驱动的大数据分析:智能决策的新引擎(最新)
- 大数据新视界 --大数据大厂之区块链技术:为大数据安全保驾护航(最新)
- 大数据新视界 --大数据大厂之 Snowflake 在大数据云存储和处理中的应用探索(最新)
- 大数据新视界 --大数据大厂之数据脱敏技术在大数据中的应用与挑战(最新)
- 大数据新视界 --大数据大厂之 Ray:分布式机器学习框架的崛起(最新)
- 大数据新视界 --大数据大厂之大数据在智慧城市建设中的应用:打造智能生活的基石(最新)
- 大数据新视界 --大数据大厂之 Dask:分布式大数据计算的黑马(最新)
- 大数据新视界 --大数据大厂之 Apache Beam:统一批流处理的大数据新贵(最新)
- 大数据新视界 --大数据大厂之图数据库与大数据:挖掘复杂关系的新视角(最新)
- 大数据新视界 --大数据大厂之 Serverless 架构下的大数据处理:简化与高效的新路径(最新)
- 大数据新视界 --大数据大厂之大数据与边缘计算的协同:实时分析的新前沿(最新)
- 大数据新视界 --大数据大厂之 Hadoop MapReduce 优化指南:释放数据潜能,引领科技浪潮(最新)
- 诺贝尔物理学奖新视野:机器学习与神经网络的璀璨华章(最新)
- 大数据新视界 --大数据大厂之 Volcano:大数据计算任务调度的新突破(最新)
- 大数据新视界 --大数据大厂之 Kubeflow 在大数据与机器学习融合中的应用探索(最新)
- 大数据新视界 --大数据大厂之大数据环境下的零信任安全架构:构建可靠防护体系(最新)
- 大数据新视界 --大数据大厂之差分隐私技术在大数据隐私保护中的实践(最新)
- 大数据新视界 --大数据大厂之 Dremio:改变大数据查询方式的创新引擎(最新)
- 大数据新视界 --大数据大厂之 ClickHouse:大数据分析领域的璀璨明星(最新)
- 大数据新视界 --大数据大厂之大数据驱动下的物流供应链优化:实时追踪与智能调配(最新)
- 大数据新视界 --大数据大厂之大数据如何重塑金融风险管理:精准预测与防控(最新)
- 大数据新视界 --大数据大厂之 GraphQL 在大数据查询中的创新应用:优化数据获取效率(最新)
- 大数据新视界 --大数据大厂之大数据与量子机器学习融合:突破智能分析极限(最新)
- 大数据新视界 --大数据大厂之 Hudi 数据湖框架性能提升:高效处理大数据变更(最新)
- 大数据新视界 --大数据大厂之 Presto 性能优化秘籍:加速大数据交互式查询(最新)
- 大数据新视界 --大数据大厂之大数据驱动智能客服 – 提升客户体验的核心动力(最新)
- 大数据新视界 --大数据大厂之大数据于基因测序分析的核心应用 - 洞悉生命信息的密钥(最新)
- 大数据新视界 --大数据大厂之 Ibis:独特架构赋能大数据分析高级抽象层(最新)
- 大数据新视界 --大数据大厂之 DataFusion:超越传统的大数据集成与处理创新工具(最新)
- 大数据新视界 --大数据大厂之 从 Druid 和 Kafka 到 Polars:大数据处理工具的传承与创新(最新)
- 大数据新视界 --大数据大厂之 Druid 查询性能提升:加速大数据实时分析的深度探索(最新)
- 大数据新视界 --大数据大厂之 Kafka 性能优化的进阶之道:应对海量数据的高效传输(最新)
- 大数据新视界 --大数据大厂之深度优化 Alluxio 分层架构:提升大数据缓存效率的全方位解析(最新)
- 大数据新视界 --大数据大厂之 Alluxio:解析数据缓存系统的分层架构(最新)
- 大数据新视界 --大数据大厂之 Alluxio 数据缓存系统在大数据中的应用与配置(最新)
- 大数据新视界 --大数据大厂之TeZ 大数据计算框架实战:高效处理大规模数据(最新)
- 大数据新视界 --大数据大厂之数据质量评估指标与方法:提升数据可信度(最新)
- 大数据新视界 --大数据大厂之 Sqoop 在大数据导入导出中的应用与技巧(最新)
- 大数据新视界 --大数据大厂之数据血缘追踪与治理:确保数据可追溯性(最新)
- 大数据新视界 --大数据大厂之Cassandra 分布式数据库在大数据中的应用与调优(最新)
- 大数据新视界 --大数据大厂之基于 MapReduce 的大数据并行计算实践(最新)
- 大数据新视界 --大数据大厂之数据压缩算法比较与应用:节省存储空间(最新)
- 大数据新视界 --大数据大厂之 Druid 实时数据分析平台在大数据中的应用(最新)
- 大数据新视界 --大数据大厂之数据清洗工具 OpenRefine 实战:清理与转换数据(最新)
- 大数据新视界 --大数据大厂之 Spark Streaming 实时数据处理框架:案例与实践(最新)
- 大数据新视界 --大数据大厂之 Kylin 多维分析引擎实战:构建数据立方体(最新)
- 大数据新视界 --大数据大厂之HBase 在大数据存储中的应用与表结构设计(最新)
- 大数据新视界 --大数据大厂之大数据实战指南:Apache Flume 数据采集的配置与优化秘籍(最新)
- 大数据新视界 --大数据大厂之大数据存储技术大比拼:选择最适合你的方案(最新)
- 大数据新视界 --大数据大厂之 Reactjs 在大数据应用开发中的优势与实践(最新)
- 大数据新视界 --大数据大厂之 Vue.js 与大数据可视化:打造惊艳的数据界面(最新)
- 大数据新视界 --大数据大厂之 Node.js 与大数据交互:实现高效数据处理(最新)
- 大数据新视界 --大数据大厂之JavaScript在大数据前端展示中的精彩应用(最新)
- 大数据新视界 --大数据大厂之AI 与大数据的融合:开创智能未来的新篇章(最新)
- 大数据新视界 --大数据大厂之算法在大数据中的核心作用:提升效率与智能决策(最新)
- 大数据新视界 --大数据大厂之DevOps与大数据:加速数据驱动的业务发展(最新)
- 大数据新视界 --大数据大厂之SaaS模式下的大数据应用:创新与变革(最新)
- 大数据新视界 --大数据大厂之Kubernetes与大数据:容器化部署的最佳实践(最新)
- 大数据新视界 --大数据大厂之探索ES:大数据时代的高效搜索引擎实战攻略(最新)
- 大数据新视界 --大数据大厂之Redis在缓存与分布式系统中的神奇应用(最新)
- 大数据新视界 --大数据大厂之数据驱动决策:如何利用大数据提升企业竞争力(最新)
- 大数据新视界 --大数据大厂之MongoDB与大数据:灵活文档数据库的应用场景(最新)
- 大数据新视界 --大数据大厂之数据科学项目实战:从问题定义到结果呈现的完整流程(最新)
- 大数据新视界 --大数据大厂之 Cassandra 分布式数据库:高可用数据存储的新选择(最新)
- 大数据新视界 --大数据大厂之数据安全策略:保护大数据资产的最佳实践(最新)
- 大数据新视界 --大数据大厂之Kafka消息队列实战:实现高吞吐量数据传输(最新)
- 大数据新视界 --大数据大厂之数据挖掘入门:用 R 语言开启数据宝藏的探索之旅(最新)
- 大数据新视界 --大数据大厂之HBase深度探寻:大规模数据存储与查询的卓越方案(最新)
- IBM 中国研发部裁员风暴,IT 行业何去何从?(最新)
- 大数据新视界 --大数据大厂之数据治理之道:构建高效大数据治理体系的关键步骤(最新)
- 大数据新视界 --大数据大厂之Flink强势崛起:大数据新视界的璀璨明珠(最新)
- 大数据新视界 --大数据大厂之数据可视化之美:用 Python 打造炫酷大数据可视化报表(最新)
- 大数据新视界 --大数据大厂之 Spark 性能优化秘籍:从配置到代码实践(最新)
- 大数据新视界 --大数据大厂之揭秘大数据时代 Excel 魔法:大厂数据分析师进阶秘籍(最新)
- 大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南(最新)
- 大数据新视界–大数据大厂之Java 与大数据携手:打造高效实时日志分析系统的奥秘(最新)
- 大数据新视界–面向数据分析师的大数据大厂之MySQL基础秘籍:轻松创建数据库与表,踏入大数据殿堂(最新)
- 全栈性能优化秘籍–Linux 系统性能调优全攻略:多维度优化技巧大揭秘(最新)
- 大数据新视界–大数据大厂之MySQL数据库课程设计:揭秘 MySQL 集群架构负载均衡核心算法:从理论到 Java 代码实战,让你的数据库性能飙升!(最新)
- 大数据新视界–大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案(最新)
- 解锁编程高效密码:四大工具助你一飞冲天!(最新)
- 大数据新视界–大数据大厂之MySQL数据库课程设计:MySQL数据库高可用性架构探索(2-1)(最新)
- 大数据新视界–大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡方法选择全攻略(2-2)(最新)
- 大数据新视界–大数据大厂之MySQL数据库课程设计:MySQL 数据库 SQL 语句调优方法详解(2-1)(最新)
- 大数据新视界–大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)(最新)
- 大数据新视界–大数据大厂之MySQL 数据库课程设计:数据安全深度剖析与未来展望(最新)
- 大数据新视界–大数据大厂之MySQL 数据库课程设计:开启数据宇宙的传奇之旅(最新)
- 大数据新视界–大数据大厂之大数据时代的璀璨导航星:Eureka 原理与实践深度探秘(最新)
- Java性能优化传奇之旅–Java万亿级性能优化之Java 性能优化逆袭:常见错误不再是阻碍(最新)
- Java性能优化传奇之旅–Java万亿级性能优化之Java 性能优化传奇:热门技术点亮高效之路(最新)
- Java性能优化传奇之旅–Java万亿级性能优化之电商平台高峰时段性能优化:多维度策略打造卓越体验(最新)
- Java性能优化传奇之旅–Java万亿级性能优化之电商平台高峰时段性能大作战:策略与趋势洞察(最新)
- JVM万亿性能密码–JVM性能优化之JVM 内存魔法:开启万亿级应用性能新纪元(最新)
- 十万流量耀前路,成长感悟谱新章(最新)
- AI 模型:全能与专精之辩 —— 一场科技界的 “超级大比拼”(最新)
- 国产游戏技术:挑战与机遇(最新)
- Java面试题–JVM大厂篇之JVM大厂面试题及答案解析(10)(最新)
- Java面试题–JVM大厂篇之JVM大厂面试题及答案解析(9)(最新)
- Java面试题–JVM大厂篇之JVM大厂面试题及答案解析(8)(最新)
- Java面试题–JVM大厂篇之JVM大厂面试题及答案解析(7)(最新)
- Java面试题–JVM大厂篇之JVM大厂面试题及答案解析(6)(最新)
- Java面试题–JVM大厂篇之JVM大厂面试题及答案解析(5)(最新)
- Java面试题–JVM大厂篇之JVM大厂面试题及答案解析(4)(最新)
- Java面试题–JVM大厂篇之JVM大厂面试题及答案解析(3)(最新)
- Java面试题–JVM大厂篇之JVM大厂面试题及答案解析(2)(最新)
- Java面试题–JVM大厂篇之JVM大厂面试题及答案解析(1)(最新)
- Java 面试题 ——JVM 大厂篇之 Java 工程师必备:顶尖工具助你全面监控和分析 CMS GC 性能(2)(最新)
- Java面试题–JVM大厂篇之Java工程师必备:顶尖工具助你全面监控和分析CMS GC性能(1)(最新)
- Java面试题–JVM大厂篇之未来已来:为什么ZGC是大规模Java应用的终极武器?(最新)
- AI 音乐风暴:创造与颠覆的交响(最新)
- 编程风暴:勇破挫折,铸就传奇(最新)
- Java面试题–JVM大厂篇之低停顿、高性能:深入解析ZGC的优势(最新)
- Java面试题–JVM大厂篇之解密ZGC:让你的Java应用高效飞驰(最新)
- Java面试题–JVM大厂篇之掌控Java未来:深入剖析ZGC的低停顿垃圾回收机制(最新)
- GPT-5 惊涛来袭:铸就智能新传奇(最新)
- AI 时代风暴:程序员的核心竞争力大揭秘(最新)
- Java面试题–JVM大厂篇之Java新神器ZGC:颠覆你的垃圾回收认知!(最新)
- Java面试题–JVM大厂篇之揭秘:如何通过优化 CMS GC 提升各行业服务器响应速度(最新)
- “低代码” 风暴:重塑软件开发新未来(最新)
- 程序员如何平衡日常编码工作与提升式学习?–编程之路:平衡与成长的艺术(最新)
- 编程学习笔记秘籍:开启高效学习之旅(最新)
- Java面试题–JVM大厂篇之高并发Java应用的秘密武器:深入剖析GC优化实战案例(最新)
- Java面试题–JVM大厂篇之实战解析:如何通过CMS GC优化大规模Java应用的响应时间(最新)
- Java面试题–JVM大厂篇(1-10)
- Java面试题–JVM大厂篇之Java虚拟机(JVM)面试题:涨知识,拿大厂Offer(11-20)
- Java面试题–JVM大厂篇之JVM面试指南:掌握这10个问题,大厂Offer轻松拿
- Java面试题–JVM大厂篇之Java程序员必学:JVM架构完全解读
- Java面试题–JVM大厂篇之以JVM新特性看Java的进化之路:从Loom到Amber的技术篇章
- Java面试题–JVM大厂篇之深入探索JVM:大厂面试官心中的那些秘密题库
- Java面试题–JVM大厂篇之高级Java开发者的自我修养:深入剖析JVM垃圾回收机制及面试要点
- Java面试题–JVM大厂篇之从新手到专家:深入探索JVM垃圾回收–开端篇
- Java面试题–JVM大厂篇之Java性能优化:垃圾回收算法的神秘面纱揭开!
- Java面试题–JVM大厂篇之揭秘Java世界的清洁工——JVM垃圾回收机制
- Java面试题–JVM大厂篇之掌握JVM性能优化:选择合适的垃圾回收器
- Java面试题–JVM大厂篇之深入了解Java虚拟机(JVM):工作机制与优化策略
- Java面试题–JVM大厂篇之深入解析JVM运行时数据区:Java开发者必读
- Java面试题–JVM大厂篇之从零开始掌握JVM:解锁Java程序的强大潜力
- Java面试题–JVM大厂篇之深入了解G1 GC:大型Java应用的性能优化利器
- Java面试题–JVM大厂篇之深入了解G1 GC:高并发、响应时间敏感应用的最佳选择
- Java面试题–JVM大厂篇之G1 GC的分区管理方式如何减少应用线程的影响
- Java面试题–JVM大厂篇之深入解析G1 GC——革新Java垃圾回收机制
- Java面试题–JVM大厂篇之深入探讨Serial GC的应用场景
- Java面试题–JVM大厂篇之Serial GC在JVM中有哪些优点和局限性
- Java面试题–JVM大厂篇之深入解析JVM中的Serial GC:工作原理与代际区别
- Java面试题–JVM大厂篇之通过参数配置来优化Serial GC的性能
- Java面试题–JVM大厂篇之深入分析Parallel GC:从原理到优化
- Java面试题–JVM大厂篇之破解Java性能瓶颈!深入理解Parallel GC并优化你的应用
- Java面试题–JVM大厂篇之全面掌握Parallel GC参数配置:实战指南
- Java面试题–JVM大厂篇之Parallel GC与其他垃圾回收器的对比与选择
- Java面试题–JVM大厂篇之Java中Parallel GC的调优技巧与最佳实践
- Java面试题–JVM大厂篇之JVM监控与GC日志分析:优化Parallel GC性能的重要工具
- Java面试题–JVM大厂篇之针对频繁的Minor GC问题,有哪些优化对象创建与使用的技巧可以分享?
- Java面试题–JVM大厂篇之JVM 内存管理深度探秘:原理与实战
- Java面试题–JVM大厂篇之破解 JVM 性能瓶颈:实战优化策略大全
- Java面试题–JVM大厂篇之JVM 垃圾回收器大比拼:谁是最佳选择
- Java面试题–JVM大厂篇之从原理到实践:JVM 字节码优化秘籍
- Java面试题–JVM大厂篇之揭开CMS GC的神秘面纱:从原理到应用,一文带你全面掌握
- Java面试题–JVM大厂篇之JVM 调优实战:让你的应用飞起来
- Java面试题–JVM大厂篇之CMS GC调优宝典:从默认配置到高级技巧,Java性能提升的终极指南
- Java面试题–JVM大厂篇之CMS GC的前世今生:为什么它曾是Java的王者,又为何将被G1取代
- Java就业-学习路线–突破性能瓶颈: Java 22 的性能提升之旅
- Java就业-学习路线–透视Java发展:从 Java 19 至 Java 22 的飞跃
- Java就业-学习路线–Java技术:2024年开发者必须了解的10个要点
- Java就业-学习路线–Java技术栈前瞻:未来技术趋势与创新
- Java就业-学习路线–Java技术栈模块化的七大优势,你了解多少?
- Spring框架-Java学习路线课程第一课:Spring核心
- Spring框架-Java学习路线课程:Spring的扩展配置
- Springboot框架-Java学习路线课程:Springboot框架的搭建之maven的配置
- Java进阶-Java学习路线课程第一课:Java集合框架-ArrayList和LinkedList的使用
- Java进阶-Java学习路线课程第二课:Java集合框架-HashSet的使用及去重原理
- JavaWEB-Java学习路线课程:使用MyEclipse工具新建第一个JavaWeb项目(一)
- JavaWEB-Java学习路线课程:使用MyEclipse工具新建项目时配置Tomcat服务器的方式(二)
- Java学习:在给学生演示用Myeclipse10.7.1工具生成War时,意外报错:SECURITY: INTEGRITY CHECK ERROR
- 使用Jquery发送Ajax请求的几种异步刷新方式
- Idea Springboot启动时内嵌tomcat报错- An incompatible version [1.1.33] of the APR based Apache Tomcat Native
- Java入门-Java学习路线课程第一课:初识JAVA
- Java入门-Java学习路线课程第二课:变量与数据类型
- Java入门-Java学习路线课程第三课:选择结构
- Java入门-Java学习路线课程第四课:循环结构
- Java入门-Java学习路线课程第五课:一维数组
- Java入门-Java学习路线课程第六课:二维数组
- Java入门-Java学习路线课程第七课:类和对象
- Java入门-Java学习路线课程第八课:方法和方法重载
- Java入门-Java学习路线扩展课程:equals的使用
- Java入门-Java学习路线课程面试篇:取商 / 和取余(模) % 符号的使用
🗳️参与投票和与我联系: