.NET Specific
Ignite.NET node’ları çeşitli şekillerde yapılandırılabilir ve ardından yapılandırmaya özel Ignition.Start()
methodları ile başlatılabilir.
Configure Programmatically in C#
C# uygulamanızdan bir Ignite.NET node’u yapılandırmak için Ignition.Start(IgniteConfiguration)
methodunu kullanın.
Ignition.Start(new IgniteConfiguration
{
DiscoverySpi = new TcpDiscoverySpi
{
IpFinder = new TcpDiscoveryStaticIpFinder
{
Endpoints = new[] {"127.0.0.1:47500..47509"}
},
SocketTimeout = TimeSpan.FromSeconds(0.3)
},
IncludedEventTypes = EventType.CacheAll,
JvmOptions = new[] { "-Xms1024m", "-Xmx1024m" }
});
Configure With Application or Web Config Files
Ignition.StartFromApplicationConfiguration
methodları, app.config
veya web.config
dosyalarının Apache.Ignite.Core.IgniteConfigurationSection
bölümünden yapılandırmayı okur.
IgniteConfigurationSection.xsd
şema dosyası, binary dağıtımda Apache.Ignite.Core.dll
'nin yanında ve Apache.Ignite.Schema
NuGet paketinde bulunabilir. Yapılandırma dosyalarında IgniteConfigurationSection
'ı düzenlerken IntelliSense'i Visual Studio'da etkinleştirmek için None
build action ile projenize ekleyin.
- ⌨️ app.config
<configuration>
<configSections>
<section name="igniteConfiguration" type="Apache.Ignite.Core.IgniteConfigurationSection, Apache.Ignite.Core" />
</configSections>
<runtime>
<gcServer enabled="true"/>
</runtime>
<igniteConfiguration xmlns="http://ignite.apache.org/schema/dotnet/IgniteConfigurationSection" gridName="myGrid1">
<discoverySpi type="TcpDiscoverySpi">
<ipFinder type="TcpDiscoveryStaticIpFinder">
<endpoints>
<string>127.0.0.1:47500..47509</string>
</endpoints>
</ipFinder>
</discoverySpi>
<cacheConfiguration>
<cacheConfiguration cacheMode='Replicated' readThrough='true' writeThrough='true' />
<cacheConfiguration name='secondCache' />
</cacheConfiguration>
<includedEventTypes>
<int>42</int>
<int>TaskFailed</int>
<int>JobFinished</int>
</includedEventTypes>
<userAttributes>
<pair key='myNode' value='true' />
</userAttributes>
<JvmOptions>
<string>-Xms1024m</string>
<string>-Xmx1024m</string>
</JvmOptions>
</igniteConfiguration>
</configuration> - ⌨️ .NET Code
var ignite = Ignition.StartFromApplicationConfiguration("igniteConfiguration");
IgniteConfigurationSection.xsd
şema dosyasını bir Visual Studio projesine eklemek içinProjects
menüsüne gidin veAdd Existing Item…
menü öğesine tıklayın. Bundan sonra, Apache Ignite dağıtımının içindekiIgniteConfigurationSection.xsd
dosyasını bulun ve alın. Alternatif olarak, NuGet paketini yükleyin:Install-Package Apache.Ignite.Schema
. Bu, projeye otomatik olarak birxsd
dosyası ekleyecektir. Düzenlemeyi iyileştirmek için,Tools-Options- Text Editor-XML
'deStatement Completion
seçeneklerinin etkinleştirildiğinden emin olun.
Ignite Configuration Section Syntax
Yapılandırma bölümü, doğrudan IgniteConfiguration sınıfına eşlenir:
- Basit propertyler (strings, primitive types, enums) XML attributeları ile eşlenir (attribute adı = camelCased C# property adı).
- Karmaşık propertyler, nested XML öğeleriyle eşlenir (öğe adı = camelCased C# property adı).
- Karmaşık bir property bir inteface veya abstract class olduğunda, türü belirtmek için assembly-qualified name kullanılarak type attribute kullanılır. Built-in tipler için (yukarıdaki kod örneğindeki TcpDiscoverySpi gibi) assembly adı ve namespace atlanabilir.
- Şüpheye düştüğünüzde, IgniteConfigurationSection.xsd'deki şemaya bakın.
Configure With Spring XML
Spring XML, native java tabanlı Ignite yapılandırma yöntemini etkinleştirir. Bir Spring yapılandırma dosyası, Ignition.Start(string)
yöntemi veya IgniteConfiguration.SpringConfigUrl
özelliği aracılığıyla sağlanabilir. Bu yapılandırma yöntemi, bazı Java özellikleri Ignite.NET tarafından native olarak desteklenmediğinde kullanışlıdır.
IgniteConfiguration.SpringConfigUrl
özelliği kullanıldığında, önce Spring config yüklenir ve bunun üzerine diğer IgniteConfiguration
özellikleri uygulanır.
- ⌨️ app.config
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="localHost" value="127.0.0.1"/>
<property name="gridName" value="grid1"/>
<property name="userAttributes">
<map>
<entry key="my_attr" value="value1"/>
</map>
</property>
<property name="cacheConfiguration">
<list>
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="cache1"/>
<property name="startSize" value="10"/>
</bean>
</list>
</property>
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
<property name="addresses">
<list>
<value>127.0.0.1:47500..47509</value>
</list>
</property>
</bean>
</property>
<property name="socketTimeout" value="300" />
</bean>
</property>
</bean>
</beans> - ⌨️ .NET Code
var ignite = Ignition.Start("spring-config.xml");