此内容没有您所选择的语言版本。
Chapter 1. Installing and configuring the Hot Rod .NET/C# client
Install the Hot Rod .NET/C# client on Microsoft Windows systems where you use .NET Framework to interact with Data Grid clusters via the RemoteCache
API.
1.1. Installing Hot Rod .NET/C# clients
Data Grid provides an installation package to install the Hot Rod .NET/C# client on Windows.
Prerequisites
- Any operating system on which Microsoft supports the .NET Framework
- .NET Framework 4.6.2 or later
- Windows Visual Studio 2015 or later
Procedure
-
Download
redhat-datagrid-<version>-hotrod-dotnet-client.msi
from the Data Grid Software Downloads. - Launch the MSI installer for the Hot Rod .NET/C# client and follow the interactive wizard through the installation process.
1.2. Configuration and Remote Cache Manager APIs
Use the ConfigurationBuilder
API to configure Hot Rod .NET/C# client connections and the RemoteCacheManager
API to obtain and configure remote caches.
Basic configuration
using Infinispan.HotRod; using Infinispan.HotRod.Config; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace simpleapp { class Program { static void Main(string[] args) { ConfigurationBuilder builder = new ConfigurationBuilder(); // Connect to a server at localhost with the default port. builder.AddServer() .Host(args.Length > 1 ? args[0] : "127.0.0.1") .Port(args.Length > 2 ? int.Parse(args[1]) : 11222); Configuration config = builder.Build(); // Create and start a RemoteCacheManager to interact with caches. RemoteCacheManager remoteManager = new RemoteCacheManager(conf); remoteManager.Start(); IRemoteCache<string,string> cache=remoteManager.GetCache<string, string>(); cache.Put("key", "value"); Console.WriteLine("key = {0}", cache.Get("key")); remoteManager.Stop(); } } }
Authentication
ConfigurationBuilder builder = new ConfigurationBuilder(); // Add a server with specific connection timeouts builder.AddServer().Host("127.0.0.1").Port(11222).ConnectionTimeout(90000).SocketTimeout(900); // ConfigurationBuilder has fluent interface, options can be appended in chain. // Enabling authentication with server name "node0", // sasl mech "PLAIN", user "supervisor", password "aPassword", security realm "aRealm" builder.Security().Authentication().Enable().ServerFQDN("node0") .SaslMechanism("PLAIN").SetupCallback("supervisor", "aPassword", "aRealm"); Configuration c = conf.Build();
Encryption
ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddServer().Host("127.0.0.1").Port(11222); // Get configuration builder for encryption SslConfigurationBuilder sslBuilder = conf.Ssl(); // Enable encryption and provide client certificate sslBuilder.Enable().ClientCertificateFile("clientCertFilename"); // Provide server cert if server needs to be verified sslBuilder.ServerCAFile("serverCertFilename"); Configuration c = conf.Build();
Cross-site failover
ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddServer().Host("127.0.0.1").Port(11222); // Configure a remote cluster and node when using cross-site failover. builder.AddCluster("nyc").AddClusterNode("192.0.2.0", 11322);
Near caching
ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddServer().Host("127.0.0.1").Port(11222); // Enable near-caching for the client. builder.NearCache().Mode(NearCacheMode.INVALIDATED).MaxEntries(10);