📃
Tech White Papers
  • 📃White Papers
  • 🪶Apache
    • Kafka (EN)
      • Kafka Connect
      • Kafka Streams
      • ksqlDB
    • Ignite (TR)
      • Clustering
        • Baseline Topology
      • Thin Clients
      • Data Modeling
        • Data Partitioning
        • Affinity Colocation
      • Memory Architecture
      • Persistence
        • External Storage
        • Swapping
        • Snapshot
        • Disk Compression
        • Persistence Tuning
        • Change Data Capture
      • Cluster Snapshots
      • Data Rebalancing
      • Data Streaming
      • Using Key-Value API
        • Basic Cache Operations
        • Working With Binary Objects
      • Performing Transactions
      • Working with SQL
        • Understanding Schemas
        • Defining Indexes
        • Distributed Joins
      • Distributed Computing
      • Machine Learning
      • Using Continuous Queries
      • Using Ignite Messaging
      • .NET Specific
        • LINQ
        • Serialization
      • Working With Events
        • Events
      • Performance and Troubleshooting
        • Generic Performance Tips
        • Memory and JVM Tuning
        • Persistence Tuning
        • SQL Performance Tuning
        • Thread Pools Tuning
    • Pulsar (TR)
  • 📜Data
    • ClickHouse (TR)
    • QuestDB (TR)
  • Comparison
    • Pulsar vs Kafka
    • ClickHouse vs QuestDB
  • Architectural
    • Microservices
      • Design Principles
      • Design Patterns
Powered by GitBook
On this page
  • Configure Programmatically in C#
  • Configure With Application or Web Config Files
  • Configure With Spring XML

Was this helpful?

  1. Apache
  2. Ignite (TR)

.NET Specific

03/02/2023

PreviousUsing Ignite MessagingNextLINQ

Last updated 2 years ago

Was this helpful?

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 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çin Projects menüsüne gidin ve Add Existing Item… menü öğesine tıklayın. Bundan sonra, Apache Ignite dağıtımının içindeki IgniteConfigurationSection.xsd dosyasını bulun ve alın. Alternatif olarak, NuGet paketini yükleyin: Install-Package Apache.Ignite.Schema. Bu, projeye otomatik olarak bir xsd dosyası ekleyecektir. Düzenlemeyi iyileştirmek için, Tools-Options- Text Editor-XML'de Statement 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

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");

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 tarafından native olarak desteklenmediğinde kullanışlıdır.

🪶
Ignite.NET
Ignite.NET
Ignite.NET
Daha fazla bilgi için…