apache ignite_Apache Ignite变得简单:第一个Java应用程序

apache ignite

在本文中,我们将更进一步,让您完成第一个Ignite应用程序的创建,以从分布式缓存中进行读写操作。 作为第一个示例,我们将尽可能简单地向您展示如何用Java编写用于处理Apache Ignite集群数据的应用程序。

可从GitHub存储库(第二章)中获得本节中显示的应用程序。 您可以从GitHub克隆或下载项目,使用Maven编译应用程序并在工作站中运行它。 但是,如果您想手动输入程序,则可以随意输入。 在这种情况下,您必须使用文本编辑器而不是文字处理器将程序输入计算机。

您遵循以下三个步骤:

1.启动Ignite节点。
2.创建一个mvn项目或输入程序。
3.编译程序。 4.运行程序。 步骤1 。 如果尚未启动Apache Ignite单节点集群,请启动它。 在您喜欢的终端中使用以下命令。

$ IGNITE_HOME/bin/ignite.sh

第二步
使用以下命令创建一个maven项目。 如果您从GitHub下载项目,请跳过此步骤。

mvn archetype:generate -DartifactId=chapter-two -DgroupId=com.blu.imdg -DarchetypeArtifac\ tId=maven-archetype-quickstart -DinteractiveMode=false

上面的命令将创建一个目录,该目录具有与artifactId相同的名称。 切换到第二章目录。 在此目录下,您将找到以下标准项目结构。

点燃应用

src / main / java目录包含项目源代码,src / test / java目录包含测试源,而pom.xml是项目的项目对象模型或POM。 pom.xml文件是Maven中项目配置的核心。 它是一个配置文件,其中包含编译和运行Java程序的所有必需信息。 pom.file可能很复杂,但是不必为了有效地使用它而了解所有复杂性。

第三步
将以下Ignite Maven依赖项添加到pom.xml文件中。

<dependency> 
<groupId>org.apache.ignite</groupId> 
<artifactId>ignite-core</artifactId> 
<version>${ignite.version}</version> 
</dependency>

另外,将项目属性部分添加到pom.xml文件中,如下所示。

<properties> 
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
<ignite.version>2.4.0</ignite.version>
</properties>

您可以使用Maven从命令行运行该应用程序。 另外,您可以构建一个包含所有必要依赖项,类和资源的单个可执行JAR文件,然后运行该应用程序。 这使得在整个开发生命周期中,跨不同环境等等的情况下,都可以轻松地将服务作为应用程序进行发布,版本控制和部署。 在pom.xml的plugin部分中再添加两个插件,以创建一个
胖的可执行jar,可有效运行应用程序。

<build> <plugins> 
<plugin>
<groupId>com.jolira</groupId> <artifactId>onejar-maven-plugin</artifactId> <version>1.4.4</version>
<executions> 
<execution> <id>build-query</id> <configuration> 
<mainClass>com.blu.imdg.HelloIgnite</mainClass> <attachToBuild>true</attachToBuild> <classifier>onejar</classifier> <filename>HelloIgnite-runnable.jar</filename> 
</configuration> <goals> 
<goal>one-jar</goal> </goals> 
</execution> </executions> 
</plugin> </plugins>
</build>

第4步。
在src / main / java / com / blu / imdg目录中,您可以添加所需的任何Java类。

为了与本指南的其余部分保持一致,请创建以下Java类:这些目录中的HelloIgnite。

package com.blu.imdg;
public class HelloIgnite { }

步骤5
在package语句之后添加以下所有库。

import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.Ignition;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder

步骤6
现在您已经有了一个Java类,将以下代码行复制到该类中。

