如何自己创办一个网站,wordpress型营销,如何制作微信小程序教程,网站改版解决方案apache ignite从2.4.0版本开始#xff0c;Apache Ignite引入了一种连接到Ignite群集的新方法#xff0c;该方法允许与Ignite群集进行通信而无需启动Ignite客户端节点。 从历史上看#xff0c;Apache Ignite提供了客户端和服务器节点两个概念。 点燃旨在用作轻量级模式的客户… apache ignite 从2.4.0版本开始Apache Ignite引入了一种连接到Ignite群集的新方法该方法允许与Ignite群集进行通信而无需启动Ignite客户端节点。 从历史上看Apache Ignite提供了客户端和服务器节点两个概念。 点燃旨在用作轻量级模式的客户端节点该节点不存储数据但是它可以存储在高速缓存附近并且不执行任何计算任务。 主要是客户端节点用于与服务器进行远程通信并允许使用整套Ignite API来操纵Ignite缓存。 Ignite客户端节点有两个主要缺点 只要Ignite客户端节点连接到Ignite群集它就会成为群集拓扑的一部分。 拓扑越大维护难度就越大。 在客户端模式下Apache Ignite节点会消耗大量资源来执行缓存操作。 为了解决上述问题Apache Ignite提供了一种新的二进制客户端协议用于以任何编程语言或平台实现瘦Ignite客户端。 请注意“瘦”一词意味着它不会启动任何与Ignite群集进行通信的Ignite节点也不会实现任何发现/通信SPI逻辑。 瘦客户端通过TCP套接字连接到Ignite群集并使用定义明确的二进制协议执行CRUD操作。 该协议是完全基于套接字的请求-响应样式协议。 该协议被设计为足够严格以确保通信中的标准化例如连接握手消息长度等但仍然足够灵活以使开发人员可以扩展该协议以实现自定义功能。 Apache Ignite在其中提供了简要的数据格式和通信详细信息 文档使用二protocol.Ignite已经支持.NET和Java瘦客户机基础上的协议并计划发布瘦客户机主要语言如goLangPython等。但是你可以实现你的瘦客户机顶部通过使用二进制协议可以选择任何您喜欢的编程语言。 还要注意由于Apache Ignite瘦客户端通过中间节点工作因此其性能略低于Ignite客户端节点。 假设您有两个Apache Ignite AB节点并且您正在使用瘦客户端C从集群中检索数据。 使用瘦客户端C您已连接到节点B并且每当尝试检索属于节点A的任何数据时请求始终通过客户端B。对于Ignite客户端节点它将发送请求直接到节点A。 在大多数情况下您不必关心消息格式如何或套接字握手如何执行。 每种编程语言的瘦客户机都为您封装了艰苦的工作。 无论如何如果您想深入研究Ignite二进制协议或在创建自己的瘦客户机时遇到任何问题请参考Ignite文档。 在继续讨论更高级的主题之前让我们看一个使用Ignite瘦客户端的简单应用程序。 在这个简单的应用程序中我向您展示了开始使用瘦客户机所需的点点滴滴。 示例的源代码可在GitHub存储库中找到 请参阅第2章。 步骤1 。 从GitHub存储库克隆或下载项目。 如果您打算从头开始开发项目请在pom.xml文件中添加以下maven依赖项。 瘦客户机唯一需要的ignite-core库其余库仅用于日志记录。 dependencygroupIdorg.apache.ignite/groupIdartifactIdignite-core/artifactIdversion2.6.0/version
/dependency
!-- Logging wih SLF4J --
dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion1.6.1/version
/dependency
dependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactIdversion1.0.1/version
/dependency
dependencygroupIdch.qos.logback/groupIdartifactIdlogback-core/artifactIdversion1.0.1/version
/dependency 第二步 。 现在让我们创建一个名为HelloThinClient的新Java类。 第三步 。 复制并粘贴以下源代码。 不要忘记保存文件。 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 String, String clientCache igniteClient.getOrCreateCache(CACHE\ _NAME);// put a few valueclientCache.put(Moscow, 095);clientCache.put(Vladimir, 033);// get the region code of the Vladimir String val clientCache.get(Vladimir);logger.info(Print value: {}, val);} catch (IgniteException e) {logger.error(Ignite exception:, e.getMessage());} catch (Exception e) {logger.error(Ignite exception:, e.getMessage());}}
} 步骤4让我们仔细看一下我们上面编写的程序。 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; 首先我们声明了一些常量记录器主机IP地址端口和我们要创建的缓存名称。 如果您使用其他IP地址则应在此处进行更改。 端口10800是Ignite瘦客户端的默认端口。 СlientConfiguration cfg new ClientConfiguration().setAddresses(HOST:PORT); 这些是程序中下一个令人兴奋的行。 我们创建了一个点燃实例 СlientConfiguration并传递了我们上面声明的地址。 在下一个try-catch块中我们定义了一个新缓存名称为 精简缓存并放置2个键值对。 我们还使用了Ignition.startClient方法来初始化与Ignite节点的连接。 try (IgniteClient igniteClient Ignition.startClient(cfg)) {ClientCache String, String clientCache igniteClient.getOrCreateCache(CACHE\ _NAME);// put a few valueclientCache.put(Moscow, 095);clientCache.put(Vladimir, 033);// get the region code of the Vladimir String val clientCache.get(Vladimir);logger.info(Print value: {}, val);} catch (IgniteException e) {logger.error(Ignite exception:, e.getMessage());} catch (Exception e) {logger.error(Ignite exception:, e.getMessage());}
} 后来我们检索了键Vladimir的值并将其打印在控制台中。 步骤5 。 如果尚未启动Apache Ignite单节点集群请启动它。 在您喜欢的终端中使用以下命令。 $ IGNITE_HOME/bin/ignite.sh 步骤6 。 要生成项目请发出以下命令。 $ mvn clean install 这将运行Maven告诉它执行安装目标。 此目标将编译测试和打包您的项目代码然后将其复制到本地依赖项存储库中。 成功编译后第一次构建过程将需要几分钟才能完成名为 HelloThinClient-runnable.jar将在目标目录中创建。 步骤7 。 通过键入以下命令来运行应用程序。 $ java -jar .\target\HelloThinClient-runnable.jar 您应该在终端中看到很多日志。 在日志末尾您应该会找到类似的内容。 该应用程序通过TCP套接字连接到Ignite节点并在缓存精简缓存上执行放置和获取操作。 如果您查看Ignite节点控制台您应该注意到Ignite群集拓扑尚未更改。 翻译自: https://www.javacodegeeks.com/2019/01/apache-ignite-client-apache-ignite.htmlapache ignite