chllen / hyperf-service-micro-etcd
There is no license information available for the latest version (v1.0.0-alpha) of this package.
A etcd adapter for service go-micro.
v1.0.0-alpha
2023-02-18 14:32 UTC
Requires
- php: >=7.2
- chllen/hyperf-grpc-client: ~1.0.0
- hyperf/contract: ~2.2.0
- hyperf/service-governance: ~2.2.0
- hyperf/utils: ~2.2.0
This package is auto-updated.
Last update: 2025-02-18 19:38:02 UTC
README
#介绍 该组件基于hyperf2.0框架,实现了以etcd为服务中心的grpc服务注册,支持于go-micro框架数据交互。
安装组件:
composer require hyperf/grpc-server
#配置: 组件由 config/autoload/services.php 配置文件来驱动,配置文件如下:
return [ //省略其他配置 'go_micro_consumers' =>[ [ 'service_name'=>'userService', 'path_prefix'=>'/micro/registry', 'registry' => [ 'protocol' => 'etcd', 'address' => '127.0.0.1:2379', ], 'protocol' => 'grpc', 'load_balancer' => 'random', 'nodes' => [ ['host' => '127.0.0.1', 'port' => 9504], ] ], ], ]
gRPC server 服务器配置 server.php 文件
'servers' => [ .... [ 'name' => 'grpc', 'type' => Server::SERVER_HTTP, 'host' => '0.0.0.0', 'port' => 9503, 'sock_type' => SWOOLE_SOCK_TCP, 'callbacks' => [ Event::ON_REQUEST => [\Hyperf\GrpcServer\Server::class, 'onRequest'], ], ], ],
#示例: gRPC server 路由配置: routes.php 文件
Router::addServer('grpc', function () { Router::addGroup('/orderService', function () { Router::post('/create', 'App\Controller\OrderController@create'); }); });
新建OrderController.php 文件中的 createOrder 方法:
/** * @RpcService(name="orderService", version='latest',protocol="grpc",publishTo="etcd") */ public function create(Order $order) { $message = new OrderReply(); $message->setMessage("Order created success"); return $message; }
.proto 文件中的定义和 gRPC server 路由的对应关系: /{package}.{service}/{rpc}