成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

php極簡框架 one 1.6.7發(fā)布,新增分布式并發(fā)模型Actor

劉明 / 1186人閱讀

摘要:新增新增模型方法,主動刷新數(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

相關(guān)文章

  • reactive programming 的概念

    摘要:構(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)。 ...

    ?xiaoxiao, 評論0 收藏0
  • 關(guā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)上流動,同...

    Ververica 評論0 收藏0
  • PHP下用Swoole實(shí)現(xiàn)Actor并發(fā)模型

    摘要:協(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)...

    GeekQiaQia 評論0 收藏0
  • JVM并發(fā)編程模型

    摘要:本文介紹和點(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)...

    cppowboy 評論0 收藏0
  • JVM并發(fā)編程模型

    摘要:本文介紹和點(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)...

    wudengzan 評論0 收藏0

發(fā)表評論

0條評論

劉明

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<