diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3228f02 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +.buildpath +.settings/ +.project +*.patch +.idea/ +.git/ +runtime/ +vendor/ +.phpintel/ +.env +.DS_Store +.phpunit* +*.cache +.vscode/ +/phpstan.neon +/phpunit.xml +composer.lock \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..b268302 --- /dev/null +++ b/composer.json @@ -0,0 +1,14 @@ +{ + "name": "dhd/hyperf-micro-service-core-interface", + "type": "library", + "description": "app微服务,服务接口汇总", + "require": { + "php": ">=8.1", + "hyperf/helper": "^3.1" + }, + "autoload": { + "psr-4": { + "Dhd\\Micro\\Interface\\": "src/" + } + } +} \ No newline at end of file diff --git a/consumers/ai_service.php b/consumers/ai_service.php new file mode 100644 index 0000000..31fab6d --- /dev/null +++ b/consumers/ai_service.php @@ -0,0 +1,68 @@ + 'AIService', + // 服务接口名,可选,默认值等于 name 配置的值,如果 name 直接定义为接口类则可忽略此行配置,如 name 为字符串则需要配置 service 对应到接口类 + 'service' => AIService::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', 'nacos'), + 'address' => env('CONSUMERS_ADDRESS', 'http://192.168.28.199:8848'), + ], + // 'nodes' => [ + // [ + // 'host' => env('NOTICE_SERVICE_HOST', '127.0.0.1'), + // 'port' => env('NOTICE_SERVICE_PORT', 9610), + // ], + // ], + // 配置项,会影响到 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/AIService/AIService.php b/src/AIService/AIService.php new file mode 100644 index 0000000..dfeac2b --- /dev/null +++ b/src/AIService/AIService.php @@ -0,0 +1,12 @@ +