# apache-ignite-demo **Repository Path**: wei311525/apache-ignite-demo ## Basic Information - **Project Name**: apache-ignite-demo - **Description**: ignite demo - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-14 - **Last Updated**: 2025-05-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Apache Ignite ### Apache Ignite 是一个高性能的内存计算平台,旨在提供快速的数据处理和分析能力,适用于实时计算、分布式系统和大数据场景。以下是一个简单的 Apache Ignite 示例,涵盖其核心功能,帮助您快速了解其强大之处。 1. 快速入门:创建一个简单的 Ignite 应用 Apache Ignite 的核心功能之一是内存数据网格(In-Memory Data Grid),可以将数据存储在内存中,实现极低的延迟访问。以下是一个简单的 Java 示例,展示如何使用 Ignite 创建一个键值存储: ```java import org.apache.ignite.Ignite; import org.apache.ignite.Ignition; import org.apache.ignite.configuration.IgniteConfiguration; public class IgniteDemo { public static void main(String[] args) { // 创建 Ignite 实例 Ignite ignite = Ignition.start(new IgniteConfiguration()); // 获取或创建一个名为 "myCache" 的缓存 ignite.getOrCreateCache("myCache"); // 存储键值对 ignite.cache("myCache").put("key1", "value1"); // 获取值 String value = ignite.cache("myCache").get("key1"); System.out.println("Retrieved value: " + value); // 关闭 Ignite 实例 ignite.close(); } } ``` 这个示例展示了如何快速启动 Ignite 实例、创建缓存、存储和查询数据。Ignite 的内存存储特性使得这些操作几乎实时完成。 2. 分布式计算:利用计算网格 Ignite 的另一个核心功能是计算网格(Compute Grid),可以将任务分发到集群中的节点进行并行处理。以下是一个简单的任务分发示例: ```java import org.apache.ignite.Ignite; import org.apache.ignite.Ignition; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.compute.ComputeTask; public class IgniteTaskDemo { public static void main(String[] args) { Ignite ignite = Ignition.start(new IgniteConfiguration()); // 定义一个简单的任务 ComputeTask task = new ComputeTask() { @Override public Object execute() throws Exception { return "Hello from Ignite!"; } }; // 提交任务并获取结果 Object result = ignite.compute().execute(task); System.out.println("Task result: " + result); ignite.close(); } } ``` 通过计算网格,您可以轻松实现任务的分布式执行,适用于需要高性能计算的场景。 3. 支持 SQL 和事务 Ignite 支持标准的 SQL 查询,可以方便地对内存中的数据进行操作。以下是一个使用 SQL 查询的示例: ```java import org.apache.ignite.Ignite; import org.apache.ignite.Ignition; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.sql.SqlFieldsQuery; import java.sql.ResultSet; public class IgniteSqlDemo { public static void main(String[] args) { Ignite ignite = Ignition.start(new IgniteConfiguration()); // 创建一个包含 SQL 支持的缓存 ignite.getOrCreateCache("myCache").query(new SqlFieldsQuery( "CREATE TABLE Person (" + "id LONG PRIMARY KEY, " + "name VARCHAR, " + "age INT)" )); // 插入数据 ignite.cache("myCache").query(new SqlFieldsQuery( "INSERT INTO Person VALUES (1, 'Alice', 30)" )); // 查询数据 ResultSet rs = ignite.cache("myCache").query(new SqlFieldsQuery( "SELECT * FROM Person WHERE age > 25" )).getAll(); while (rs.next()) { System.out.println("ID: " + rs.getLong(1) + ", Name: " + rs.getString(2) + ", Age: " + rs.getInt(3)); } ignite.close(); } } ``` 这个示例展示了如何在 Ignite 中使用 SQL 创建表、插入数据和查询数据。Ignite 还支持事务(ACID),确保数据一致性。 4. 流处理与机器学习 Ignite 还支持流处理和机器学习功能。例如,您可以使用 Ignite 的流 API 处理实时数据流,或者使用其机器学习库(Ignite ML)训练和部署模型。 以下是一个简单的流处理示例: ```java import org.apache.ignite.Ignite; import org.apache.ignite.Ignition; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.stream.StreamReceiver; public class IgniteStreamDemo { public static void main(String[] args) { Ignite ignite = Ignition.start(new IgniteConfiguration()); // 创建一个流接收器 StreamReceiver receiver = new StreamReceiver() { @Override public void onEvent(String event) { System.out.println("Received event: " + event); } }; // 注册流接收器 ignite.stream().registerReceiver("myStream", receiver); // 发送事件 ignite.stream().send("myStream", "Hello Ignite!"); ignite.close(); } } ``` 总结 通过以上示例,您可以看到 Apache Ignite 的强大功能,包括内存存储、分布式计算、SQL 支持、流处理和机器学习等。它适用于金融、电商、物联网等多种场景,能够帮助您构建高性能、高扩展性的实时应用。