public static void main(String[] args) {
System.out.println("Hello Ignite");
// create a new instance of TCP Discovery SPI
TcpDiscoverySpi spi = new TcpDiscoverySpi();
// create a new instance of tcp discovery multicast ip finder TcpDiscoveryMulticastIpFinder tcMp = new TcpDiscoveryMulticastIpFinder(); tcMp.setAddresses(Arrays.asList("localhost")); // change your IP address here // set the multi cast ip finder for spi
spi.setIpFinder(tcMp);
// create new ignite configuration
IgniteConfiguration cfg = new IgniteConfiguration(); cfg.setClientMode(true);
// set the discovery spi to ignite configuration 
cfg.setDiscoverySpi(spi);
// Start ignite
Ignite ignite = Ignition.start(cfg);
// get or create cache
IgniteCache < Integer, String > cache = ignite.getOrCreateCache("HelloWorld"); // put some cache elements
for (int i = 1; i <= 100; i++) { 
cache.put(i, Integer.toString(i)); } 
// get them from the cache and write to the console 
for (int i = 1; i <= 100; i++) { System.out.println("Cache get:" + cache.get(i)); 
} 
// close ignite instance
ignite.close(); 
}

对Java有一定编程经验的人都应该熟悉该程序。 让我们仔细检查程序的每个部分。 它具有main()方法,程序将在该方法处开始执行。 所有Java程序都通过调用main()方法开始执行。 main()方法中代码的下一行输出字符串Hello Ignite。 接下来,我们创建了TCP Discovery SPI的实例,并在其上设置了多播IP查找程序实例。

稍后,我们为SPI设置了多播IP查找程序。 当TCP发现开始时,此查找器将发送多播请求,并在其他节点用包含其地址的消息答复此请求时等待一段时间。 然后,我们创建了一个Ignite配置实例,并将发现SPI设置为该配置。

启动Ignite实例后,它与现有的Ignite群集一起作为客户端加入。 接下来,我们创建了一个名称为“ HelloWorld”的缓存,并将100个条目放入其中。 在for-each循环中,我们从缓存中读取了这100个条目并在控制台上打印。 最后,我们停止了Ignite客户端实例。

现在,您已经可以使用Maven构建一个项目,下一步就是构建和运行该应用程序。

步骤7
要尝试构建,请在命令行中发出以下命令。

$ mvn clean install

这将运行Maven,告诉它执行安装目标。 此目标将编译,测试和打包您的项目代码,然后将其复制到本地依赖项存储库中。 第一次构建过程需要几分钟才能完成,成功编译后,将在目标目录中创建一个可执行jar。

步骤8
通过键入以下命令来运行应用程序。

$ java -jar .\target\HelloIgnite-runnable.jar

您应该在终端中看到很多日志。 首先,将创建一个新的Ignite客户实例,它将连接到群集中的随机节点(在我们的示例中,只有一个单节点)。 在Ignite服务器节点控制台中,您应该看到如下所示的日志:

点燃应用

图1

另一方面,Apache Ignite客户端节点控制台按1到100打印缓存条目。

点燃应用

图2

让我们使用Ignite visor管理员控制台检查缓存条目。 Apache Ignite visor命令行工具为Ignite群集提供监视和管理功能。 使用以下命令对遮阳板工具进行午餐。

$ IGNITE_HOME/bin/ignitevisorcmd.sh

向visor命令工具发出以下命令。

cache -a

它将返回您的缓存“ HelloWorld”的缓存统计信息的详细信息,如下图所示。

点燃应用

图3

您会注意到总缓存大小为100,而Offheap大小也为100。从版本2.0.1开始,默认情况下,Apache Ignite将缓存条目存储到Offheap内存中。 在后面的章节中,我们将详细介绍Offheap内存以及Onheap和Offheap内存之间的区别。 还要注意,为了使示例尽可能简单,我们在此程序中未使用任何与Spring相关的配置。

翻译自: https://www.javacodegeeks.com/2018/10/apache-ignite-easy-java-application.html

apache ignite

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 命令之 sudo -- 以其他用户身份来执行命令

