Dengan perkembangan teknologi Internet dan pertumbuhan pesat volum data, pemprosesan data besar-besaran telah menjadi salah satu masalah yang mesti dihadapi oleh syarikat Internet hari ini. Penyelesaian pemprosesan data tradisional, terutamanya penyelesaian pemprosesan kelompok, tidak lagi dapat memenuhi keperluan masa nyata dan ketersediaan tinggi Pada masa ini, pemprosesan data masa nyata telah menjadi salah satu penyelesaian terbaik. Sebagai pembangun, cara mengendalikan data berskala besar secara elegan dan cekap juga merupakan topik yang mesti kita perhatikan.
Pulsar ialah rangka kerja pemprosesan data masa nyata sumber terbuka oleh Yahoo Ia menggunakan seni bina berlapis untuk menjadikan pemprosesan data lebih cekap dan berskala. Ia menyokong berbilang bahasa pelanggan, termasuk Java, Python, Ruby, dan PHP. Sebagai bahasa yang sangat popular, PHP mempunyai sintaks yang mudah dan keluk pembelajaran yang rendah Ia telah menjadi salah satu bahasa pilihan bagi banyak perusahaan untuk membangunkan aplikasi pemprosesan data masa nyata. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan pemprosesan data masa nyata Pulsar sumber terbuka.
Sebelum anda mula menggunakan Pulsar, anda perlu memuat turun dan memasang Pulsar. Pakej perisian dan dokumentasi yang berkaitan boleh didapati daripada laman web rasmi Pulsar dan dipasang pada mesin tempatan atau pada nod dalam kelompok untuk pembangunan dan ujian tempatan.
Semasa proses pembangunan PHP, anda perlu menggunakan klien SDK pulsar-client-php. Ia boleh dipasang melalui alatan seperti Composer Proses khusus adalah seperti berikut:
// 安装pulsar-client-php composer require apache/pulsar
Selepas pemasangan selesai, berikut adalah konfigurasi asas cara menggunakan Pulsar.
use ApachePulsarAuthenticationAuthenticationFactory; use ApachePulsarClientBuilder; use ApachePulsarProducerConfiguration; use ApachePulsarSerializationSerialization; // 配置生产者的信息 $clientBuilder = new ClientBuilder(); $clientBuilder->setServiceUrl('pulsar://localhost:6650'); $clientBuilder->setAuthentication( AuthenticationFactory::token('your-token-string') ); $producerConf = new ProducerConfiguration(); $producerConf->setTopic('your-topic-name'); $producerConf->setSendTimeout(3000); $producerConf->setSerialization(Serialization::JSON); // 创建生产者实例 $producer = $clientBuilder->build()->createProducer($producerConf); $producer->send('your message');
Dalam kod di atas, kami mula-mula mencipta pengeluar Pulsar melalui kelas ClientBuilder
. Apabila mencipta pengeluar, kita perlu menetapkan kaedah setServiceUrl
untuk menentukan URL Perkhidmatan Pulsar dan kaedah setAuthentication
untuk melaksanakan pengesahan. Selain itu, anda perlu menetapkan maklumat konfigurasi pengeluar, seperti topik, tamat masa, dsb.
Pulsar menyediakan dua komponen asas, Pengeluar dan Pengguna, untuk melaksanakan pemprosesan data masa nyata. Pengeluar digunakan untuk menghantar data ke topik Pulsar yang ditentukan, manakala Pengguna menggunakan data daripada topik tersebut. Di bawah ini kami akan memperkenalkan secara terperinci cara menggunakan kedua-dua komponen ini untuk melengkapkan pemprosesan data masa nyata.
Mula-mula, kami mencipta contoh Pengeluar melalui langkah-langkah berikut:
// 导入命名空间 use ApachePulsarClientBuilder; // 创建Pulsar client实例 $clientBuilder = new ClientBuilder(); $client = $clientBuilder->serviceUrl('pulsar://localhost:6650')->build(); // 创建Producer对象 $producer = $client->createProducer( [ 'topic' => 'your-topic', ] );
Apabila mencipta penerbit, anda perlu menetapkan topik Pulsar yang menjadi milik pengeluar. Selain itu, terdapat pilihan lain, seperti "producerName", "initialSequenceId", "sendTimeout", dll. Pilihan ini boleh dikonfigurasikan mengikut keperluan.
Mari kita lihat cara menghantar mesej ke topik Pulsar:
// 对Pulsar topic发送消息 $result = $producer->send('your-message');
Kaedah hantar mengembalikan objek MessageId
. Jika mesej telah dihantar sebelum ini, MessageId
yang sepadan dikembalikan. Jika mesej gagal dihantar, pengecualian PulsarClientException
dilemparkan.
Seperti pengeluar, penciptaan Pengguna Pulsar juga dibahagikan kepada beberapa langkah.
// 导入命名空间 use ApachePulsarClientBuilder; // 创建Pulsar client实例 $clientBuilder = new ClientBuilder(); $client = $clientBuilder->serviceUrl('pulsar://localhost:6650')->build(); // 创建Consumer对象 $consumer = $client->subscribe( [ 'topic' => 'your-topic', 'subscriptionName' => 'your-subscription-name', ] );
Apabila membuat Pengguna, kami perlu menetapkan topik Pulsar dan nama langganan langganan. Terdapat pilihan lain, seperti menetapkan "receiverQueueSize", "ackTimeout", "subscriptionType", dll.
Di bawah ini kita akan melihat cara mendapatkan mesej daripada topik Pulsar yang ditentukan:
// 从topic中消费消息 $message = $consumer->receive(); // 对消息进行处理 echo 'Received message with ID: ' . $message->getMessageId() . PHP_EOL; // markAsReceived表示通知Pulsar这条消息已经被处理 $consumer->acknowledge($message);
Apabila memanggil kaedah receive()
, program akan kekal dalam keadaan menunggu sehingga terdapat mesej daripada pengembalian topik Pulsar yang ditentukan. Apabila mesej dikembalikan, program akan terus melaksanakan dan memproses mesej.
Selepas memanggil kaedah acknowledge()
, Pulsar akan memadamkan mesej daripada baris gilir langganan. Jika kaedah acknowledge()
tidak dipanggil, mesej akan kekal dalam baris gilir sehingga mesej tamat tempoh (lalai ialah 1 jam).
Dalam artikel ini, kami memperkenalkan cara menggunakan PHP untuk melaksanakan pemprosesan data masa nyata Pulsar sumber terbuka. Kami bermula dengan menyediakan persekitaran Pulsar dan menerangkan langkah demi langkah cara menggunakan komponen Pengeluar dan Pengguna Pulsar untuk melaksanakan pemprosesan data masa nyata.
Pulsar menggunakan seni bina berlapis dan boleh menyokong pemprosesan data masa nyata berskala besar. Pada masa ini, Pulsar telah digunakan oleh banyak syarikat Internet, seperti Alibaba, Meituan, Baidu, dll.
Kami percaya bahawa dengan mengkaji kandungan yang diperkenalkan dalam artikel ini, anda sudah boleh memahami cara menggunakan PHP dan Pulsar untuk menjadi lebih cekap dan elegan dalam pemprosesan data masa nyata.
Atas ialah kandungan terperinci PHP melaksanakan pemprosesan data masa nyata Pulsar sumber terbuka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!