欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > 9. JSON RPC 服务

9. JSON RPC 服务

2024/10/26 12:31:46 来源:https://blog.csdn.net/weixin_42457618/article/details/143136759  浏览:    关键词:9. JSON RPC 服务

① JSON RPC 是一种基于 JSON 格式的轻量级的 RPC 协议标准,易于使用和阅读。
② 在 Hyperf 里由 hyperf/json-rpc 组件来实现,可自定义基于 HTTP 协议来传输,或直接基于 TCP 协议来传输。

一、服务中心

  • 目前 Hyperf 仅支持两种服务中心的组件支持: consulnacos

consul 安装与使用 【参照官网-consul.io】

  • ubuntu安装

    wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
    echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
    sudo apt update && sudo apt install consul
    
  • 通过GitHub 克隆

    git clone https://github.com/hashicorp/consul.git 
    cd consul
    
  • consul 的启动

    consul agent -dev
    consul agent -server -ui -bootstrap-expect=1 -client=0.0.0.0 -bind 你的ip地址 -data-dir=/状态数据存储文件夹/data >> /日志记录文件夹/logs/consul.log &
    consul agent -server -ui -bootstrap-expect=1 -client=0.0.0.0 -bind 192.168.0.174 -data-dir=/Users/jiajunguo/data/consul >> /Users/jiajunguo/logs/consul/consul.log &
    
  • consul 图形管理后台

    • 默认端口 8500

    • 127.0.0.1:8500
      在这里插入图片描述

二、服务提供者【provider】

确保 Hyperf 框架可正常启动及访问

1. 安装 统一接入层

composer require hyperf/json-rpc

2. 安装对应的适配器(consul)

composer require hyperf/service-governance-consul

3. 安装 JSON RPC 服务端

composer require hyperf/rpc-server

4. 定义服务提供者

4.1. 在app/Rpc下创建 CalculatorService.php

<?php
namespace App\Rpc;use Hyperf\RpcServer\Annotation\RpcService;/*** 服务发布* 参数列表*  1.name: 服务的名称*  2.server: 绑定该服务类发布所要承载的 Server,该属性对应 config/autoload/server.php 文件内 servers 下所对应的 name*  3.protocol: 服务暴露的协议*  4.publishTo: 要发布的服务中心,目前仅支持 consul、nacos 或为空,为空时代表不发布该服务到服务中心去*/
#[RpcService(name: 'CalculatorService', server: 'jsonrpc-http', protocol: 'jsonrpc-http', publishTo: 'consul')]
class CalculatorService implements CalculatorServiceInterface
{public function add

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com