菜单开关

周梦康 发表于 2017-10-29 1051 次浏览

免费领取阿里云优惠券 我的直播 - 《PHP 进阶之路》

以 http 服暴露的方式为例:

  1. 当前连接的 soa 注册中心的ip:port,方便排查服务注册不上等问题
  2. 本服务器提供的服务列表,汇总使用,同时也供控制台测试接口抓取
  3. 本服务器消费的服务列表

demo

define('ROOT', dirname(__DIR__));

function getCenter()
{
    return include ROOT . "/config/center.php";
}

function getProvider()
{
    $config = include ROOT . "/config/provider.php";
    $list = array_keys($config['services']);

    $res = [];
    foreach ($list as $service) {
        include ROOT . "/services/" . $service . ".php";
        $class = new ReflectionClass($service);
        $methods = $class->getMethods(ReflectionMethod::IS_STATIC
            | ReflectionMethod::IS_PUBLIC);

        foreach ($methods as $item) {
            $params = [];
            foreach ($item->getParameters() as $parameter) {
                $params[] = $parameter->getName();
            }
            $res[$service][] = [
                'method' => $item->name,
                'params' => $params,
            ];
        }
    }
    return $res;
}

function getConsumer()
{
    if (file_exists(ROOT . "/config/consumer.php")) {
        return include ROOT . "/config/consumer.php";
    }
    return [];
}

$res = [
    'center' => getCenter(),
    'provider' => getProvider(),
    'consumer' => getConsumer()
];

echo json_encode($res);

截图

服务治理深入浅出(5)- 各服务自己的服务汇总输出

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表