摘要:新增新增模型方法,主動(dòng)刷新數(shù)據(jù)表結(jié)構(gòu)緩存。分布式并發(fā)模型是什么是一種與共享內(nèi)存對(duì)應(yīng)的并發(fā)模型,具有資源獨(dú)占性。都分布在不同的機(jī)器上。
One - 極簡(jiǎn) . 高性能 . 松耦合 . 分布式 . 可運(yùn)行于多種環(huán)境(cli,apache/php-fpm,swoole)
碼云: https://gitee.com/vicself/one
github: https://github.com/lizhichao/one
適用場(chǎng)景
常規(guī)web/app后端服務(wù)器
游戲/im即時(shí)通訊服務(wù)器
tcp/udp物聯(lián)網(wǎng)服務(wù)器
綜合性項(xiàng)目,各種混合協(xié)議通訊
修復(fù)問題使用文件(file)緩存時(shí),不設(shè)置過期時(shí)間緩存失敗問題。
新增新增模型方法flushTableInfo,主動(dòng)刷新數(shù)據(jù)表結(jié)構(gòu)緩存。
分布式并發(fā)模型Actor
Actor 是什么?是一種與共享內(nèi)存對(duì)應(yīng)的并發(fā)模型,具有資源獨(dú)占性。可以理解為一個(gè)對(duì)象,它有屬性和方法。
主要方法Actor::init() 創(chuàng)建Actor
Actor::drop($actor_id) 刪除Actor
Actor::call($actor_id, $method, $args) Actor通訊
適合場(chǎng)景每個(gè)對(duì)象都在變化,對(duì)象之間有通訊的場(chǎng)景。
例1 游戲:每個(gè)角色就是一個(gè)actor實(shí)例:
屬性:生命值,攻擊力
方法:生命值加/減
class UserActor extends Actor { // 生命值 private $life_value = 10; // 攻擊力 private $power_value = 5; // 長(zhǎng)連接fd public $fd; // 返回自己的actor id public function getActorId() { return $this->actor_id; } // 改變生命值 并 通知客戶端 public function changeLifeValue($n) { $this->life_value += $n; $this->noticeClient(); } // 攻擊某個(gè) Actor => 減少Actor的生命值 // 被攻擊Actor可以其他進(jìn)程或者其他機(jī)器上 public function fire($actor_id) { $this->call($actor_id,"changeLifeValue",[$this->power_value]); } // 通知客戶端當(dāng)前的生命值 public function noticeClient() { self::$server->push($this->fd,$this->life_value); } } // 實(shí)例化一個(gè)角色 $user1 = UserActor::init(); // 獲取這個(gè)角色的actor_id $actor_id = $user1->getActorId(); // 角色死亡 銷毀 actor UserActor::drop($actor_id);Vs 共享內(nèi)存方式
每個(gè)用戶的屬性需要儲(chǔ)存在一個(gè)公共的地方,每次存取都很麻煩。如果改變用戶的屬性值還需要考慮并發(fā)問題。如果屬性更多編寫起來將非常復(fù)雜。
例如:用戶a,b,c。 都分布在不同的機(jī)器上。a和b同時(shí)打到了c;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/31498.html
摘要:構(gòu)建于四個(gè)指導(dǎo)性的原則。在這個(gè)文章的其余部分我們將繼續(xù)深入異步邊界的概念。電商領(lǐng)域的一致性的重要性并不是碰巧出現(xiàn)的。性能持久性安全都是的方面。來見識(shí)下騎士資本集團(tuán)在年發(fā)生軟件故障的經(jīng)歷。接下來的分鐘發(fā)生的事情是一場(chǎng)惡夢(mèng)。 What is Reactive Programming?為了了解Reactive——從編程范式至其背后的動(dòng)機(jī),有必要了解現(xiàn)在的開發(fā)者和公司在十年前不曾面對(duì)的挑戰(zhàn)。 ...
摘要:關(guān)于三者的一些概括總結(jié)離線分析框架,適合離線的復(fù)雜的大數(shù)據(jù)處理內(nèi)存計(jì)算框架,適合在線離線快速的大數(shù)據(jù)處理流式計(jì)算框架,適合在線的實(shí)時(shí)的大數(shù)據(jù)處理我是一個(gè)以架構(gòu)師為年之內(nèi)目標(biāo)的小小白。 整理自《架構(gòu)解密從分布式到微服務(wù)》第七章——聊聊分布式計(jì)算.做了相應(yīng)補(bǔ)充和修改。 [TOC] 前言 不管是網(wǎng)絡(luò)、內(nèi)存、還是存儲(chǔ)的分布式,它們最終目的都是為了實(shí)現(xiàn)計(jì)算的分布式:數(shù)據(jù)在各個(gè)計(jì)算機(jī)節(jié)點(diǎn)上流動(dòng),同...
摘要:協(xié)程與信箱得益于,我們可以基于的協(xié)程與快速實(shí)現(xiàn)一個(gè)信箱模式調(diào)度。樣例代碼比如在一個(gè)聊天室中,我們可以定義一個(gè)房間模型。 什么是Actor? Actor對(duì)于PHPer來說,可能會(huì)比較陌生,寫過Java的同學(xué)會(huì)比較熟悉,Java一直都有線程的概念(雖然PHP有Pthread,但不普及),它是一種非共享內(nèi)存的并發(fā)模型,每個(gè)Actor內(nèi)的數(shù)據(jù)獨(dú)立存在,Actor之間通過消息傳遞的形式進(jìn)行交互調(diào)...
摘要:本文介紹和點(diǎn)評(píng)上的等并發(fā)編程模型。異步更適合并發(fā)編程。同步使線程阻塞,導(dǎo)致等待。基本模型這是最簡(jiǎn)單的模型,創(chuàng)建線程來執(zhí)行一個(gè)任務(wù),完畢后銷毀線程。響應(yīng)式編程是一種面向數(shù)據(jù)流和變化傳播的編程模式。起源于電信領(lǐng)域的的編程模型。 本文介紹和點(diǎn)評(píng)JVM上的Thread, Thread Pool, Future, Rx, async-await, Fiber, Actor等并發(fā)編程模型。本人經(jīng)驗(yàn)...
摘要:本文介紹和點(diǎn)評(píng)上的等并發(fā)編程模型。異步更適合并發(fā)編程。同步使線程阻塞,導(dǎo)致等待。基本模型這是最簡(jiǎn)單的模型,創(chuàng)建線程來執(zhí)行一個(gè)任務(wù),完畢后銷毀線程。響應(yīng)式編程是一種面向數(shù)據(jù)流和變化傳播的編程模式。起源于電信領(lǐng)域的的編程模型。 本文介紹和點(diǎn)評(píng)JVM上的Thread, Thread Pool, Future, Rx, async-await, Fiber, Actor等并發(fā)編程模型。本人經(jīng)驗(yàn)...
閱讀 2335·2021-11-24 09:39
閱讀 3778·2021-11-19 09:40
閱讀 2153·2021-09-27 13:36
閱讀 1897·2019-08-30 15:44
閱讀 390·2019-08-30 13:52
閱讀 2713·2019-08-30 11:13
閱讀 2171·2019-08-29 16:18
閱讀 1755·2019-08-29 15:43