Статьи

Играю с Риаком и .NET

Ранее в этом году я начал играть с MongoDB, используя .NET, и написал руководство по началу работы . Теперь настала очередь Риака.

Nutshell
Riak — это распределенная безсхемная база данных NoSQL с независимым от типа данных ключом, написанная преимущественно на Erlang.

Посетите страницу « Что такое Риак? » На вики Basho.

Riak не работает в Windows, поэтому вам нужно выбрать поддерживаемую ОС для установки Riak. Ранее я использовал Ubuntu для MongoDB, и я пошел по этому пути, поэтому мои заметки здесь ориентированы именно так. Итак, после установки виртуальной машины Ubuntu …

Шаг 1
Установите последний пользовательский пакет .deb в соответствии с руководством Basho .

Шаг 2
Перед тем как запустить Riak, необходимо настроить конфигурацию в файле app.config Riak. Следуйте руководству по базовой настройке кластера , но учтите, что когда вы обновляете IP-адрес для интерфейса http в соответствии с этими инструкциями, также вносите те же изменения в значение конфигурации pb_ip — это для интерфейса Protocol Buffers. Для производительности я хотел использовать интерфейс Protocol Buffers вместо HTTP REST API и у меня были некоторые начальные проблемы, поскольку конфигурация pb_ip все еще была установлена ​​на 127.0.0.1.

Затем вам нужно отредактировать vm.args в соответствии с руководством по установке.

Шаг 3
Теперь вы готовы запустить Riak. Бег:

$ riak start

Затем убедитесь, что все хорошо, используя:

$ riak ping

Если все хорошо, он ответит «понг».

Шаг 4
Теперь, вернувшись в комфорт Windows (моего Linux-фу очень не хватает), мы готовы к работе. На момент написания этой статьи официальной клиентской библиотеки .NET не было, но Basho перечислил несколько проектов, внесенных сообществом . Когда я впервые посмотрел, в списке были только 2, и они оказались неактивными без обновлений с прошлого года. Было немного обидно видеть отсутствие поддержки для тех из нас в мире .NET. Затем я обнаружил CorrugatedIron , очень популярный в прессе, который разрабатывался OJ Reeves ( Twitter | Blog ) и Jeremiah Peschka ( Twitter | Blog ).

Самый простой способ получить все, что вам нужно, — это использовать NuGet.

Ну что?

NuGet. Это расширение Visual Studio, которое вы можете скачать здесь . После установки запустите VS и создайте новый проект .NET 4.0 Framework. Затем в обозревателе решений щелкните правой кнопкой мыши проект и выберите «Управление пакетами NuGet …».

В диалоговом окне найдите онлайн-пакеты для: CorrugatedIron.

Нажмите Install, и он загрузит все необходимые вам сборки / зависимости. Когда он закончится, вы увидите ссылки на CorrugatedIron, Newtonsoft.Json и protobuf-net.

Откройте app.config, и вы увидите первоначальный пример конфигурации для CorrugatedIron. Настройте его соответствующим образом, чтобы он указывал на работающий узел Riak. Например, мой узел Riak работает на виртуальной машине под названием «Riak1», интерфейс REST прослушивает порт 8098, а интерфейс буферов протокола прослушивает порт 8087:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="riakConfig" type="CorrugatedIron.Config.RiakClusterConfiguration, CorrugatedIron" />
  </configSections>
  <riakConfig nodePollTime="5000" defaultRetryWaitTime="200" defaultRetryCount="3">
    <nodes>
      <node name="Riak1" hostAddress="Riak1" pbcPort="8087" restScheme="http" restPort="8098" poolSize="20" />      
    </nodes>
  </riakConfig>
</configuration>

Шаг 5
Быстрая проверка, чтобы убедиться, что вы можете общаться с вашим узлом Riak:

static void Main(string[] args)
{
    IRiakCluster cluster = RiakCluster.FromConfig("riakConfig");
    IRiakClient client = cluster.CreateClient();
    RiakResult result = client.Ping();
    Console.WriteLine(result.IsSuccess);
}

Пальцы скрещены, и вы получите успешный ответ! Отсюда вы можете начать играть с Riak из .NET и найти способ обойти клиента.

CorrugatedIron все еще очень нов, поэтому следите за сайтом и / или за GitHub-репозиторием . Повернись и не забудь сообщить ребятам, как ты поживаешь — я уверен, что им будет интересно услышать от тех, кто его использует, и проект заслуживает поддержки со стороны тех из нас, кто живет в мире .NET.

Полезный инструмент
Полезно иметь некоторую форму графического интерфейса над Riak, чтобы вы могли «видеть вещи». Я использую Rekon, который мне показался полезным, чтобы начать работать с Riak. См. Инструкции по загрузке / установке на странице репозитория GitHub .

Надеюсь, этот пост поможет всем, кто хочет попробовать Riak с точки зрения .NET!