GCP

GCP Cloud Pub/Subを使ってみた(4)

今回も引き続き、Cloud Pub/Subについて述べる。今回は、2台の仮想マシン上でメッセージの送受信が行えるようなプログラムの内容について述べる。

前提条件

GCP(Google Cloud Platform)のアカウントが有り、下記記事の手順に従って、GCP上でDebian GNU/Linux搭載済の2台の仮想マシンを作成済であること。

GCP(Google Cloud Platform)でLinux搭載済の仮想マシンを作成してみたGCP(Google Cloud Platform)上でLinux搭載済の仮想マシンを作成し、GCS(Google Cloud Stor...

また、以下の記事での環境構築を実施済であること。

GCSとBigQueryで連動するプログラムを作成してみた(2)今回も引き続き、GCSとBigQueryで連動するプログラムについて述べる。ここでは、Windows 10が入っているローカル環境にて、...

さらに、以下の記事の「JDK1.8のインストール」「Mavenのインストール」が実施済であること。なお、MavenによるJavaプログラムの作成・実行手順も、上記記事を参照のこと。

GCSとBigQueryで連動するプログラムを作成してみた(2)今回も引き続き、GCSとBigQueryで連動するプログラムについて述べる。ここでは、Windows 10が入っているローカル環境にて、...

その他、下記記事のトピックとサブスクリプションの作成が完了していること。

GCP Cloud Pub/Subを使ってみた(2)今回も引き続き、Cloud Pub/Subについて述べる。今回は、GCP(Google Cloud Platform)のPub/Subを...

やってみたこと

  1. 2台の仮想マシンを起動
  2. サーバー側でのJavaプログラムの作成
  3. クライアント側でのJavaプログラムの作成
  4. 実行確認

 

2台の仮想マシンを起動

GCP上でDebian GNU/Linux搭載済の2台の仮想マシンを起動する。起動後の仮想マシンは以下の通り。
起動後の仮想マシン
なお、上記仮想マシンのうち、今後は「test-linux-vm-2」をサーバー側とし、「test-linux-vm」をクライアント側とする。

サーバー側でのJavaプログラムの作成

サーバー側の仮想マシン「test-linux-vm-2」にログイン後、実施した内容は以下の通り。

1) mavenコマンドを利用して、use-pubsub-serverというMavenプロジェクトを作成
mavenプロジェクト作成_サーバー

2) pom.xmlを修正し、TestPubSubServer.javaというプログラムを追加
ソース修正後のフォルダ構成は以下の通り
サーバー側ソースコード構成

修正後のpom.xmlは以下の通り

作成したTestPubSubServer.javaは以下の通り

なお、前回の「GCP Cloud Pub/Subを使ってみた(3)」で記載したTestPubSub.javaのうち、送信したメッセージを受信する部分のみ記載する形となる。

3) 「mvn compile」によりMavenプロジェクトをコンパイルした上で、「mvn package」によりJarファイルの作成を実行。実行後のフォルダ構成は以下の通り。
jarファイル作成_サーバー側

クライアント側でのJavaプログラムの作成

サーバー側の仮想マシンにログイン後、実施した内容は以下の通り。

1) mavenコマンドを利用して、use-pubsub-clientというMavenプロジェクトを作成
mavenプロジェクト作成_クライアント

2) pom.xmlを修正し、TestPubSubClient.javaというプログラムを追加
ソース修正後のフォルダ構成は以下の通り
クライアント側ソースコード構成

修正後のpom.xmlは以下の通り

作成したTestPubSubClient.javaは以下の通り

なお、前回の「GCP Cloud Pub/Subを使ってみた(3)」で記載したTestPubSub.javaのうち、メッセージを送信する部分のみ記載する形となる。

3) 「mvn compile」によりMavenプロジェクトをコンパイルした上で、「mvn package」によりJarファイルの作成を実行。実行後のフォルダ構成は以下の通り。
jarファイル作成_クライアント側

実行確認

2台のマシン間での、Pub/Subによるメッセージ送受信を確認した結果は以下の通り。

1) サーバー側(test-linux-vm-2)のプログラムを起動
実行結果1

2) クライアント側(test-linux-vm)のプログラムを起動
実行結果2

3) サーバー側(test-linux-vm-2)で、クライアント側から送信されたメッセージが受信できることを確認
実行結果3