日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

ThinkPHP8框架集成Swoole實(shí)現(xiàn)高性能RPC服務(wù)

來(lái)源: 責(zé)編: 時(shí)間:2024-07-02 17:37:07 182觀看
導(dǎo)讀介紹RPC 即遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call),是一種分布式計(jì)算技術(shù),允許一個(gè)程序在不同的計(jì)算機(jī)上調(diào)用另一個(gè)程序的函數(shù)或方法,就像調(diào)用本地程序中的函數(shù)一樣簡(jiǎn)單。RPC 隱藏了底層網(wǎng)絡(luò)通信的細(xì)節(jié),使得開(kāi)發(fā)者能夠像處理

介紹

RPC 即遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call),是一種分布式計(jì)算技術(shù),允許一個(gè)程序在不同的計(jì)算機(jī)上調(diào)用另一個(gè)程序的函數(shù)或方法,就像調(diào)用本地程序中的函數(shù)一樣簡(jiǎn)單。RPC 隱藏了底層網(wǎng)絡(luò)通信的細(xì)節(jié),使得開(kāi)發(fā)者能夠像處理本地調(diào)用一樣處理遠(yuǎn)程調(diào)用。rfT28資訊網(wǎng)——每日最新資訊28at.com

圖片rfT28資訊網(wǎng)——每日最新資訊28at.com

分布式調(diào)用

解決分布式系統(tǒng)中,服務(wù)之間的調(diào)用問(wèn)題。遠(yuǎn)程調(diào)用時(shí),要能夠像本地調(diào)用一樣方便,讓調(diào)用者感知不到遠(yuǎn)程調(diào)用的邏輯。節(jié)點(diǎn)角色:rfT28資訊網(wǎng)——每日最新資訊28at.com

  • Server: 暴露服務(wù)的服務(wù)提供方
  • Client: 調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方
  • Registry: 服務(wù)注冊(cè)與發(fā)現(xiàn)的注冊(cè)中心

Think-Swoole 中已經(jīng)實(shí)現(xiàn)了的基于 TCP 的 PRC,這樣我們使用傳統(tǒng)型框架也可以做簡(jiǎn)單的分布式架構(gòu)應(yīng)用了。rfT28資訊網(wǎng)——每日最新資訊28at.com

PHP 擴(kuò)展安裝

  • 已經(jīng)編譯安裝 Swoole 擴(kuò)展
  • 不能安裝 Xdebug 擴(kuò)展

依賴包安裝

composer require topthink/think-swoole

安裝完成后會(huì)在項(xiàng)目 config 配置目錄生成 swoole 配置文件 swoole.phprfT28資訊網(wǎng)——每日最新資訊28at.com

服務(wù)端

以下配置都是在config/swoole.php 配置文件中配置rfT28資訊網(wǎng)——每日最新資訊28at.com

HTTP 服務(wù)配置

圖片圖片rfT28資訊網(wǎng)——每日最新資訊28at.com

開(kāi)啟 RPC 并注冊(cè)服務(wù)

1、配置rfT28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片rfT28資訊網(wǎng)——每日最新資訊28at.com

2、定義 RPC 接口抽象方法rfT28資訊網(wǎng)——每日最新資訊28at.com

圖片rfT28資訊網(wǎng)——每日最新資訊28at.com

3、定義 RPC 服務(wù)類,繼承 RPC 接口rfT28資訊網(wǎng)——每日最新資訊28at.com

<?phpdeclare(strict_types=1);namespace app/rpc/service;use app/rpc/contracts/UserInterface;class UserSerivce implements UserInterface{    public function add($name)    {        return "【修改】你添加名稱是:" . $name;    }    public function list()    {        return "list";    }}

為什么一定要寫 interface,不直接實(shí)現(xiàn)功能?rfT28資訊網(wǎng)——每日最新資訊28at.com

think/swoole/rpc/server/Dispatcher下prepareServices方法看下就懂 (系統(tǒng)定義就必須要這么寫) 自我理解 這么寫的好處 大型項(xiàng)目經(jīng)理直接寫完下面實(shí)現(xiàn)。rfT28資訊網(wǎng)——每日最新資訊28at.com

開(kāi)啟服務(wù)(服務(wù)端)

# php think swoole startStarting swoole http server...Swoole http server started: <http://0.0.0.0:8787>You can exit with `CTRL-C`

客戶端

