title: ローカルスタンドアローンクラスタのセットアップ lead: ローカル環境での開発のためにPulsarを単一のJVMプロセスとして起動 tags_ja:
ローカル環境での開発やテストのために、 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は現在、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; }