9. JSON RPC 服务

ops/2024/10/23 20:55:23/

① 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. 定义服务提供者

php_66">4.1. 在app/Rpc下创建 CalculatorService.php

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.ppmy.cn/ops/127917.html

相关文章

python爬虫,爬取网页壁纸图片

python爬虫实战&#xff0c;爬取网页壁纸图片 使用python爬取壁纸图片&#xff0c;保存到本地。 爬取彼岸图网&#xff0c;网站地址https://pic.netbian.com/ 本人小白&#xff0c;记录一下学习过程。 开始前的准备 安装python环境&#xff0c;略。 python编辑器pycharm2…

Java中的集合(1)——List、Map和Set

Java标准库自带的java.util包提供了集合类&#xff1a;Collection&#xff0c;它是除Map外所有其他集合类的根接口。Java的java.util包中提供了以下三种类型的集合&#xff1a; List&#xff1a;一种有序列表的集合&#xff0c;例如&#xff0c;按索引排列的Student的List&…

CR6609 刷机

如果要刷openwrt&#xff0c;必须用pb-boot&#xff0c;如果用breed&#xff0c;会进不了系统。 刷了breed的话&#xff0c;可以在breed改刷pb-boot&#xff0c;在bootloader那里选择pb-boot的固件上传更新即可 固件更新----选择Bootloader----上传pb-boot文件----选择自动重…

Android便携式WLAN热点分析

Android便携式WLAN热点分析 Platform: RK3368 OS: Android 6.0 Kernel: 3.10.0 文章目录 Android便携式WLAN热点分析分析Android开启WLAN热点的路由策略和防火墙便携式WLAN热点开启流程路由表路由策略iptables(防火墙) 用hostapd命令手动开启WLAN热点1.加载驱动2.配置wlan0 …

【Flutter】页面布局:流式布局(Wrap、Flow)

在移动应用开发中&#xff0c;布局是非常重要的一部分&#xff0c;尤其是当我们需要处理动态或自适应的内容时。Flutter 提供了几种布局方式来帮助开发者处理复杂的 UI 场景&#xff0c;其中 Wrap 和 Flow 是常用的流式布局组件。它们在处理多个子组件时表现优越&#xff0c;尤…

MongoDB 数据库:特性、应用与使用指南

一、引言 在当今数据驱动的时代&#xff0c;数据库管理系统的选择对于企业和开发者来说至关重要。MongoDB 作为一种非关系型数据库&#xff0c;以其独特的优势和功能在众多领域崭露头角。它为处理海量、多样化的数据提供了一种灵活且高效的解决方案。无论是互联网应用、大数据…

【命令操作】Linux中多种关机和重启的命令介绍 _ 统信 _ 麒麟 _ 方德

往期好文&#xff1a;【系统配置】信创系统配置文件保护与防篡改 | 统信 | 麒麟 | 方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在Linux系统中多种关机和重启命令介绍的文章。Linux作为一个广泛应用的开源操作系统&#xff0c;提供了多种关机和重启的方式…