基於graphql的微服務基礎框架

cdh0805010118發表於2018-12-24

基於graphql的小而美業務框架

base是一個小而美的業務基礎框架,它使用graphql作為api通訊協議基礎。然後提供了一些可以直接使用的後端儲存服務。

tiny-base

基礎特性

  1. 只支援graphql協議通訊;提供了graphql-ui;UI即介面。並提供了一些與該協議進行資料轉化的API列表;
  2. 提供資料訪問層DAL,使用upper/db庫,該庫支援:PostgreSQL, MySQL, SQLite, MSSQL, QL and MongoDB;
  3. 提供了redis、訊息佇列、db和配置服務的初始化例項;
  4. 支援配置服務的自動watch,並實時更新; 支援基於dns的服務發現;
  5. 支援jaeger trace跟蹤;支援錯誤碼註冊;支援rabbitmq訊息佇列消費和生產
  6. 支援自定義時間規則切割檔案,比如:年/月/日/時/分
  7. 支援微服務之間的rpc呼叫和資料解析
  8. 輕易支援立即容器化

目錄結構

.
├── README.md
├── bindata_assetfs.go
├── cmd/
├── context.go
├── graphql.go
├── graphql_test.go
├── handler.go
├── middlewares.go
├── pkg/
└── plugins/
  1. cmd目錄用於提供對cache, db, discovery和mq服務的client初始化,且不用關心連線釋放等問題, 且預設初始化discovery client連線;
  2. pkg目錄提供了環境變數、日誌、訊息佇列、rpc、系統時間、tracing、types(token, user服務定義),以及常用的utils包
  3. graphql提供了一些gateway的底層呼叫,graphql的解析、以及與go的型別互相轉換(包括:列舉,字串、時間等);
  4. 提供了基於martini的路由外掛,以及處理graphql請求的方法,並支援graphql返回結果的自定義。
  5. 提供了訪問流控和簽名兩個服務的api。

演示環境

demo

相關文章