# jesse-micro **Repository Path**: chenxiaoge/jesse-micro ## Basic Information - **Project Name**: jesse-micro - **Description**: 基于Hyperf 3.1微服务架构、支持多模块路由、单机服务器部署、集群服务器部署. - **Primary Language**: PHP - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-05-14 - **Last Updated**: 2025-05-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 微服务架构 ### 使用技术 hyperf3.1 + nacos2.2.3 + es + kibana + zipkin + redis + mysql + rabbitmq ### 项目结构 ├── api-client 全局客户端(rpc客户端、消息队列生产者、一些模块常量) │   ├── Config 全局配置 │   │   ├── consumer.php │   │   └── dependencies.php │   ├── Order 订单模块客户端代码 │   │   ├── Clients │   │   │   └── OrderServiceClient.php │   │   ├── Interfaces │   │   │   └── OrderServiceInterface.php │   │   └── Producer │   │   └── DemoProducer.php │   └── User 用户模块客户端代码 │   ├── Clients │   │   └── UserServiceClient.php │   └── Interfaces │   └── UserServiceInterface.php ├── api-gateway 网关服务代码 │   ├── app │   │   ├── Admin 后台模块 │   │   │   ├── Controller │   │   │   │   ├── AbstractController.php │   │   │   │   └── IndexController.php │   │   │   └── Request │   │   │   └── IndexRequest.php │   │   ├── Api 接口模块 │   │   │   ├── Controller │   │   │   │   ├── AbstractController.php │   │   │   │   ├── V1 │   │   │   │   │   └── IndexController.php │   │   │   │   └── V2 │   │   │   │   └── IndexController.php │   │   │   └── Request │   │   │   └── IndexRequest.php │   │   └── ApiMini │   ├── bin │   │   └── hyperf.php │   ├── config 配置目录 │   │   ├── autoload │   │   ├── config.php │   │   ├── container.php │   ├── runtime 运行时缓存 │   │   ├── container │   │   └── logs 日志 │   └── test 单元测试 ├── cluster-micro-hyperf.sh 集群部署脚本 ├── common 公共核心代码 │   ├── Constants 公共常量 │   │   ├── EnumConstantsTrait.php │   │   ├── ErrorCode.php │   │   └── ResponseCode.php │   ├── Kernel │   │   ├── Annotation │   │   │   └── Validation.php │   │   ├── Exception 异常代码 │   │   │   ├── BusinessException.php │   │   │   └── Handler 异常处理器 │   │   │   ├── BusinessExceptionHandler.php │   │   │   ├── HttpExceptionHandler.php │   │   │   └── ValidationExceptionHandler.php │   │   ├── Facades 门面代码 │   │   │   ├── Cache.php │   │   │   └── Facade.php │   │   ├── Http http请求相关代码 │   │   │   ├── HttpRegisterServiceListener.php │   │   │   ├── Request.php │   │   │   └── Response.php │   │   ├── Listener 注册全局监听 │   │   │   ├── DbQueryExecutedListener.php │   │   │   ├── QueueHandleListener.php │   │   │   └── ResumeExitCoordinatorListener.php │   │   ├── Log 日志参数记录 │   │   │   └── AppendRequestIdProcessor.php │   │   ├── Model 模型代码封装 │   │   │   ├── Grammar.php │   │   │   └── Model.php │   │   ├── Nacos Nacos代码封装 │   │   │   ├── ConfigClient.php │   │   │   └── NacosDriver.php │   │   ├── Router 路由代码封装 │   │   │   └── DispatcherFactory.php │   │   ├── Rpc RPC代码封装 │   │   │   ├── RpcExceptionHandler.php │   │   │   └── ServiceClient.php │   │   └── functions.php 公共函数 │   └── storage │   └── languages 公共语言包 │   ├── en │   │   ├── message.php │   │   └── validation.php │   └── zh_CN │   ├── message.php │   └── validation.php ├── docker-compose.yml docker-composer 构建 ├── order-service 订单服务模块 │   ├── Dockerfile │   ├── app │   │   ├── Model 模型层 │   │   │   ├── Model.php │   │   │   └── OrderModel.php │   │   └── Services 业务逻辑层 │   │   └── OrderService.php │   ├── bin │   │   └── hyperf.php │   ├── config 配置目录 │   │   ├── autoload │   │   ├── config.php │   │   └── container.php │   ├── runtime 运行时缓存 │   │   ├── container │   │   ├── hyperf.output 守护进程日志 │   │   └── logs 日志目录 │   │   └── hyperf-2024-07-03.log │   └── test 单元测试 │   ├── Cases ├── standalone-micro-hyperf.sh 单机部署脚本 ├── task-service 任务服务模块 │   ├── app │   │   ├── Process 进程任务 │   │   │   └── AsyncQueueConsumer.php │   │   ├── Queue 队列任务 │   │   │   └── Consumer │   │   │   └── DemoConsumer.php │   │   └── Task 定时任务 │   │   └── TestCrontab.php │   ├── bin 启动脚本 │   │   └── hyperf.php │   ├── config │   │   ├── autoload │   │   ├── config.php │   │   └── container.php │   ├── runtime 运行时缓存 │   │   ├── container │   │   └── hyperf.output │   └── test 单元测试 ├── user-service 用户服务模块 │   ├── Dockerfile │   ├── app │   │   ├── Model 模型层 │   │   │   ├── Model.php │   │   │   └── OrderModel.php │   │   └── Services 业务逻辑层 │   │   └── OrderService.php │   ├── bin │   │   └── hyperf.php │   ├── config 配置目录 │   │   ├── autoload │   │   ├── config.php │   │   └── container.php │   ├── runtime 运行时缓存 │   │   ├── container │   │   ├── hyperf.output 守护进程日志 │   │   └── logs 日志目录 │   │   └── hyperf-2024-07-03.log │   └── test 单元测试 │   ├── Cases ### 单机服务器部署 sh ./standalone-micro-hyperf.sh start ### 集群服务器部署 #### 1.网关服务器 ##### 环境变量配置 vim /etc/profile export MICRO_MODULE_NAME=api-gateway #### 2.订单服务器 ##### 环境变量配置 vim /etc/profile export MICRO_MODULE_NAME=order-service #### 3.用户服务器 ##### 环境变量配置 vim /etc/profile export MICRO_MODULE_NAME=user-service #### 4.任务服务器 ##### 环境变量配置 vim /etc/profile export MICRO_MODULE_NAME=task-service #### 5.启动每个服务 // 根据环境变量启动对应微服务模块 // 运维在每台机器上配置环境变量MICRO_MODULE_NAME对应的微服务,ci/cd工具就可以自动部署更新。 // 不借助docker、k8s sh ./cluster-micro-hyperf.sh start #### 6.分布式日志 filebeat + es + kibana #### 7.docker部署 docker-composer up -d #### 8.Nacos配置中心(配置自动追加) ![center-config.png](./doc/center-config.png) #### 9.如果觉得不错(☕️) ![payment.png](./doc/payment.png)