以下配置都是在config/swoole.php 配置文件中配置rfT28資訊網(wǎng)——每日最新資訊28at.com

HTTP 服務(wù)配置

圖片圖片rfT28資訊網(wǎng)——每日最新資訊28at.com

配置 RPC 文件配置服務(wù)端連接信息

1、配置文件rfT28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片rfT28資訊網(wǎng)——每日最新資訊28at.com

2、執(zhí)行命令生成 RPC 服務(wù)接口rfT28資訊網(wǎng)——每日最新資訊28at.com

php think rpc:interface

以上命令執(zhí)行成功后,會(huì)在項(xiàng)目 app 下生成一個(gè)rpc.php的文件,它就是 RPC 服務(wù)接口調(diào)用文件了。rpc.php 文件內(nèi)容rfT28資訊網(wǎng)——每日最新資訊28at.com

<?php/** * This file is auto-generated. */declare(strict_types=1);namespace rpc/contract/userservice;interface UserInterface{ public function add($name); public function list();}return ['userservice' => ['rpc/contract/userservice/UserInterface']];

注意看下最后的 return 中,就是每個(gè)服務(wù)接口的命名空間了;在控制器中使用該命名空間實(shí)例對(duì)象就可以調(diào)用rfT28資訊網(wǎng)——每日最新資訊28at.com

3、實(shí)際調(diào)用過(guò)程rfT28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片rfT28資訊網(wǎng)——每日最新資訊28at.com

參考代碼rfT28資訊網(wǎng)——每日最新資訊28at.com

use rpc/contract/userservice/UserInterface;...public function rpctest(UserInterface $userInterface){ return $userInterface->add('Tinywan');}

4、客戶端請(qǐng)求訪問(wèn)rfT28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片rfT28資訊網(wǎng)——每日最新資訊28at.com

熱更新

由于Swoole服務(wù)運(yùn)行過(guò)程中 PHP 文件是常駐內(nèi)存運(yùn)行的,這樣可以避免重復(fù)讀取磁盤、重復(fù)解釋編譯 PHP,以便達(dá)到最高性能。所以更改業(yè)務(wù)代碼后必須手動(dòng)reload或者restart才能生效。rfT28資訊網(wǎng)——每日最新資訊28at.com

think-swoole擴(kuò)展提供了熱更新功能,在檢測(cè)到相關(guān)目錄的文件有更新后會(huì)自動(dòng)reload,從而不需要手動(dòng)進(jìn)行reload操作,方便開(kāi)發(fā)調(diào)試。rfT28資訊網(wǎng)——每日最新資訊28at.com

如果你的應(yīng)用開(kāi)啟了調(diào)試模式,默認(rèn)是開(kāi)啟熱更新的。原則上,在部署模式下不建議開(kāi)啟文件監(jiān)控,一方面有性能損耗,另外一方面對(duì)文件所做的任何修改都需要確認(rèn)無(wú)誤才能進(jìn)行更新部署。rfT28資訊網(wǎng)——每日最新資訊28at.com

熱更新的默認(rèn)配置如下:rfT28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)我們?cè)趹?yīng)用的根目錄下定義一個(gè)特殊的.env環(huán)境變量文件,里面設(shè)置了APP_DEBUG = true會(huì)默認(rèn)開(kāi)啟熱更新,你也可以直接把enable設(shè)置為 true。rfT28資訊網(wǎng)——每日最新資訊28at.com

錯(cuò)誤

錯(cuò)誤一 與 xdebug 沖突rfT28資訊網(wǎng)——每日最新資訊28at.com

Swoole/Server::start(): Using Xdebug in coroutines is extremely dangerous

php 擴(kuò)展 xdebug 和 easyswoole 沖突,報(bào)警告,此時(shí)需要禁用 php 的 xdebug 擴(kuò)展即可rfT28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-98193-0.htmlThinkPHP8框架集成Swoole實(shí)現(xiàn)高性能RPC服務(wù)

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 構(gòu)建工程化:各類語(yǔ)言項(xiàng)目配置Supervisor

下一篇: 聊聊大文件分片上傳和分片下載

