在網上,介紹微伺服器架構的文章已經有很多了,我這裡就不做詳細介紹了。微服務架構,相對比起單一服務架構,優勢在於微服務架構是把一個大的架構解耦成具有單一功能的小架構,每一個架構都有自己的資料庫,伺服器等,這樣的架構的好處是方便擴容,提高開發效率,容易找Bug。其中,微服務架構裡面,有一個很重要的部件,叫api閘道器。市面上開源的api閘道器不多,主要是用Nginx或者golang實現。我最近在用的一個是叫orange的開源api閘道器,它是基於openresty過來的。針對微服務,大概的設計如下圖:


其中API Gateway是通過orange來實現的,主要是對url和uri進行rewirte,根據前端呼叫的不同介面去進行不同流量的轉發,裡面還會做例如限流,控制訪問等功能;Firewall的具體作用就是做防火牆,避免系統入侵,其實在API Gateway已經有基礎防火牆功能了。下面的nginx1,nginx2就是不同微服務的叢集,通過API閘道器去控制訪問接入,內部介面呼叫,可以更加安全管理系統,也可以規範API的設計。