title: ローカルスタンドアローンクラスタのセットアップ lead: ローカル環境での開発のためにPulsarを単一のJVMプロセスとして起動 tags_ja:

  • standalone
  • local next: ../ConceptsAndArchitecture

ローカル環境での開発やテストのために、 Pulsarの{% popover_ja スタンドアローン %}モードを使用する事ができます。

このモードでは、{% popover_ja Broker %}, {% popover_ja ZooKeeper %}, {% popover_ja BookKeeper %}の3コンポーネントを単一のJVMプロセスで起動します。

{% include admonition.html type=“info” title=‘プロダクション環境でのPulsar利用方法は?’ content=" プロダクション環境でのPulsarのインストール方法をお探しの場合は、Pulsarインスタンスのデプロイをご確認ください。 " %}

{% include explanations/ja/install-package.md %}

クラスタの起動

最新のリリースバイナリをローカルにコピーしたら、binディレクトリにあるpulsarコマンドでローカルクラスタを起動できます。{% popover_ja スタンドアローン %}モードで起動したい場合は以下のように入力します。

$ bin/pulsar standalone

Pulsarが正しく起動すると、以下のようにINFOレベルのログが表示されます。

2017-06-01 14:46:29,192 - INFO  - [main:WebSocketService@95] - Global Zookeeper cache started
2017-06-01 14:46:29,192 - INFO  - [main:AuthenticationService@61] - Authentication is disabled
2017-06-01 14:46:29,192 - INFO  - [main:WebSocketService@108] - Pulsar WebSocket Service started

{% include admonition.html type=“success” title=‘自動的に作成されるネームスペース’ content=' ローカルスタンドアローンクラスタを起動する時、Pulsarは自動的にsample/standalone/ns1という開発目的に使用するためのネームスペースを作成します。全てのPulsarのトピックはネームスペース内で管理されます。詳細はこちらをご確認ください。' %}

クラスタのテスト

Pulsarではpulsar-clientコマンドを用いて起動中のPulsarクラスタの{% popover_ja トピック %}にメッセージを送ることができます。以下のコマンドはpersistent://sample/standalone/ns1/my-topicというトピックに対してhello-pulsarというメッセージを送信します。

$ bin/pulsar-client produce \
  persistent://sample/standalone/ns1/my-topic \
  -m 'hello-pulsar'

メッセージの送信に成功した場合、pulsar-clientから以下のようなログが得られます。

2017-06-01 18:18:57,094 - INFO  - [main:CmdProduce@189] - 1 messages successfully produced

{% include admonition.html type=“success” title=“明示的に新しいトピックを作る必要はありません” content=“hello-pulsarを送信するトピックであるmy-topicを作成しなかったことにお気付きかもしれません。もしまだ存在しないトピックにメッセージを送信しようとした場合、Pulsarはそのトピックを自動的に作成します。” %}

ローカルでのPulsarクライアントライブラリの使用

Pulsarは現在、Java, Python, C++のクライアントライブラリを提供しています。ローカル{% popover_ja スタンドアローン %}クラスタを起動した場合、クラスタに接続するために以下のルートURLのいずれかを使用できます。

  • http://localhost:8080
  • pulsar://localhost:6650

以下はJavaクライアントを用いたProducerの例です。

String localClusterUrl = "pulsar://localhost:6650";
String namespace = "sample/standalone/ns1"; // このネームスペースは自動的に作成されます
String topic = String.format("persistent://%s/my-topic", namespace);

PulsarClient client = PulsarClient.create(localClusterUrl);
Producer producer = client.createProducer(topic);

以下はPythonクライアントを用いたProducerの例です。

import pulsar

TOPIC = 'persistent://sample/standalone/ns/my-topic'

client = pulsar.Client('pulsar://localhost:6650')
producer = client.create_producer(TOPIC)

以下はC++クライアントを用いたProducerの例です。

Client client("pulsar://localhost:6650");
Producer producer;
Result result = client.createProducer("persistent://sample/standalone/ns1/my-topic", producer);
if (result != ResultOk) {
    LOG_ERROR("Error creating producer: " << result);
    return -1;
}