Rumah > rangka kerja php > Swoole > teks badan

Cara menggunakan rangka kerja Hyperf untuk panggilan perkhidmatan yang diedarkan

王林
Lepaskan: 2023-10-20 14:41:02
asal
1187 orang telah melayarinya

Cara menggunakan rangka kerja Hyperf untuk panggilan perkhidmatan yang diedarkan

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

  1. Pasang rangka kerja Hyperf

Pertama, kita perlu memasang rangka kerja Hyperf secara setempat. Hyperf boleh dipasang dengan cepat melalui arahan berikut:

composer create-project hyperf/hyperf-skeleton
Salin selepas log masuk
  1. Fail konfigurasi

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等相关信息。

二、创建服务提供者

  1. 创建服务提供者类

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'));
    }
}
Salin selepas log masuk

上述代码中,RemoteServiceProvider继承了AbstractServiceClient,并且定义了一个名为remoteMethod的远程方法。

  1. 配置服务提供者

编辑config/dependencies.php文件,添加以下代码:

use AppProviderRemoteServiceProvider;

return [
    'dependencies' => [
        // ...

        RemoteServiceProvider::class => RemoteServiceProvider::class,
    ],
];
Salin selepas log masuk

三、创建服务消费者

  1. 创建控制器类

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);
    }
}
Salin selepas log masuk

上述代码中,TestController类中的test方法注入了RemoteServiceProvider,并调用了其remoteMethod方法。

  1. 配置路由

编辑config/routes.php

2. Buat penyedia perkhidmatan

    Buat kelas penyedia perkhidmatan
Buat kelas penyedia perkhidmatan dalam direktori app/Provider dan namakannya RemoteServiceProvider. Kelas ini akan menentukan kaedah perkhidmatan jauh.

use AppControllerTestController;

$router->addRoute(['POST'], '/test', [TestController::class, 'test']);
Salin selepas log masuk

Dalam kod di atas, RemoteServiceProvider mewarisi AbstractServiceClient dan mentakrifkan kaedah jauh bernama remoteMethod.

    Konfigurasikan penyedia perkhidmatan
Edit fail config/dependencies.php dan tambah kod berikut:

php bin/hyperf.php start
Salin selepas log masuk
Salin selepas log masuk

3. Buat pengguna perkhidmatan

Buat kelas pengawal

dalam < Cipta kelas pengawal dalam direktori kod>apl/Pengawal dan namakannya TestController. Perkhidmatan jauh akan dipanggil dalam kelas ini.

php bin/hyperf.php start
Salin selepas log masuk
Salin selepas log masuk
Dalam kod di atas, kaedah test dalam kelas TestController menyuntik RemoteServiceProvider dan memanggil remoteMethodnya 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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan