运用 NCache 与雅加达网络会议

Java Web 应用和 API

大家好,我叫苏莱曼,在这个视频中,我们将看看如何使用 NCache 使用您的 Web 应用程序并将会话数据存储在分布式缓存中。现在我有一个示例项目。它使用了 Jakarta Web Sessions。目前,我的会话数据存储在内存中。所以我们接下来要做的是…… NCache 接下来,我将向您展示会话数据是如何存储在我们的分布式缓存中的。

NCache 卓越

那么我们先来看一下这张图。通常情况下,情况是这样的 NCache 它部署在企业环境中。请注意应用层,也称为缓存客户端。我们的客户端应用程序将在此运行。然后,我们还有一个单独的缓存层,其中包含缓存集群。最后,最下面是数据库层。

NCache 企业环境中的部署
NCache 企业环境中的部署

NCache 雅加达网络会话设置

那么,我们开始设置吧。首先来看我的示例项目。你会看到这里是猜数字游戏类。简单来说,用户需要猜一个 0 到 100 之间的数字。他们需要猜一个 0 到 100 之间的随机数。你可以看到,在猜数字游戏中,我也存储了用户的猜测历史记录。

猜猜比赛

我们来看一下 index.jsp 页面。你会注意到,我将整个猜谜游戏对象存储和检索为一个会话属性。至于这个 JSP 页面上显示的其他内容,你可以看到我们显示了尝试历史记录、上次猜测和之前的尝试。所以,这些信息也都是作为会话属性检索的。

JSP页面

在 web.xml 文件中,您可以看到我没有定义任何过滤器。因此,作为……的一部分 NCache 设置过程中,我们需要在这里定义一个过滤器。当然,我们会在视频中讲解这部分内容。最后,我们再看一下 pom.xml 文件。你会注意到我把它部署成了 .war 文件。所以我们要把它部署成 .war 文件,然后把它添加到 Tomcat 服务器上,这样就能运行这个应用程序了。

NCache 管理中心

我们已经了解了我们的项目。接下来,我们再来看看…… NCache 管理中心。您可以看到,我已经配置了一个名为 demoCache 的缓存。它是一个部署在 Docker 实例上的单节点服务器。接下来,我还会向您展示我的配置选项。您可以看到我的序列化方式设置为二进制,但您也可以将其设置为 JSON。其他设置我基本保持不变。

配置选项

最后一点,我想确认一下我的缓存数据目前是否为空。所以你会看到计数为零。我们一切从头开始。

步骤1:新增 NCache 会话对项目的依赖关系

设置此功能的第一步是添加以下内容。 NCache 会话对我们项目的依赖关系。好的,接下来我要做的就是导航到…… NCache 我打开这个网站只是为了向您展示在哪里可以找到特定的依赖项。接下来我会进入…… Java 集成 进入各个部分并点击 雅加达会议这将指向 Maven 中央仓库。可以看到 artifactId 是 ncache-sessions,版本是 5.3.6。所以,我只需将其粘贴到我的 pom.xml 文件中,同步我的 Maven 更改,这样应该就能下载我的依赖项了。如果我检查我的库,你会看到我已经有了 NCache 客户, NCache 运行时和 NCache 会议。完美。

<dependency>
    <groupId>com.alachisoft.ncache</groupId>
    <artifactId>ncache-sessions</artifactId>
    <version>5.3.6</version>
</dependency>

步骤2:新增 NCache 会话过滤器到 web.xml

下一步是在 web.xml 文件中创建会话过滤器。如果您不知道 web.xml 文件是什么,它是 Web 应用程序的部署描述符,我们需要在这里定义这个过滤器,以便所有 HTTP 请求都被该过滤器拦截并处理。 NCache 代码。简单来说,这就是我们的会话数据在分布式缓存中保存的方式。接下来,我要在 web.xml 文件中的会话配置下方,粘贴这段过滤器。我直接从这里复制过来。

<filter>
	<filter-name>NCacheSessionProvider</filter-name>
	<filter-class>com.alachisoft.ncache.web.session.NCacheSessionProvider</filter-class>
		<init-param>
		<description>configPath is used to load the client.ncconf and session.xml files.</description>
		<param-name>configPath</param-name>
		<param-value>C:\Program Files\NCache\config</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>NCacheSessionProvider</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

