Zinx V0 7的讀寫分離模型

2021-09-23 18:46:07 字數 1153 閱讀 5026

將zinx的讀寫模型變為:

把reader中的訊息通過channel傳遞給writer,使讀寫分離

1.在connection中新增乙個channel用來給writer傳遞資料,再新增乙個channel用來傳遞connection的關閉資訊

type connection struct

初始化的時候將兩個channel也初始化

...

...msgchan:

make

(chan

byte),

isquit:

make

(chan

bool),

......

2.建立乙個writer go程
func

(this *connection)

startwriter()

case

return}}

}

3.在send中將封包好的資料通過channel傳遞給writer go程
......

binarydata, err := dp.pack(msg)

if err != nil

this.msgchan

......

4.在stop中將關閉資訊傳遞給write go程,並關閉兩個channel
......

if this.isclosed == true

this.isclosed = true

this.isquit

_ = this.conn.close()

//釋放channel資源

close(this.msgchan)

close(this.isquit)

5.在start中開啟write go程
......

go this.startreader()

go this.startwriter()

......

Zinx V0 7 讀寫分離

讀寫分離 新增乙個reader和writer之間的通訊channel 新增乙個writer goroutine 阻塞等待channel是否有需要的資料過來 將資料回寫給conn對應的客戶端 reader由之前的 同時啟動writer和reader的goroutine 處理writer退出,當觸發c....

Mysql的讀寫分離

進行mysql的讀寫分離配置之前,應該先進行mysql主從複製的配置工作 wget或者登陸mysql官網查詢其他版本的安裝包 2.將安裝包移動到 usr local 目錄下並進行解壓 mv mysql proxy 0.8.5 linux glibc2.3 x86 32bit.tar.gz usr l...

Mysql的讀寫分離

server2上檢查主從配置 下面開始設定讀寫分離。我們直接使用官方提供的外掛程式mysql proxy。mysql proxy是官方提供的mysql中介軟體產品可以實現負載平衡,讀寫分離,failover等。mysql proxy就是這麼乙個中間層 簡單的說,mysql proxy就是乙個連線池,...