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

在本文中,我们将更进一步,让您完成第一个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>

第四步。
在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内存之间的区别。 还要注意,为了使示例尽可能简单,我们在此程序中未使用任何与弹簧相关的配置。

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

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

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

相关文章

华测数据导出方法_输电线路塔基测量成图方法研究与应用

1.前言塔基测量成图软件是EATool第一个电力勘测模块&#xff0c;也是笔者个人刚参加工作时开发的第一个与工作直接相关的软件。该模块开发开始于2010年&#xff0c;于2012基本成型。记得第一次参加线路工程终勘定位&#xff0c;对于老员工的塔基断面测量模式有着诸多疑惑&#…

MQ在计算机组成,[转载]计算机组成框图-计算机运行流程(例子)

计算机组成框图-计算机运行流程ACC(Accumulator)&#xff1a; 累加器MQ(Multiplier-Quotient Register)&#xff1a;乘商寄存器ALU&#xff1a;算术逻辑单元X&#xff1a;操作数寄存器CU&#xff1a;控制单元IR(Instruction Register)&#xff1a;指令寄存器(用于存放当前指令)…

提交时是使用防抖还是节流_使用BlockingExecutor进行节流任务提交

提交时是使用防抖还是节流JDK的java.util.concurrent.ThreadPoolExecutor允许您将任务提交到线程池&#xff0c;并使用BlockingQueue来保存提交的任务。 如果要提交的任务有数千个&#xff0c;请指定一个“绑定”队列&#xff08;即最大容量的队列&#xff09;&#xff0c;否则…

计算机硬盘怎么设置ntfs,Windows7系统如何把磁盘格式转换为NTFS的方法

今天朋友匆匆忙忙来找我&#xff1a;他的电脑因为某种情况&#xff0c;需要吧磁盘转换成ntfs格式&#xff0c;该怎么转换?Win7系统、利用系统自带工具转换1.我们打开我们的电脑磁盘&#xff0c;大家发现小编的电脑G盘是FAT32格式的&#xff0c;小编现在要把G盘转换为NTFS格式。…

ace unlck工具下载_压缩工具:WinRAR 曝出代码执行漏洞,该升级了

作为享誉全球的装机必备工具&#xff0c;「压缩软件」这四个字基本可以认为是 WinRAR 的专有名字了。只要有 PC 的地方&#xff0c;几乎都能看到 WinRAR 的身影。不过这款软件最近却被曝出了一个有19年历史的代码执行漏洞。WinRAR 宣称在全球拥有超过5亿的用户&#xff0c;目前…

可重复使用的MicroProfile Health探针

MicroProfile Health API是一个非常基本的API&#xff0c;它基于一个或多个Health Probe报告您的服务状态。 这在某些服务器或群集控制器需要决定是否以及何时重新启动实例的情况下非常有用。 在应用程序中使用MicroProfile Health API就像实现一个&#xff08;或多个&#xf…

关于计算机航天生物的想像作文,未来的航天器想象作文750字

未来的航天器想象作文750字到了2999年&#xff0c;人类发明出了一种新型的航天器。这种航天器机身类似我们现在的轿车&#xff0c;机身长10米&#xff0c;高度最高达4&#xff0c;最低达0.5米&#xff0c;材料是来自外星的软体金属&#xff0c;上面有一条会发光的物体&#xff…

哈罗单车怎么关锁还车_记者体验临沂共享单车定点还车 停错地方关不上锁

共享单车在给市民出行带来便利的同时&#xff0c;也引发了停放秩序混乱、妨碍市民通行等问题&#xff0c;为规范共享单车停放&#xff0c;兰山区在临沂市率先试点共享单车定点停放&#xff0c;并在特定区域施划共享单车定点停放区。据悉&#xff0c;临沂市兰山区第一批272个共享…

船舶导航软件测试,北斗卫星船舶定位及信息通信应用

《北斗卫星船舶定位及信息通信应用》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《北斗卫星船舶定位及信息通信应用(9页珍藏版)》请在人人文库网上搜索。1、海上船舶监控管理系统一、用户需求通过舰艇中的北斗终端机实时传输经纬度坐标&#xff0c;依托电子海图实时…

工业机器人 答案 韩建海_中国将连续8年成为工业机器人第一大市场,还将持续多久?...

2020年&#xff0c;中国工业机器人销售量&#xff0c;将会由负转正&#xff0c;销量预计再次突破15万台。2019年&#xff0c;约为14.4万台的销量。2013年——2020年中国工业机器人销量这已经是第八个年头&#xff0c;中国位居全球工业机器人销量第一大市场。工业机器人打磨工作…

