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