你会注意到,我们在这里也给它指定了一个配置路径。所以我把它指向了…… NCache 安装文件夹。当然,您可以根据自己的喜好调整文件夹结构,但我这样做是因为,如果您将其部署为 .war 文件,并将配置路径放在应用程序目录内,则可能难以找到这些文件。因此,为了方便本视频的演示,我将它们配置在了外部。

步骤 3:在 session.xml 中指定会话状态提供程序

接下来,我们要创建 session.xml 文件。在这个文件中,你可以定义缓存 ID 或缓存名称,以及缓存属性,例如会话超时时间。我现在就用 Visual Studio 创建这个文件,然后快速复制一下配置。我直接把它粘贴到这里。

<servlet-session-config>
   <cache id="demoCache"/>
   <log log-props="log4j.properties"/>
   <locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
</servlet-session-config>

我们需要将文件保存为 session.xml,文件名与原文件名完全相同。我这就快速复制该文件,然后粘贴到我的…… NCache 安装目录。稍等片刻。好了,我们的配置文件应该已经设置好了。

步骤 4:在 client.ncconf 中指定缓存服务器

我们还缺少一个配置文件,即 client.ncconf 文件,它用于实际设置缓存服务器 IP 地址、缓存属性以及其他缓存属性,正如您在这里看到的。

<configuration>
	<ncache-server connection-retries="3" retry-connection-delay="0" retry-interval="1"
	command-retries="3" command-retry-interval="0.1" client-request-timeout="90"
	connection-timeout="5" port="9800" local-server-ip=""
	enable-keep-alive="False" keep-alive-interval="30"/>
	
	<cache id="demoCache" client-cache-id="" client-cache-syncmode="optimistic"
	skip-client-cache-if-unavailable="true" reconnect-client-cache-interval="10"
	default-readthru-provider="" default-writethru-provider="" load-balance="false"
	enable-client-logs="false" log-level="info">
		<server name="20.200.20.42"/>
	</cache>
</configuration>

因为我已经有了 NCache 我的电脑上安装了,但通常情况下,很多人并没有安装。 NCache 它安装在客户端应用程序机器上,是外部安装的。不过就我而言,我已经安装了它。所以,这个文件应该是预加载的。我给你展示一下它的样子。如果我打开 client.ncconf 文件,你可以看到它提到了 demo cache 以及缓存服务器的 IP 地址。这就是它的样子。

既然我们已经配置好了,我就保持原样,现在应该可以正式部署应用程序了。所以,要部署这个应用程序,我首先需要运行以下命令: mvn 清洁包 在我的应用程序目录里。所以我现在要等它加载完成。如果我再检查一下目标文件夹,这个文件应该已经创建好了。接下来我要做的就是把这个 .war 文件粘贴到我的 Tomcat 安装目录里。那里已经有一个游戏 guessgame.war 文件了。我只需要替换掉它,粘贴一个新的。现在我们的 Tomcat 服务器应该可以运行了。

所以,在我的 Tomcat 服务器上,我相信我现在就在这里。是的,我要运行…… .\startup.bat 脚本正在加载。看起来正在加载。趁着加载的空档,我要打开我的 NCache 统计数据。我想做的是将它与本地主机并排打开。这样你就可以看到客户端已连接。所以应用程序很可能正在运行。我将刷新一下这个页面。你可以看到它现在已经加载完毕。所以,目前你会注意到上次猜测没有尝试历史记录。我将在这里尝试一些随机猜测,看看效果如何。所以,我猜的数字比较小。我们再试一次。这次也比较小。我再尝试一个数字。你会注意到我们的尝试历史记录被保存了。请记住,它之前被存储为一个会话属性,我在之前的代码中已经展示过了。我们的缓存计数也增加了。所以这里的计数是“1”,增加了。这是存储在分布式缓存中的会话数据。

NCache 统计数据

所以你看,一切基本都运行正常。我只是想快速在新标签页中打开一下,确认一下会话数据是否能按预期加载。完美。你看,会话数据在这里。所以一切都运行正常。

安排演示

各位,我们的演示就到这里。如果您想了解更多信息,请继续阅读。 NCache如需了解其功能以及如何将其集成到您的应用程序中,请联系我们安排演示。非常感谢您观看本视频。

接下来做什么?

联系我们

联系电话

+1 214-619-2601 (美国)

+44 20 7993 8327 (英国)

©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。