多個微信小程式一個服務端架構

来源:http://www.cnblogs.com/wintersun/archive/2017/12/17/8053373.html
-Advertisement-
Play Games

由於某些特定的業務場景,當多個小程式需要一個服務端後臺提供數據時,大家可能想到是HTTP路由。是的,實際上我們使用微服務的GateWay網關也是一樣的,如下圖微服務架構: 網關GateWay的作用在於提供統一的入口來訪問內部的API, 隔離外部訪問與內部系統。集成了非業務性的功能(如安全檢查、頻次限... ...


       由於某些特定的業務場景,當多個小程式需要一個服務端後臺提供數據時,大家可能想到是HTTP路由。是的,實際上我們使用微服務的GateWay網關也是一樣的,如下圖微服務架構:

microserviceArchitecture


    網關GateWay的作用在於提供統一的入口來訪問內部的API, 隔離外部訪問與內部系統。集成了非業務性的功能(如安全檢查、頻次限制、API監控、日誌上報等),API生命期管理、請求的轉發、合成、協議轉換、服務發現等多種功能。更多可以參考apigateway

API網關的優點:

  1. 給服務加一層安全保護
    可在這一層做SQL註入、CRSF攻擊防範等WAF層面的安全保護;
  2. 對外提供統一的通信協議,如HTTP或restful api, 屏蔽內部的通信協議
    系統內部可採用自身熟悉的通信協議,如Protobuf 或RPC等;
  3. 降低代碼耦合度、降低開發成本
    將非業務性功能如訪問控制(黑白名單)、頻次限制等集中在網關層處理,開發只需關註自己本業務的需求實現即可,降低了開發成本;
  4. 可靈活灰度及新功能測試
    通過細粒度的流量識別,進而反向代理,業務可靈活灰度及AB測試;
  5. 服務發現
    隨著後端server變動甚至雲化,對服務發現提出了新挑戰,通過在API網關實現服務發現可以簡化客戶端的實現。
  6. 減少客戶端與後臺server的交互
    隨著微服務化API更加細粒度,這勢必會加大客戶端對後臺server的訪問次數,如做一些返回數據合併,讓客戶端通過一次請求在API網關處合併需要的數據一次性返回等,但這一塊業務性太強,像業界的方案很少有做一塊的,大部分實現是在API網關後端加了一個BBF(backend for frontend)來做數據的整合;
  7. 對API進行管理;

業界常用的API網關方案對比


1505461900148_1253_1505461900561

演化為:

183930uy040g5vlfsliffq

騰訊雲提供的Wafer解決方案

a54f5f48-b74b-11e6-972f-6dce2cd8c31a

Tips:現實中單體小程式架構不需求這麼複雜架構, 具體問題需要量體裁衣。

------------------------------------------------------------------

今天先到這兒,希望對您在系統架構設計與評估,團隊管理, 項目管理, 產品管理,團隊建設 有參考作用 , 您可能感興趣的文章:
微服務架構設計
微服務與Docker介紹
Docker與CI持續集成/CD
互聯網電商購物車架構演變案例
互聯網業務場景下消息隊列架構
互聯網高效研發團隊管理演進之一
消息系統架構設計演進
互聯網電商搜索架構演化之一
企業信息化與軟體工程的迷思
企業項目化管理介紹
軟體項目成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與個人目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共用
高效能的團隊建設
項目管理溝通計劃
構建高效的研發與自動化運維
某大型電商雲平臺實踐
互聯網資料庫架構設計思路
IT基礎架構規劃方案一(網路系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之採購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之性能實時度量系統演變

如有想瞭解更多軟體設計與架構, 系統IT,企業信息化, 團隊管理 資訊,請關註我的微信訂閱號:

MegadotnetMicroMsg_thumb1_thumb1_thu[2]



作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
該文章也同時發佈在我的獨立博客中-Petter Liu Blog


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近要分析web頁面,在安卓和ios上的性能差異,除了操作系統本身不同之外,應該還多地方要探究的,第一步就是要在真機上分析。所以總結一下幾個方法。 1.Mac+iPhone+ Lightning+Safari 瀏覽器 步驟: 1)用:Lighting線將mac與iphone相連 2)iphone打開 ...
  • 在寫這篇博客時這本書我已經是看過一遍了,為了加深印象和深入學習於是打算做這系列的前端經典書籍導讀博文,大家如果覺得這本書講的好可以自己買來看看,我是比較喜歡看紙質版書的,因為這樣才有讀書的那種感覺。 本期我給大家講述的是 前端經典js書籍 <<你不知道的javaScript(上捲)>> 第一章內容的 ...
  • 文檔聲明 不是註釋也不是元素,總是在HTML的第一行 書寫格式:<!DOCTYPE HTML> 是用於通知瀏覽器目前文檔正使用哪一個HTML版本(相關屬性 lang) 若不寫文檔聲明,瀏覽器渲染頁面時會進入怪異模式 HTML元素又叫根元素或根標記,是所有元素的祖先元素 例:<html lang="e ...
  • 連我自己把float和絕對定位,都稱為脫離文檔流,想想概念又不那麼清晰,於是尋找了W3C資料來理解,才發覺不應該叫文檔流。 資料 英文:https://www.w3.org/TR/CSS22/visuren.html#normal-flow 中文:http://w3help.org/zh-cn/kb ...
  • 先說下選擇Markdown編輯器的原因,我們進行平臺開發,需要很多的操作手冊和API文檔,要在網站中展示出來就需要是HTML格式的文件,但是由於內容很多,不可能全部由技術人員進行文檔的編寫,如果是只有文檔操作經驗的人來做就會出現很麻煩的情況。 最初,我們先用試著用word來寫,再轉換成HTML文件保 ...
  • 目錄: 前言 基礎學習資料與網站介紹 定製我的博文 3.1 我想要的效果 3.2 基礎知識如何實現 3.2.1 一級標題 3.2.2 二級標題 3.2.3 三級標題 3.2.4 目錄 3.2.5 添加小鏈接 3.3 博客園中具體分塊 3.3.1 整體部分 3.3.2 body部分 3.3.3 博文部 ...
  • 今天主管給了我個需求,說要用混合開發,用H5調用本地攝像頭進行掃描二維碼,我之前有做過原生安卓的二維碼掃一掃,主要是通過調用zxing插件進行操作的,其中還弄了個閃光燈.但是純H5的沒接觸過,心裡沒底,於是晚上回家開始網上各處找方案.以下是我對於H5掃描二維碼以及調用本地攝像頭的理解以及代碼.科普網 ...
  • 一場大戲落幕,首屆DDD中國峰會如大會主題色一般的紅。或許在12月9日這一天,全中國的DDD粉絲大約有一半都匯聚在了國家會議中心。聽起來是幸,其實是不幸,因為DDD在中國的人群基數實在是太少了。 因為要負責大會的其中一個Track,期間又要接受採訪,另外還有朋友到訪,所以除了前面的兩個keynote ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...