文章目录命令介绍原理相关文件通配符和命令 su 的比较常用选项几个重要选项的解读-k 选项-s 选项-i 选项su、sudo su、sudo -i 的区别查看日志文件参考示例以用户 mysql 的身份执行命令 pwd以用户 root 的身份执行命令 pwd以 root 的权限执行上一条命令以 root 的权限编辑指定的…

openjdk和jdk_JDK 11:发行候选更新和OpenJDK JDK 11 LTS

openjdk和jdkJDK 11 计划于 2018年9月25日星期二发布&#xff0c;以实现全面可用性 。OpenJDK jdk-dev邮件列表上的Mark Reinhold消息于2018 年8月16日宣布“ JDK 11现在处于发布候选阶段 。” 但是&#xff0c;Reinhold在2018年8月17日同一封邮件列表中的消息中提供了更新的详…

Linux系统通过文件/etc/sudoers设置用户使用sudo的权限/用户使用sudo的授权配置

文章目录sudo 权限配置说明如何修改 sudo 会话有效期设置输入密码时显示星&#xff08;*&#xff09;号别名规则如何定义别名及使用别名配置权限为什么配置的命令要使用绝对路径参考示例授权用户 test 可以重启服务器授权群组可以使用 sudo 切换成任何用户身份&#xff0c;执行…

system.gc 性能_使用这些先进的GC技术提高应用程序性能

system.gc 性能应用程序性能是我们关注的重点&#xff0c;垃圾收集优化是取得小而有意义的进步的好地方 自动化垃圾收集&#xff08;与JIT HotSpot编译器一起&#xff09;是JVM中最先进&#xff0c;最有价值的组件之一&#xff0c;但是许多开发人员和工程师对垃圾收集&#…

Linux 命令之 who -- 打印当前登录用户/显示目前登入系统的用户信息。

文章目录命令介绍常用选项参考示例打印用户登录信息打印全面的信息打印系统登录进程显示登录系统的所有用户名称和总人数命令介绍 who 命令用来打印当前登录用户信息&#xff0c;包含了系统的启动时间 、 活动进程 、 使用者 ID、使用终端等信息&#xff0c;是系统管理员了解系…

SpringCloud全局过滤器自定义

一、实现步骤&#xff1a; 在gateway_service工程编写全局过滤器类GlobalFilter,Ordered编写业务逻辑代码访问接口测试&#xff0c;加token和不加token。 二、业务逻辑代码 package com.william.filters;import org.springframework.cloud.gateway.filter.GatewayFilterChain…

Linux 命令之 whoami -- 打印当前有效的用户名称

文章目录命令介绍参考示例命令介绍 whoami 命令用于打印当前有效的用户名称&#xff0c;相当于执行 id -un 命令。 参考示例 [roothtlwk0001host ~]# whoami root

java流写入数据库_使用Java流查询数据库

java流写入数据库在本文中&#xff0c;您将学习如何编写纯Java应用程序&#xff0c;这些应用程序能够使用现有数据库中的数据&#xff0c;而无需编写一行SQL&#xff08;或类似的语言&#xff0c;如HQL&#xff09;&#xff0c;而无需花费数小时将所有内容放在一起。 准备好应用…

Linux 命令之 id -- 显示用户ID和组ID

文章目录命令介绍常用选项参考示例显示当前用户的用户id及所属用户组的信息显示用户所属群组的ID显示用户所属附加群组的ID显示指定用户信息命令介绍 id命令可以显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID&#xff08;GID&#xff09;则对应…

SpringCloud局部过滤器自定义

一、实现步骤&#xff1a; 在gateway_service中编写MyParamGatewayFilterFactory类实现业务代码&#xff1a;循环请求参数中是否包含name&#xff0c;如果包含则输出参数值修改配置文件访问请求测试&#xff0c;带name参数 二、在gateway_service中编写MyParamGatewayFilterF…

enum.values_占用内存的Enum.values()方法