java命令行参数工具_Java方法中的参数太多,第8部分:工具

java命令行参数工具在我的系列文章的前七篇文章中&#xff0c;有关处理Java方法中期望的参数过多的内容集中在减少方法或构造函数期望的参数数量的替代方法上。 在本系列的第八篇文章中&#xff0c;我将介绍一些工具&#xff0c;这些工具可帮助您确定可能存在过多参数的情况&am…

计算机电路的基本罗门,模拟电路设计经验12条

原标题&#xff1a;模拟电路设计经验12条模拟电路的设计是工程师们最头疼、但也是最致命的设计部分&#xff0c;尽管目前数字电路、大规模集成电路的发展非常迅猛&#xff0c;但是模拟电路的设计仍是不可避免的&#xff0c;有时也是数字电路无法取代的&#xff0c;例如&#xf…

工具 每分钟_black: 一个不妥协的Python代码格式化工具

代码可读性是评判代码质量的标准之一&#xff0c;有一个衡量代码质量的标准是 Martin 提出的 “WFT” 定律&#xff0c;即每分钟爆出 “WTF” 的次数。你在读别人代码或者做 Code Review 的时候有没有 “WTF” 冲动呢&#xff1f;为了帮助开发者统一代码风格&#xff0c;Python…

使用Spring Rest和Spring Data JPA和H2以及Spring Boot示例的Restful API

你好朋友&#xff0c; 在本教程中&#xff0c;您将学习以下内容&#xff1a; 1.在Spring Boot中配置Spring Rest&#xff0c;Spring Data JPA和H2 2.使用Spring Boot创建Springful服务端点的Spring Rest&#xff0c;Spring Data JPA和H2的示例 3.使用Swagger测试Restful端点…

计算机IP地址pin,打印机的ip地址在机身上哪里,打印机的pin在哪看

打印机的ip地址在机身上哪里&#xff0c;打印机的pin在哪看时间&#xff1a;2021-04-19 10:38:04打印机是我们日常工作中必备的公办用品&#xff0c;但是对于刚接触打印机的电脑小白来说&#xff0c;打印机的网络设置可不简单&#xff0c;比如IP地址、pin码&#xff0c;他们可能…

开机启动失败_电脑常见开机引导错误的解决方法

电脑在开机启动过程中&#xff0c;经常会出现开机失败的故障&#xff0c;开机失败比较常出现在开机引导项错误的问题上&#xff0c;比如引导文件没了&#xff0c;硬盘有问题等等&#xff0c;有些小问题重启几遍可以解决&#xff0c;有些问题就只能修复。这边小编跟大家整理分享…

2020非全日计算机博士,在职攻读博士是不是非常难,免考在职博士和非全日博士有什么不同...

博士的含金量我们自然不容忽视&#xff0c;但博士又不是说三天打鱼两天晒网就可搞定的&#xff0c;都是要经过长久的沉淀以及耐心才能坚持下来的&#xff0c;博士少说也要读个四到五年方可毕业&#xff0c;但也有个别优秀的三年内就完成学业待着自己的成功找到了丰厚的薪资待遇…

cru使用教程_教程|Crust 测试网 Maxwell 1.0 用户指南

“Crust 实现了去中心化存储的激励层协议&#xff0c;适配包括 IPFS 在内的多种存储层协议&#xff0c;并对应用层提供支持。同时 Crust 的架构也有能力对去中心化计算层提供支持&#xff0c;构建分布式云生态。”Crust Network 首个公开测试网——Maxwell 1.0 版本正式上线&am…

分数乘法计算机题,《分数乘法》测试题

第1篇&#xff1a;《分数乘法》测试题一、填空&#xff1a;1、3/103/103/10()/()()/()7/207/207/207/20()/()()/()2、选择“&#xff1e;、&#xff1c;或&#xff1d;”。1/410&#xff1e;&#xff1c;1/43/51&#xff1e;&#xff1c;3/57/120&#xff1e;&#xff1c;7/127…

Hibernate事实:有利于双向集vs列表

Hibernate是一个很棒的ORM工具&#xff0c;它极大地简化了开发&#xff0c;但是如果您想正确地使用它&#xff0c;则有很多陷阱。 在大中型项目中&#xff0c;双向父子关联非常常见&#xff0c;这使我们能够浏览给定关系的两端。 在控制关联的持久/合并部分时&#xff0c;有两…