- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经阅读了 Hazelcast 文档 ( http://hazelcast.org/docs/latest/manual/html ),直到分布式计算部分,但我不清楚某些基本概念。我希望使用 IExecutorService 将多个 Runnable 或 Callable 实例发送到本地计算机上的多个线程和集群中的其他计算节点。我有几个问题:
谢谢!
最佳答案
我与 Hazelcast 的人员进行了交谈,发现我对其工作原理存在一些根本性的误解。我不明白您必须通过在计算节点上运行“com.hazelcast.examples.StartServer”来像服务或守护进程一样部署 Hazelcast。这就是节点如何了解彼此并相互作用的方式。 Hazelcast zip 包含一些用于此目的的批处理和 shell 脚本。也许这对其他人来说是显而易见的,但我没有在文档中找到任何明确说明这一点的内容。我从文档中得到的只是将 jar 放在类路径中,这使我可以访问所有类和方法。我不知道应该如何准备计算节点以相互了解。
我上面的前两个问题来自 Hazelcast 文档,在分布式计算部分的第一个示例中,他们在 Callable 内部创建了一个新的 Hazelcast 实例。我不知道他们为什么这样做,但这对我来说是极大的误导。我认为这意味着我需要创建一个新的 Hazelcast 实例并将其与每个线程关联。
上面的 Pveentjer 回答了问题 3。答案基本上是,是的,如果你愿意的话。
问题 4 只是因为我对 Hazelcast 的工作原理感到困惑。基本上,Hazelcast 实例和线程之间并不像我想象的那样存在一对一的映射。每个 Hazelcast 实例都已经是多线程的,因此无需出于并行处理原因在一个节点上创建多个实例(但您可能出于其他原因(堆空间限制等)而想要这样做。当然,您绝对可以这样做)必须在所有计算节点上部署 Hazelcast(我使用上面提到的 StartServer)。
简而言之,我只需简单地即可轻松创建计算集群
1) 将 Hazelcast jar 放入主节点上的类路径中(或将其包含在我的 Eclipse 项目中)
2) 使用批处理文件和 StartServer 调用在计算节点上部署 Hazelcast
3) 创建一个 Runnable 并使其可序列化(及其所有依赖项)
4) 在 Main() 方法中创建 Hazelcast 实例并获取 IExecutorService 来执行我的 Runnable 实例
唯一重要的步骤是确保在计算节点上部署 StartServer 时,将 Hazelcast jar 以及包含 Runnable 定义及其依赖的所有类的所有 jar 放入类路径中.
下面是一个简单的例子:
public class myRunnable implements Runnable, Serializable {
myTestClass mclass;
public myRunnable(){
mclass = new myTestClass();
}
@Override
public void run(){
try {
System.out.println("Putting thread to sleep for 5 seconds");
Thread.sleep(5000);
}
catch(Exception e){
e.printStackTrace();
}
System.out.println("\nTesting MyRunnable on Thread: " + Thread.currentThread().getName());
}
}
然后定义Runnable所依赖的类:
public class myTestClass implements Serializable{
List<Double> list = new ArrayList<Double>(10);
public void myTestClass(){
for (int i = 0; i < 10; i++)
list.add( (double) i);
}
}
并创建一个 Hazelcast 实例和 IExecutorService 来执行
public class TestHazelCast {
public static void main(String[] args) {
Config cfg = new Config();
HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);
IExecutorService exec = instance.getExecutorService("exec");
for (int i = 0 ; i < 7; i++){
exec.execute(new myRunnable());
}
}
}
然后使用以下内容在计算节点上部署 Hazelcast 以及适当的 jar:
java -server -Xms1G -Xmx1G -cp "../lib/hazelcast-3.2.2.jar;../lib/AllMyClasses.jar" com.hazelcast.examples.StartServer
关于java - Hazelcast 分布式计算的基本概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24520921/
我在 docs 中找不到这个或 javadocs : 我是否需要为每个线程创建一个客户端,或者是由以下人员创建的客户端: client = HazelcastClient.newHazelcastCl
据我所见,Hazelcast 的应用最常见于具有 50 多个节点的架构中。在 1 到 4 节点架构上使用 Hazelcast 是否有意义?如果是,我应该遵循的关于分区和 hazelcast 实例的最佳
在 hazelcast 文档中有一些对名为“default”的缓存的简短引用 - 例如,此处: http://docs.hazelcast.org/docs/3.6/manual/html-singl
我们正在针对我们的一个用例评估 Hazelcast,我对 Hazelcast 中的复制有疑问。 在 http://docs.hazelcast.org/docs/latest-development/
Hazelcast 是否会延迟创建主题。在下面的示例中,我们调用 getTopic('default')。如果默认主题不存在,Hazelcast 会自动创建它吗? 这是否意味着没有理由初始化宇宙中所有
我正在研究hazelcast用于以多播方式查找主节点的算法。首先我找到了查找主节点的函数:com.hazelcast.cluster.MulticastJoiner.findMasterWithMul
我正在查看 Hazelcast 的文档,我注意到驱逐政策的差异,并且我注意到其中一个我并不完全理解。 map_size_per_jvm: Max map size per JVM. partition
我已经编写了用于缓存的 hazelcast 缓存框架,并通过构造函数注入(inject)专门编写了一个用于缓存的 hazelcast 服务器。只是想知道 IMap 对象存储在哪里?它是在我的 haze
我们的服务器端解决方案利用 Hazelcast 提供的分布式数据结构来提供与居住在特定集群成员上的实体相关的可用状态。 当一个集群成员加入或离开集群时,我们需要让其他集群节点知道“发生了什么变化”:例
我的 Spring 应用程序由十几个微服务组成。每个微服务都提供不经常更改的数据。为了减少微服务之间的通信,我正在考虑开始使用 Hazelcast。 我的想法是每个微服务都会嵌入 Hazelcast。
我需要使用 csv/平面文件在 hazelcast 中加载 3 亿条记录(每条记录 60KB)。以最快的方式加载所有这些数据的最佳方法是什么?我可以逐条读取记录并在 hazelcast 中执行 map
我正在探索使用 Hazelcast(或任何其他缓存框架)在集群内宣传服务的概念。理想情况下,当集群成员离开时,其服务(或宣传它们的对象)应从缓存中删除。 这全部可能吗? 最佳答案 这是肯定有可能的。
我刚刚开始使用 hazelcast [3.3.1]。按照 hazelcast 应用程序和客户端教程,我创建了一个 hazelcast 应用程序实例和一个客户端(使用 eclipse IDE)。 从客户
出于测试目的,我想在单个节点上运行多个 Hazelcast 实例。 Hazelcast 假定它正在管理整个节点,因此它创建了足够多的线程来完全(实际上是过度)加载所有内核。在我的 8 核 Linux
我使用 IP 127.0.0.1 和端口 5701 启动 Hazelcast。为什么它尝试连接另外两个端口 5702 和 5703?它们的用途是什么,为什么无法连接? 以下是我以编程方式配置的方式:
我使用 启动了 hazelcast 服务器 java -jar hazelcast-3.10.1/lib/hazelcast-3.10.1.jar 服务器启动于 Members {size:1
最近阅读 JSR-107 和 JCache。 想知道 Hazelcast 或 Ehcache 是否遵循此 JSR? 最佳答案 JSR107 (JCache) 取得了良好的进展,我们已经通知规范委员会
背景 Hazelcast 集群的两个节点,每个节点都位于一个离散的子网上,因此多播不适合也不适合节点定位。 我想使用最简单的 XML 配置文件(例如 hazelcast.xml)来配置 Hazelca
我正在创建一个始终启动并运行的服务(ReST)。因此,在这个服务中,我从 spring 上下文中调用 init 方法,该方法会访问数据库并将所需的数据加载到 hazelcast 实例中。 现在我必须确
当我的java服务启动时,我从数据库中获取字符串列表,因此将它们缓存在hazelcast中,键是字符串列表,值(例如)100。可能有多个具有不同值的列表。这个想法是,下次当我的方法接收 String
我是一名优秀的程序员,十分优秀!