Cara menggunakan rangka kerja Hyperf untuk panggilan perkhidmatan teragih
Pengenalan:
Dengan perkembangan perniagaan, saiz dan kerumitan aplikasi juga berkembang pesat. Dalam kes ini, untuk meningkatkan kebolehskalaan dan kebolehskalaan perniagaan, sistem teragih menjadi semakin penting. Seruan perkhidmatan dalam sistem teragih juga telah menjadi rumit, memerlukan rangka kerja yang boleh dipercayai untuk memudahkan pembangunan dan pengurusan.
Hyperf ialah rangka kerja berprestasi tinggi berdasarkan sambungan Swoole, memfokuskan pada pautan panjang dan coroutine, menyediakan sejumlah besar komponen dan fungsi. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja Hyperf untuk membuat panggilan perkhidmatan teragih.
1. Persediaan
Pertama, kita perlu memasang rangka kerja Hyperf secara setempat. Hyperf boleh dipasang dengan cepat melalui arahan berikut:
composer create-project hyperf/hyperf-skeleton
Selepas pemasangan selesai, beberapa konfigurasi asas rangka kerja Hyperf diperlukan. Anda boleh mengedit fail .env
untuk mengkonfigurasi sambungan pangkalan data, Redis dan maklumat lain yang berkaitan. .env
文件来配置数据库连接、Redis等相关信息。
二、创建服务提供者
在app/Provider
目录下创建一个服务提供者类,命名为RemoteServiceProvider
。该类中将定义一个远程服务的方法。
<?php declare(strict_types=1); namespace AppProvider; use HyperfRpcClientAbstractServiceClient; class RemoteServiceProvider extends AbstractServiceClient { protected $serviceName = 'ServiceName'; protected $protocol = 'jsonrpc-http'; public function remoteMethod(array $params) { return $this->__request(__FUNCTION__, compact('params')); } }
上述代码中,RemoteServiceProvider
继承了AbstractServiceClient
,并且定义了一个名为remoteMethod
的远程方法。
编辑config/dependencies.php
文件,添加以下代码:
use AppProviderRemoteServiceProvider; return [ 'dependencies' => [ // ... RemoteServiceProvider::class => RemoteServiceProvider::class, ], ];
三、创建服务消费者
在app/Controller
目录下创建一个控制器类,命名为TestController
。该类中将调用远程服务。
<?php declare(strict_types=1); namespace AppController; use AppProviderRemoteServiceProvider; use HyperfHttpServerAnnotationController; use HyperfHttpServerAnnotationPostMapping; /** * @Controller() */ class TestController { /** * @PostMapping(path="/test") */ public function test(RemoteServiceProvider $service) { $params = ['key' => 'value']; return $service->remoteMethod($params); } }
上述代码中,TestController
类中的test
方法注入了RemoteServiceProvider
,并调用了其remoteMethod
方法。
编辑config/routes.php
app/Provider
dan namakannya RemoteServiceProvider
. Kelas ini akan menentukan kaedah perkhidmatan jauh. use AppControllerTestController; $router->addRoute(['POST'], '/test', [TestController::class, 'test']);
RemoteServiceProvider
mewarisi AbstractServiceClient
dan mentakrifkan kaedah jauh bernama remoteMethod
. config/dependencies.php
dan tambah kod berikut: php bin/hyperf.php start
Buat kelas pengawal
TestController
. Perkhidmatan jauh akan dipanggil dalam kelas ini. php bin/hyperf.php start
test
dalam kelas TestController
menyuntik RemoteServiceProvider
dan memanggil remoteMethod
nya kaedah. 🎜Konfigurasikan penghalaan🎜🎜🎜Edit fail config/routes.php
dan tambah kod berikut: 🎜rrreee🎜 4. Mulakan pelayan dan klien 🎜🎜🎜Mulakan pelayan 🎜🎜 arahan berikut Mulakan pelayan Hyperf: 🎜rrreee🎜Pelayan akan mula mendengar port yang ditentukan dan menunggu permintaan pelanggan. 🎜🎜🎜Mulakan klien🎜🎜🎜Gunakan arahan berikut untuk memulakan klien Hyperf: 🎜rrreee🎜Pelanggan akan secara automatik memulakan permintaan kepada pelayan dan mendapatkan hasil tindak balas. 🎜🎜Kesimpulan: 🎜Melalui langkah di atas, kita boleh menggunakan rangka kerja Hyperf untuk membuat panggilan perkhidmatan teragih. Mula-mula, kami mencipta kelas pembekal perkhidmatan dan menentukan kaedah jauh di dalamnya. Kami kemudian mencipta kelas pengawal, menyuntik penyedia perkhidmatan ke dalamnya dan memanggil kaedahnya. Akhirnya, kami memulakan pelayan dan pelanggan untuk menyelesaikan panggilan perkhidmatan yang diedarkan. 🎜🎜Rangka kerja Hyperf menyediakan fungsi dan komponen yang berkuasa, menjadikan pembangunan sistem teragih lebih mudah dan cekap. Dengan menggunakan rangka kerja Hyperf, kami boleh membina aplikasi teragih dengan cepat dan melaksanakan seni bina perkhidmatan mikro dengan mudah. 🎜🎜Saya harap artikel ini akan membantu anda memahami cara menggunakan rangka kerja Hyperf untuk membuat panggilan perkhidmatan teragih. Saya doakan anda berjaya dalam pembangunan sistem teragih. 🎜Atas ialah kandungan terperinci Cara menggunakan rangka kerja Hyperf untuk panggilan perkhidmatan yang diedarkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!