@弓箭手IN上海 ”有CDC服務處理binlog“ 沒錯,我這里是理解錯了,如果這樣不是靠應用程序去做 publish 是作者的本意,你找的證據(jù)是沒問題的。至于具體在項目中你要不要這樣做,我覺得是有待商榷的,但是本項討論你是正確的。
Saga - 微服務中的分布式事務問題 當我們在開發(fā)單體應用時,其實我們對事務(即 transaction)的印象并不會很深刻,一方面是大多數(shù)工程師所開發(fā)的后端應用對一致性的要求并不是很高,很多時候只是封裝一...
@弓箭手IN上海 ”有CDC服務處理binlog“ 沒錯,我這里是理解錯了,如果這樣不是靠應用程序去做 publish 是作者的本意,你找的證據(jù)是沒問題的。至于具體在項目中你要不要這樣做,我覺得是有待商榷的,但是本項討論你是正確的。
Saga - 微服務中的分布式事務問題 當我們在開發(fā)單體應用時,其實我們對事務(即 transaction)的印象并不會很深刻,一方面是大多數(shù)工程師所開發(fā)的后端應用對一致性的要求并不是很高,很多時候只是封裝一...
這樣理解是不對的,當然主要是我沒寫清楚哈哈。
“每一步是原子的,創(chuàng)建訂單或者進行扣款都必須是原子操作” 是指在 order service 與 price service 中,他們進行操作都是用本地事務來約束的,通常情況下使用的是 db transaction,Chirs 的意思是,我們的代碼大約是這個樣子:
begin transaction
send event to middleware
save data to local db
some other operations
...
end transaction
在這種情況下,如果你的 save to db 失敗了,整個 transcation 都是要回滾的(往往是一個 database rollback 對吧,一般是框架替我們做了),但是你的 event 已經(jīng)發(fā)給中間件了,這就追悔莫及了……當然你可以把 fire event 放到最后,也可以放到事件外,當然也可以像你說的,找某種機會從 binlog 中讀取,我是不推薦這樣做的,因為沒有必要,而且遠遠增加了新系統(tǒng)的復雜度,因為 binlog、WAL 這些東西,不應該是應用程序所負責的。
不知道我說的對不對,這也是個人理解,歡迎批評
Saga - 微服務中的分布式事務問題 當我們在開發(fā)單體應用時,其實我們對事務(即 transaction)的印象并不會很深刻,一方面是大多數(shù)工程師所開發(fā)的后端應用對一致性的要求并不是很高,很多時候只是封裝一...
Database 我們已經(jīng)想不起來為什么需要在項目中使用數(shù)據(jù)庫了,基本上做后端開發(fā)是無法離開的數(shù)據(jù)庫的,從 RDBMS 到 NoSQL 再到最近火熱的 NewSQL,我們一直...
架構與架構師 對于軟件產(chǎn)品來說,往往是用兩方面的價值體現(xiàn),行為與結構,行為方面的價值表現(xiàn)為業(yè)務上的實現(xiàn),也就是你可以使用軟件來定制、完成業(yè)務,獲取收益,而結構上的體現(xiàn)則反映在...
《Clean Architecture》 是一本什么樣的書? 廢話之前先寫結論,如果你有一個類似于架構師、技術負責人這種頭銜,或者你是一個很優(yōu)秀的工程師,想進行一些架構方面的...
@jimson_ma 實現(xiàn)的角度來看 應該是這樣的細節(jié)邏輯
ABAC - 復雜場景下訪問控制解決之道引言 引言 在一個典型的軟件開發(fā)場景中,你作為一名開發(fā)人員加入到某個項目后,假設是“超人組”,你往往需要訪問這個項目的代碼庫然后才能開始工作。當你的 Team Lead 將你...
感謝 comment,更正為
> PDP 根據(jù) PEP 的數(shù)據(jù)去獲取 policy 與環(huán)境條件,再進行計算,最后確定是否有權進行請求。
ABAC - 復雜場景下訪問控制解決之道引言 引言 在一個典型的軟件開發(fā)場景中,你作為一名開發(fā)人員加入到某個項目后,假設是“超人組”,你往往需要訪問這個項目的代碼庫然后才能開始工作。當你的 Team Lead 將你...