Download the PHP package reactphp-x/register-center without Composer
On this page you can find all versions of the php package reactphp-x/register-center. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package register-center
ReactPHP X 服务注册中心
基于 ReactPHP 构建的高性能分布式服务注册与发现中心,支持服务注册、发现、动态节点管理以及主节点与注册中心之间的实时通信。
特性
- 🚀 高性能异步: 基于 ReactPHP 事件循环,支持高并发
- 🔄 分布式架构: 支持多个注册中心和主节点
- 🎯 服务注册与发现: 动态服务注册、执行和管理
- 🔗 实时通信: 节点间双向实时通信
- 🔄 自动重连: 智能重连机制,断线自动恢复
- ⚙️ 可配置重试: 灵活的重试策略配置
- 📝 完善日志: 基于 Monolog 的全方位日志支持
- 🔐 身份验证: 基于令牌的安全认证机制
- 🎲 动态服务执行: 支持远程服务调用和执行
- 📡 节点管理: 动态添加、移除注册中心节点
系统要求
- PHP 8.0 或更高版本
- Composer
安装
快速开始
1. 启动注册中心
创建一个注册中心服务器,监听端口 8010:
2. 创建主节点
创建一个主节点并注册服务:
3. 运行示例
高级特性
服务注册与本地调用
1. 服务注册
2. 本地服务调用
远程服务调用
1. 单次远程调用
2. 批量远程调用
3. 异步服务调用模式
4. 服务调用性能优化
服务调用最佳实践
1. 服务设计原则
2. 错误处理策略
3. 性能监控与调试
4. 服务版本管理
身份验证与安全
主节点连接时需要进行身份验证:
动态节点管理
注册中心支持动态添加和移除节点:
服务监控
获取连接状态和服务信息:
完整的日志配置
示例与使用场景
完整示例
在 examples 目录下提供了完整的工作示例:
register.php:主注册中心示例 - 监听端口 8010,管理主节点连接register1.php:从注册中心示例 - 监听端口 8011,作为备用注册中心master.php:主节点实现示例 - 注册服务并连接到注册中心
运行完整示例
运行后您将看到:
- 主节点连接到主注册中心 (8010)
- 注册中心定期在主节点上执行服务方法
- 10秒后,主注册中心通知主节点连接到从注册中心 (8011)
- 20秒后,主注册中心通知主节点断开从注册中心连接
架构说明
使用场景
1. 微服务架构
2. 分布式任务处理
3. 负载均衡
4. 故障转移
当主注册中心不可用时,主节点会自动连接到备用注册中心:
API 参考
Register (注册中心)
构造函数
主要方法
start()- 启动注册中心getConnectedMasters()- 获取已连接的主节点列表getServicesMaster()- 获取主节点服务信息runOnAllMasters(callable $callback)- 在所有主节点上执行回调runOnMaster(string $masterId, callable $callback)- 在指定主节点上执行回调writeRawMessageToAllMasters(array $message)- 向所有主节点发送原始消息
Master (主节点)
构造函数
主要方法
connectViaConnector(string $host, int $port)- 连接到注册中心removeConnection(string $host, int $port)- 移除到指定注册中心的连接on(string $event, callable $listener)- 添加事件监听器
事件
connect- 连接建立时触发error- 发生错误时触发close- 连接关闭时触发
ServiceRegistry (服务注册表)
静态方法
register(string $name, object $instance, array $metadata = [])- 注册服务get(string $name)- 获取服务实例has(string $name)- 检查服务是否存在remove(string $name)- 移除服务all()- 获取所有服务execute(string $name, string $method, array $arguments = [])- 执行服务方法
错误处理与调试
错误处理
调试技巧
性能优化
连接池管理
日志级别优化
内存优化
常见问题
Q: 如何处理网络中断?
A: 主节点具备自动重连功能,配置 reconnectOnClose: true 即可在连接断开时自动重连。
Q: 如何在生产环境中使用?
A: 建议使用进程管理器如 Supervisor 来管理进程,并配置适当的日志级别和重试参数。
Q: 支持多少个并发连接?
A: 基于 ReactPHP,可以处理数千个并发连接,具体取决于服务器配置。
Q: 如何扩展到多个注册中心?
A: 使用动态节点管理功能,可以运行时添加和移除注册中心。
贡献
欢迎贡献代码!请遵循以下步骤:
- Fork 项目
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
开发环境设置
许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件
链接
ReactPHP X Register Center - 让分布式服务通信变得简单高效 🚀
All versions of register-center with dependencies
PHP Build Version
Package Version
The package reactphp-x/register-center contains the following files
Loading the files please wait ...