这是有关Hazelcast的一系列文章中的第六篇。 如果一个人没有看过过去的五年,请到表中的内容后 ,我创建赶上。
本地客户
在上一篇文章之后,我决定要去本地化。 是的,我将演示Hazelcast自己的Java客户端。 Java不是唯一的本地客户端语言,C ++和C#风格可用于企业版。
为什么要本地化?
这是一个好问题。 本地客户可以将其固定在一条产品线中,而没有机会逃脱。 Hazelcast通过以下方式奖励本地人:
- 客户端是集群的一部分。 这意味着人们可以创建存储数据的场所,并监听集群中发生的事件。 这也意味着我之前的文章中讨论的所有技巧都可以用作客户端。 此优势不可低估。
- 配置文件类似。 这意味着不必从Hazelcast配置文件转换为客户端配置文件。 一个人可以复制文件,就像魔术一样起作用。 翻译要做的越少,丢失的内容就越少。
任何客户的经验法则
Hazelcast客户是我有幸设置和使用的最简单的客户端。
例
这个简单的示例是上一篇文章开始的主题的延续,缓存了昂贵的操作。
Pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.darylmathison</groupId>
<artifactId>HazelcastJavaClient</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.darylmathison.hazelcastjavaclient.Main</mainClass>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-client</artifactId>
<version>3.3.2</version>
</dependency>
</dependencies>
</project>
客户
该客户端成为集群的一部分,创建一个名为“ fibmap”的IMap。 如果以前没有计算过斐波那契结果,则将其存储在地图中。 如果运行一次客户端,则结果存储在fibmap中。 第二次运行客户端时,将显示缓存的值。
package com.darylmathison.hazelcastjavaclient;
import com.hazelcast.client.HazelcastClient;
import com.hazelcast.core.HazelcastInstance;
import java.util.Map;
/**
*
* @author Daryl
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
HazelcastInstance instance = HazelcastClient.newHazelcastClient();
Map<Long, Long> cacheMap = instance.getMap("fibmap");
for(long i = 1; i <= 10L; i++) {
System.out.println("value is " + fibonacci(i, cacheMap));
}
instance.shutdown();
}
private static long fibonacci(long rounds, Map<Long, Long> cacheMap) {
Long cached = cacheMap.get(rounds);
if(cached != null) {
System.out.print("cached ");
return cached;
}
long[] lastTwo = new long[] {1, 1};
for(int i = 0; i < rounds; i++) {
long last = lastTwo[1];
lastTwo[1] = lastTwo[0] + lastTwo[1];
lastTwo[0] = last;
}
cacheMap.put(rounds, lastTwo[1]);
return lastTwo[1];
}
}
结论
在本文中,我讨论了使用Hazelcast的本机Java客户端的原因。 我还展示了一个简单的示例。 该代码可以在这里找到。
参考
当谈到《 Hazelcast入门指南》时。 我一直在浏览www.hazelcast.com和www.hazelcast.org 。
翻译自: https://www.javacodegeeks.com/2015/02/beginners-guide-hazelcast-part-6.html