前言
寫這篇文章的初衷是想自己梳理一遍微服務(wù)框架的種種細(xì)節(jié)
之前在用go-micro框架,使用起來(lái)有很多的不便,所以想自己試一下重新再走一遍流程。
先看一下通常的微服務(wù)框架架構(gòu)圖
架構(gòu)圖.png
整體的架構(gòu)可以一步一步的實(shí)現(xiàn),我們先模擬一個(gè)場(chǎng)景:
1、用戶可以通過(guò)API請(qǐng)求獲取數(shù)據(jù),數(shù)據(jù)是以map形式存儲(chǔ)在內(nèi)存中,這部分基本沒(méi)有什么并發(fā)量。
2、我們通過(guò)一些方法,可以從用戶那里獲取操作日志,日志包括點(diǎn)擊和下載,這些日志需要存儲(chǔ),之后會(huì)需要這些日志做一些運(yùn)算。
模塊拆分
上面的場(chǎng)景模擬可以看到,api請(qǐng)求獲取這部分業(yè)務(wù)并發(fā)量不高,業(yè)務(wù)塊比較獨(dú)立,無(wú)非就是做一些讀取的操作,我們把這部分先拆出來(lái)單做一個(gè)服務(wù)。
日志收集的并發(fā)量很高,我們需要合理的緩解服務(wù)壓力,這部分業(yè)務(wù)我們需要單獨(dú)拆分出來(lái),在數(shù)據(jù)接入時(shí)需要做消峰處理,在消費(fèi)這些數(shù)據(jù)時(shí)能確保快速、穩(wěn)定的消化這些數(shù)據(jù)。