mt-olympus/metis
Composer 安装命令:
composer require mt-olympus/metis
包简介
Load Balance implementation in PHP
README 文档
README
Introduction
This is a Dynamic Routing and Load Balance library made with PHP.
It's goal is to "choose" an endpoint to connect to in distributed systems, like in a micro service architeture.
You can use this library with Athena server, that can returns more than one server and use this module to choose one of them based on some rules and statistics about the servers.
You can inject a Metis instance to a Hermes, and it will automatically choose a server to connect to. More info on the Hermes documentation.
Components
- Service list
- Rule
Service list
- Static: from a configuration file
- Fetched: from a remote server
The fetched method is available through one of the following libraries:
- metis-athena: Fetches the list from a Athena (Service Discovery) service
- metis-demeter: Fetches the list from a Demeter (Distributed Configuration) service
Static server list
The list is an well formed array:
return [ 'metis' => [ 'services' => [ 'service1' => [ // a unique service identification [ 'host' => 'server1', 'uri' => 'http://192.168.1.2/v1/service1', ], [ 'host' => 'server2', 'uri' => 'https://server2/v1/service1', ], [ 'host' => 'server3', 'uri' => 'https://server3.mycompany.com:7001/v1/service1', ], ], 'service2' => [ // a unique service identification [ 'host' => 'server1', 'uri' => 'http://192.168.1.2:7002/v1/service2', ], ], ], ], ];
Strategy
Regardless the chosen strategy, if there is a Cerberus (Circuit Breaker) attached, the unavailable services will be filtered.
- RoundRobin: Cycles among the services in a specific order
- Random: Each time will select a random service from the list
- ResponseTime: Each service has it's response time measured and this time is weighted. The faster service have more probability to be chosen.
Installation
composer require mt-olympus/metis
Zend Expressive
Just copy the config/metis.global.php.dist to your expressive project as config/autoload/metis.global.php
Zend Framework
Include the module in your application.config.php
mt-olympus/metis 适用场景与选型建议
mt-olympus/metis 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 24.26k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2015 年 12 月 13 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 mt-olympus/metis 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 mt-olympus/metis 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 24.26k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-12-13