enum.values我是Java 枚举的忠实拥护者 。 似乎我们一直在等待获得它&#xff0c;但是当我们最终获得它&#xff08; J2SE 5 &#xff09;时&#xff0c;该枚举比C和C 提供的枚举要好得多&#xff0c;对我来说似乎“ 值得等待” 。 与Java enum一样好&#xff0c;它也不是没有问…

搭建配置中心微服务

一、实现步骤&#xff1a; 创建配置中心SpringBoot项目config_server配置坐标依赖启动类添加开启配置中心服务注解配置服务中心application.yml文件启动测试 二、创建配置中心SpringBoot项目config_server 配置坐标依赖 需要依赖父工程 <?xml version"1.0" en…

Linux命令之 users -- 显示当前登录的用户

文章目录命令介绍参考示例查看当前登录的所有用户命令介绍 users 命令用于显示当前登录系统的所有用户的用户列表。每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话&#xff0c;那他的用户名将显示相同的次数。 参考示例 查看当前登录的所有用户 [rooth…

使用Spring Boot和H2可以正常工作的原型

我们确实在弹簧上使用了很多h2&#xff0c;特别是对于单元测试。 但是&#xff0c;我们可能希望有一个功能齐全的原型来显示数据&#xff0c;而不是进行单元测试。 H2是最理想的选择&#xff0c;它在spring上运行良好&#xff0c;与大多数数据库都具有良好的语法兼容性&#x…

服务去获取配置中心配置

目标&#xff1a;改造user_service工程&#xff0c;配置文件不再由微服务项目提供&#xff0c;而是从配置中心获取。 实现步骤&#xff1a; 添加配置中心客户端启动依赖修改服务提供者的配置文件启动服务测试效果 一、添加依赖 <!--spring cloud 配置中心--> <depe…

Linux查看用户信息/查看所有用户信息的命令

文章目录通过文件 /etc/passwd 来查看所有用户信息通过文件 /etc/shadow 查看所有用户信息使用 getent 命令查看所有用户信息使用 compgen 命令查看所有的用户信息相关文件/etc/passwd/etc/passwd 文件内容格式说明/etc/shadow/etc/group/etc/group 文件内容格式说明/etc/gshad…

graalvm_GraalVM上的Picocli:极快的命令行应用程序

graalvmGraalVM GraalVM允许您提前将程序编译为本地可执行文件。 与Java VM相比&#xff0c;生成的程序具有更快的启动时间和更低的运行时内存开销。 这对于通常寿命很短的命令行实用程序尤其有用。 GraalVM对Java反射的支持有限&#xff0c;它需要提前知道反射访问的程序元素…

Linux 命令之 getent -- 查看记录

文章目录命令介绍常用选项参考示例查看文件 /etc/protocols 中的所有记录查看指定用户组是否存在&#xff0c;若不存在则创建指定的用户组根据主机名称&#xff0c;查看对应的IP地址根据域名查找对应的IP根据用户名查找对应的UID获取当前登陆用户的信息根据UID查找用户名查找那…

运行SpringBoot时:Type javax.xml.bind.JAXBContext not present

原因和简单介绍 我有一些代码使用JAXB API类&#xff0c;它们是作为Java 6/7/8中JDK的一部分提供的。当我使用Java 9运行相同的代码时&#xff0c;在运行时我得到错误&#xff0c;指示无法找到JAXB类。 自Java 6以来&#xff0c;JAXB类已作为JDK的一部分提供&#xff0c;为什么…

Linux 命令之 chfn -- 修改用户信息

文章目录命令简介常用选项参考示例改变用户 root 的 finger 信息命令简介 chfn 命令的英文全称是 change finger&#xff0c;即用来改变 finger 命令显示的信息。这些信息都存放在 /etc/passwd 文件里。若不指定任何选项&#xff0c;则chfn 命令会进入问答式界面。 常用选项 …