Google Cloud Pub/Sub را برای اتوماسیون کار با استفاده از PHP و Nodejs راه اندازی کنید
در این راهنما، نحوه راهاندازی Pub/Sub و استفاده از PHP برای ارسال پیام از یک VM Instance و Nodejs برای دریافت پیامها از VM Instance دیگر و انجام هرگونه کار اتوماسیون را خواهید آموخت
مراحل راه اندازی Pub-Sub
- یک موضوع میخانه/فرعی ایجاد کنید
- یک اشتراک Pub/Sub ایجاد کنید
- یک نمونه VM ایجاد کنید و PHP را تنظیم کنید برای ارسال پیام
- یک نمونه VM ایجاد کنید و Nodejs را برای دریافت پیام ها راه اندازی کنید
- تست میخانه/فرعی
ایجاد یک میخانه/موضوع فرعی
به Google Cloud Console خود بروید و به Big Data >> Pub/Sub >> Topics
بروید
روی ایجاد موضوع
کلیک کنید
یک نام موضوع
را وارد کنید
روی ایجاد
کلیک کنید
یک اشتراک Pub/Sub ایجاد کنید
هنگامی که موضوع شما ایجاد شد، روی 3 نقطه سمت راست موضوع خود کلیک کنید و روی اشتراک جدید
کلیک کنید
یک نام
اشتراک را وارد کنید
روی ایجاد
کلیک کنید
یک نمونه VM ایجاد کنید و PHP را برای ارسال پیام تنظیم کنید
اگر نمونه خود را در حال اجرا دارید، میتوانید مراحل زیر را برای نصب Pub/Sub Client Libraries برای PHP دنبال کنید، میتوانید این آموزش را برای تنظیم VM Instance در Googleloud دنبال کنید.
SSH به نمونه خود و نصب Composer برای نصب کتابخانه های سرویس گیرنده Pub/Sub
به دایرکتوری مورد نظر خود بروید و دستور زیر را اجرا کنید
آهنگساز به google/cloud-pubsub نیاز دارد
پس از اتمام نصب، میتوانید پوشه vendor
را بیابید و دو فایل composer.json
و composer.lock
ایجاد میشوند
اکنون میتوانیم یک فایل جدید بسازیم و کدی را بنویسیم تا پیامی به موضوع Pub/Sub ایجاد شده منتشر شود
سودو نانو sendmessage.php
YOUR_PROJECT_ID
را با شناسه پروژه خود، TOPIC_NAME
را با نام موضوع و MESSAGE
را با پیام خود جایگزین کنید و کد زیر را برای انتشار پیامی در موضوع
قرار دهید.
__DIR__ نیاز دارد. '/vendor/autoload.php';
از GoogleCloudPubSubPubSubClient استفاده کنید.
$pubsub = PubSubClient جدید([
'projectId' => 'YOUR_PROJECT_ID',
])؛
$topic = $pubsub->topic('TOPIC_NAME');
$topic->publish([
'data' => 'پیام'
])؛
فایل را ذخیره کنید sendmessage.js
یک نمونه VM ایجاد کنید و Nodejs را برای دریافت پیامها تنظیم کنید
یک نمونه جدید با اوبونتو 16.10 LTS تصویر بوت بدون فعال کردن قوانین فایروال HTTP و HTTPS ایجاد کنید زیرا ما از این نمونه به صورت عمومی استفاده نمی کنیم، بلکه فقط برای اجرای فرآیند اتوماسیون استفاده می کنیم.
هنگامی که نمونه خود را اجرا کردید، Nodejs و کتابخانه های کلاینت را برای Nodejs نصب کنید
SSH را به نمونه جدید خود ارسال کنید و دستورات را یکی یکی صادر کنید
بهروزرسانی sudo apt
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential
اکنون Nodejs را برای گوش دادن نصب کرده اید و آماده هستید تا Nodejs را به پیام های دریافتی گوش دهد
mkdir اتوماسیون
cd اتوماسیون
sudo nano listener.js
YOUR_PROJECT_ID
را با شناسه پروژه خود جایگزین کنید، SUBSCRIPTION_NAME
را با نام اشتراک خود جایگزین کنید، کد زیر را برای دریافت پیامهایی که در Pub/Sub Topic منتشر میشوند، قرار دهید.
const PubSub = require('@google-cloud/pubsub');
const pubsub = new PubSub({
projectId: 'YOUR_PROJECT_ID'
})؛
const subscription = pubsub.subscription('SUBSCRIPTION_NAME');
اجازه دهید messageCount = 0;
const messageHandler = پیام => {
console.log(`پیام دریافتی ${message.id}:`);
console.log(`tData: ${message.data}`);
messageCount += 1;
message.ack();
};
subscription.on('message', message Handler);
setTimeout(() => {
subscription.removeListener('message', messageHandler);
console.log(`${messageCount} پیام(ها) دریافت شد.`);
}، timeout * 1000);
فایل listener.js
را ذخیره کنید
Nodejs را برای گوش دادن به پیام های دریافتی جدید راه اندازی کنید
گره listener.js
اکنون برنامه Nodejs شما به پیامهای دریافتی گوش میدهد. SSH را باز نگه دارید تا پیام های دریافتی را بررسی کنید
آزمایش Pub/Sub
به نمونه نصب شده PHP خود بروید و فایل sendmessage.php
را ویرایش کنید و MESSAGE
را با پیام خود جایگزین کنید و دستور زیر را اجرا کنید
php sendmessage.php
اکنون پیام را در نمونه نصب شده Nodejs دریافت خواهید کرد.