背景
?
前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
?
公司準備更好的實現微服務架構,我前期的任務主要是 API 開發相關的技術學習,微服務會隨著業務的增加不斷增加,客戶端調用微服務的 API 也隨著增加,這時,一個統一 API 的中間件就有必要了。瞄準了 Kong 這個解決方案,接下來的幾天時間就來折騰這個東西。
Kong的基本概念
Kong 是 Mashape 開源的一個 API 中間件項目,基于 Nginx 構建,支持 PostgreSQL 和 Apache Cassandra 存儲。支持通過集群實現性能擴展,支持通過插件實現功能擴展,并且可以運行于現在主流的運行環境。
我們可以用 Kong 官方提供的一張圖來表述客戶端 - Kong - API 之間的請求關系:
Kong 會代理來自不同地方的 API, 并且轉發所有來自客戶端的 API 請求。
搗騰進行時...
準備依靠阿里云 RDS for PostgreSQL 方便對 API 存儲的管理,所以本地搭建 Kong 服務的時候也是選擇在 Centos7 上安裝 PostgreSQL。
Kong 本身的安裝并不復雜,但所依賴的技術需要仔細學習一番,我也是被周圍的東西秀了一臉~,列出一個自己在搭建過程中用到的相關技術,有一些仔細看了一番,也有一些淺嘗而止,從此篇慢慢發散、完善補吧~
- 進程管理工具:Supervisord。(?官方網站?)
- NoSQL 的代表:Apache Cassandra。(?官方網站?)
- 與MySQL齊頭并進的數據庫:PostgreSQL。(?官方網站?)
- 為性能而生的 Server:Nginx。(?官方網站?)
- 基于 Nginx 的高性能 Web 平臺:OpenResty。(?官方網站?)
血的教訓
因為忽略的一個之前沒注意的 warning 導致自己花一天時間去解決一個錯誤,浪費一大把陪媳婦兒的時間,不開森~~~
warning 是這樣的:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF-8"are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
相信大家也是遇到過,之前貌似沒造成什么影響,這次就栽了... 解決方案是在 profile/.bashrc 中指定 LC_ALL:
echo "export LC_ALL=en_US.UTF-8" >> /etc/profile
source /etc/profile