apache ignite_使用Apache Ignite瘦客户端– Apach


从2.4.0版本开始,引入了一种连接到群集的新方法,该方法允许与群集进行通信而无需启动客户端节点 。从历史上看,提供了客户端和服务器节点两个概念 。点燃旨在用作轻量级模式的客户端节点,该节点不存储数据(但是它可以存储在高速缓存附近),并且不执行任何计算任务 。主要是,客户端节点用于与服务器进行远程通信,并允许使用整套 API来操纵缓存 。客户端节点有两个主要缺点:
为了解决上述问题,提供了一种新的二进制客户端协议,用于以任何编程语言或平台实现瘦客户端 。
请注意,“瘦”一词意味着,它不会启动任何与群集进行通信的节点,也不会实现任何发现/通信SPI逻辑 。
瘦客户端通过TCP套接字连接到群集,并使用定义明确的二进制协议执行CRUD操作 。该协议是完全基于套接字的请求-响应样式协议 。该协议被设计为足够严格以确保通信中的标准化(例如连接握手,消息长度等),但仍然足够灵活以使开发人员可以扩展该协议以实现自定义功能 。
在其中提供了简要的数据格式和通信详细信息
文档使用二.已经支持.NET和Java瘦客户机基础上的协议,并计划发布瘦客户机主要语言,如,等 。但是,你可以实现你的瘦客户机顶部通过使用二进制协议,可以选择任何您喜欢的编程语言 。
还要注意,由于 瘦客户端通过中间节点工作,因此其性能略低于客户端节点 。假设您有两个A,B节点,并且您正在使用瘦客户端C从集群中检索数据 。使用瘦客户端C,您已连接到节点B,并且每当尝试检索属于节点A的任何数据时,请求始终通过客户端B 。对于客户端节点,它将发送请求直接到节点A 。
在大多数情况下,您不必关心消息格式如何,或套接字握手如何执行 。每种编程语言的瘦客户机都为您封装了艰苦的工作 。无论如何,如果您想深入研究二进制协议或在创建自己的瘦客户机时遇到任何问题,请参考文档 。
在继续讨论更高级的主题之前,让我们看一个使用瘦客户端的简单应用程序 。在这个简单的应用程序中,我向您展示了开始使用瘦客户机所需的点点滴滴 。示例的源代码可在存储库中找到 ,请参阅第2章 。
步骤1。从存储库克隆或下载项目 。如果您打算从头开始开发项目,请在pom.xml文件中添加以下maven依赖项 。瘦客户机唯一需要的-core库,其余库仅用于日志记录 。
org.apache.igniteignite-core2.6.0org.slf4jslf4j-api1.6.1ch.qos.logbacklogback-classic1.0.1ch.qos.logbacklogback-core1.0.1
第二步。现在,让我们创建一个名为的新Java类 。

apache ignite_使用Apache Ignite瘦客户端– Apach

文章插图
第三步。复制并粘贴以下源代码 。不要忘记保存文件 。
import org.apache.ignite.IgniteException;import org.apache.ignite.Ignition;import org.apache.ignite.client.ClientCache;import org.apache.ignite.client.IgniteClient;import org.apache.ignite.configuration.ClientConfiguration;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class HelloThinClient {private static final Logger logger = LoggerFactory.getLogger(HelloThinClient.class);private static final String HOST = "127.0.0.1";private static final String PORT = "10800";private static final String CACHE_NAME = "thin-cache";public static void main(String[] args) {logger.info("Simple Ignite thin client example working over TCP socket.");ClientConfiguration cfg = new ClientConfiguration().setAddresses(HOST + ":" + PORT);try (IgniteClient igniteClient = Ignition.startClient(cfg)) {ClientCache