From b8da879cae43333925f9985160ec2baa9160f39b Mon Sep 17 00:00:00 2001 From: zj Date: Thu, 6 Aug 2026 16:18:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- consumers/course_service.php | 56 ++++++++++ src/CourseService/CourseService.php | 13 +++ .../JsonRpcInterface/CourseFileInterface.php | 42 ++++++++ .../CourseServiceInterface.php | 102 ++++++++++++++++++ .../JsonRpcInterface/CourseUnitInterface.php | 34 ++++++ .../JsonRpcInterface/CourseVideoInterface.php | 68 ++++++++++++ src/FileService/FileService.php | 8 +- .../ExcelParseInterface.php | 2 +- .../FileServiceInterface.php | 2 +- .../QuestionParseInterface.php | 2 +- .../QuestionQrCodeInterface.php | 2 +- 11 files changed, 323 insertions(+), 8 deletions(-) create mode 100644 consumers/course_service.php create mode 100755 src/CourseService/CourseService.php create mode 100644 src/CourseService/JsonRpcInterface/CourseFileInterface.php create mode 100755 src/CourseService/JsonRpcInterface/CourseServiceInterface.php create mode 100644 src/CourseService/JsonRpcInterface/CourseUnitInterface.php create mode 100644 src/CourseService/JsonRpcInterface/CourseVideoInterface.php rename src/FileService/{ => JsonRpcInterface}/ExcelParseInterface.php (79%) rename src/FileService/{ => JsonRpcInterface}/FileServiceInterface.php (89%) rename src/FileService/{ => JsonRpcInterface}/QuestionParseInterface.php (89%) rename src/FileService/{ => JsonRpcInterface}/QuestionQrCodeInterface.php (85%) diff --git a/consumers/course_service.php b/consumers/course_service.php new file mode 100644 index 0000000..962f446 --- /dev/null +++ b/consumers/course_service.php @@ -0,0 +1,56 @@ + 'CourseService', + // 服务接口名,可选,默认值等于 name 配置的值,如果 name 直接定义为接口类则可忽略此行配置,如 name 为字符串则需要配置 service 对应到接口类 + 'service' => \Dhd\Micro\CourseService\CourseService::class, + // 对应容器对象 ID,可选,默认值等于 service 配置的值,用来定义依赖注入的 key + // 'id' => \App\JsonRpc\File\FileServiceInterface::class, + // 服务提供者的服务协议,可选,默认值为 jsonrpc-http + // 可选 jsonrpc-http jsonrpc jsonrpc-tcp-length-check + 'protocol' => 'jsonrpc-http', + // 负载均衡算法,可选,默认值为 random + 'load_balancer' => 'random', + // 这个消费者要从哪个服务中心获取节点信息,如不配置则不会从服务中心获取节点信息 + 'registry' => [ + 'protocol' => env("CONSUMERS_PROTOCOL", "consul"), + 'address' => env("CONSUMERS_ADDRESS", "http://127.0.0.1:8500"), + ], + // 'nodes' => [ + // ['host' => '172.18.0.2', 'port' => 9501], + // ], + // 配置项,会影响到 Packer 和 Transporter + 'options' => [ + 'connect_timeout' => 5.0, + 'recv_timeout' => 5.0, + 'settings' => [ + // 根据协议不同,区分配置 + 'open_eof_split' => true, + 'package_eof' => "\r\n", + // 'open_length_check' => true, + // 'package_length_type' => 'N', + // 'package_length_offset' => 0, + // 'package_body_offset' => 4, + ], + // 重试次数,默认值为 2,收包超时不进行重试。暂只支持 JsonRpcPoolTransporter + 'retry_count' => 2, + // 重试间隔,毫秒 + 'retry_interval' => 100, + // 使用多路复用 RPC 时的心跳间隔,null 为不触发心跳 + 'heartbeat' => 30, + // 当使用 JsonRpcPoolTransporter 时会用到以下配置 + 'pool' => [ + 'min_connections' => 1, + 'max_connections' => 32, + 'connect_timeout' => 10.0, + 'wait_timeout' => 3.0, + 'heartbeat' => -1, + 'max_idle_time' => 60.0, + ], + ], +]; diff --git a/src/CourseService/CourseService.php b/src/CourseService/CourseService.php new file mode 100755 index 0000000..0745a8b --- /dev/null +++ b/src/CourseService/CourseService.php @@ -0,0 +1,13 @@ + Date: Thu, 6 Aug 2026 17:10:13 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/CourseService/CourseService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CourseService/CourseService.php b/src/CourseService/CourseService.php index 0745a8b..c19f92c 100755 --- a/src/CourseService/CourseService.php +++ b/src/CourseService/CourseService.php @@ -4,7 +4,7 @@ * 课程服务 */ -namespace Dhd\Micro\CourseService; +namespace Dhd\Micro\Interface\CourseService; interface CourseService extends \Dhd\Micro\Interface\CourseService\JsonRpcInterface\CourseServiceInterface,