当前位置: 首页 > article >正文

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

http://www.kler.cn/news/361597.html

相关文章:

  • 【每日刷题】Day142
  • 【贪心算法】刷刷刷刷刷刷题(上)
  • Android 13 修改系统源码强制夸克浏览器支持横竖屏显示
  • 如何在算家云搭建GPT-SOVITS(语音转换)
  • Android广播限制Background execution not allowed: receiving Intent { act=
  • C++编程语言:抽象机制:特殊运算符(Bjarne Stroustrup)
  • Java最全面试题->Java基础面试题->JavaWeb面试题->Git/SVN面试题
  • Spring Boot助力:构建响应式论坛网站
  • python 结构作业
  • Maven项目管理工具-初始+环境配置
  • Anthropic 发布Claude 3.5 Haiku 以及一项炸裂的新功能 AI可以模仿人类访问电脑
  • 【Linux系统编程】第三十六弹---深入探索进程间通信:封装共享内存类并实现进程间数据共享
  • 点跟踪论文—RAFT: Recurrent All-Pairs Field Transforms for Optical Flow-递归的全对场光流变换
  • Python基础——类与对象
  • C++算法练习-day15——1.两数之和
  • 打造开放式语音智能体
  • 拴柱说Mac之Mac的高效使用技巧第三期
  • 源码编译方式安装htppd软件
  • mysql学习教程,从入门到精通,SQL导入数据(44)
  • Java重修笔记 UDP 网络通信
  • python从0快速上手(十六)小游戏开发
  • 某科技——北京——国护蓝中研判岗
  • 至多六步,linux挂载磁盘
  • DORA 机器人中间件学习教程(6)——激光点云预处理
  • 电脑输入账号密码后,屏幕黑屏只有鼠标解决办法
  • OBOO鸥柏:引领液晶拼接大屏kvm集中控制系统的技术革新