標(biāo)簽:
  • 熱門焦點(diǎn)
  • K60至尊版狂暴引擎2.0加持:超177萬(wàn)跑分?jǐn)孬@性能第一

    Redmi的后性能時(shí)代戰(zhàn)略發(fā)布會(huì)今天下午如期舉辦,在本次發(fā)布會(huì)上,Redmi公布了多項(xiàng)關(guān)于和聯(lián)發(fā)科的深度合作,以及新機(jī)K60 Ultra在軟件和硬件方面的特性,例如:“K60 至尊版,雙芯旗艦
  • 分布式系統(tǒng)中的CAP理論,面試必問(wèn),你理解了嘛?

    對(duì)于剛剛接觸分布式系統(tǒng)的小伙伴們來(lái)說(shuō),一提起分布式系統(tǒng),就感覺(jué)高大上,深不可測(cè)。而且看了很多書和視頻還是一臉懵逼。這篇文章主要使用大白話的方式,帶你理解一下分布式系統(tǒng)
  • Flowable工作流引擎的科普與實(shí)踐

    一.引言當(dāng)我們?cè)谌粘9ぷ骱蜆I(yè)務(wù)中需要進(jìn)行各種審批流程時(shí),可能會(huì)面臨一系列技術(shù)和業(yè)務(wù)上的挑戰(zhàn)。手動(dòng)處理這些審批流程可能會(huì)導(dǎo)致開(kāi)發(fā)成本的增加以及業(yè)務(wù)復(fù)雜度的上升。在這
  • 讓我們一起聊聊文件的操作

    文件【1】文件是什么?文件是保存數(shù)據(jù)的地方,是數(shù)據(jù)源的一種,比如大家經(jīng)常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數(shù)據(jù),它既可以保
  • 一個(gè)注解實(shí)現(xiàn)接口冪等,這樣才優(yōu)雅!

    場(chǎng)景碼猿慢病云管理系統(tǒng)中其實(shí)高并發(fā)的場(chǎng)景不是很多,沒(méi)有必要每個(gè)接口都去考慮并發(fā)高的場(chǎng)景,比如添加住院患者的這個(gè)接口,具體的業(yè)務(wù)代碼就不貼了,業(yè)務(wù)偽代碼如下:圖片上述代碼有
  • 余承東:AI大模型技術(shù)的發(fā)展將會(huì)帶來(lái)下一代智能終端操作系統(tǒng)的智慧體驗(yàn)

    8月4日消息,2023年華為開(kāi)發(fā)者大會(huì)(HDC.Together)今天正式開(kāi)幕,華為發(fā)布HarmonyOS 4、全新升級(jí)的鴻蒙開(kāi)發(fā)套件、HarmonyOS Next開(kāi)發(fā)者預(yù)覽版本等一系列
  • 三星顯示已開(kāi)始為AR設(shè)備研發(fā)硅基LED微顯示屏

    7月18日消息,據(jù)外媒報(bào)道,隨著蘋果首款頭顯產(chǎn)品Vision Pro在6月份正式推出,AR/VR/MR等頭顯產(chǎn)品也就將成為各大公司下一個(gè)重要的競(jìng)爭(zhēng)領(lǐng)域,對(duì)顯示屏這一關(guān)
  • 英特爾Xe-HP項(xiàng)目終止,將專注Xe-HPC/HPG系列顯卡

    據(jù)10 月 31 日消息報(bào)道,英特爾高級(jí)副總裁兼加速計(jì)算系統(tǒng)和圖形事業(yè)部總經(jīng)理 表示,Xe-HP“ Arctic Sound” 系列服務(wù)器 GPU 已經(jīng)應(yīng)用于 oneAPI devcloud 云服
  • SN570 NVMe SSD固態(tài)硬盤 價(jià)格與性能兼具

    SN570 NVMe SSD固態(tài)硬盤是西部數(shù)據(jù)發(fā)布的最新一代WD Blue系列的固態(tài)硬盤,不僅閃存技術(shù)更為精進(jìn),性能也得到了進(jìn)一步的躍升。WD Blue SN570 NVMe SSD的包裝外
Top 主站蜘蛛池模板: 兴仁县| 遂溪县| 大方县| 图们市| 和静县| 黔南| 灵石县| 澜沧| 铜山县| 定襄县| 五指山市| 邯郸县| 商丘市| 青铜峡市| 文昌市| 廊坊市| 平度市| 洪湖市| 增城市| 工布江达县| 张家界市| 隆昌县| 南澳县| 万载县| 望奎县| 嘉鱼县| 宜昌市| 巴林左旗| 灌云县| 彰化市| 安顺市| 金湖县| 策勒县| 太康县| 句容市| 胶州市| 丘北县| 庆安县| 宁明县| 莫力| 五河县|