構建完成 API 服務,配置中心以後,架構圖大體以下:sql
引用 別人 的一句話:數據庫
咱們老是聽到編排這個詞,因此我喜歡這張幻燈片 – 它展現了一個樂隊,而後有個指揮家,下面一堆人(微型服務)演奏本身的樂器。這個指揮家(API網關)能夠以某種方式來協調咱們的架構如何處理請求。ubuntu
咱們須要將業務或服務放置在網關背後,由網關統一處理請求入口,自己由多個入口的處理變成了一個入口,由網關進行統一調度。api
有一個很nice的事情,就是API網關讓咱們的客戶端不用再須要知道和關心模塊的地址(address)了。網關負責來搞這些事情,你只須要知道網關就行了。你能夠去改變實現並且還能夠改變API接口。不過一般來講,你改變接口後,會增長客戶端出問題的風險。架構
還有不少有趣的功能,有興趣的朋友能夠參考:curl
因爲本人使用 ubuntu 虛擬機,因此此處只介紹 ubuntu 下的安裝,其餘安裝方式可參考: kong installationui
sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update sudo apt-get install postgresql-9.6
安裝 postgresql 完成後,初始化數據庫:lua
su postgres psql CREATE USER kong; CREATE DATABASE kong OWNER kong;
ctrl + D
退出
$ sudo apt-get update $ sudo apt-get install openssl libpcre3 procps perl $ sudo dpkg -i kong-0.10.3.*.deb
$ kong start # Kong is running $ curl 127.0.0.1:8001
這個過程可能會出現: [postgres error] FATAL: password authentication failed for user "kong"
查看 pgsql 配置文件所在位置,由於我是 apt-get install
的,所以,存儲位置在 /etc/postgresql/9.6/
修改 /etc/postgresql/9.6/main/pg_hba.conf
文件,找到IPv4 配置項,約92行,修改
host all all 127.0.0.1/32 md5 => host all all 127.0.0.1/32 trust
從新啓動便可。
$ sudo kong start
curl -i -X POST \ http://127.0.0.1:8001/apis/ \ --data 'name=example-fastd' \ --data 'hosts=fastd.com' \ --data 'upstream_url=http://127.0.0.1:9527'
添加 API Server 到網關,成果會返回 201 狀態嗎表示建立成功 (Created)
獲取列表: http://127.0.0.1:8001/apis/
發起請求.
curl -i -X GET \ --url http://127.0.0.1:8000/ \ --header 'Host: fastd.com'
此時此刻你會發現已經成功使用 kong 對其進行代理,至此以外,已經完成了基本的網關接入。最終架構圖以下:
kong 提供的插件很是豐富,由於也是基於 lua 的,所以你可使用 openresty 對其進行擴展,開發更加貼近業務的應用。
插件文檔: 點擊
更多可看 kong 官方文檔。