微服務架構--編程過程中的不變與萬變

来源:https://www.cnblogs.com/jimfighting/archive/2018/02/08/8431073.html
-Advertisement-
Play Games

We are in the changing world , exspecially in interenet,more and more developing structure appeared in latest years from MVC to SOA ,from SOA to Micro ...


We are in the changing world , exspecially in interenet,more and more developing  structure  appeared in latest years  from MVC to SOA ,from SOA to MicroService , I amazing these changes and I need to learn more and more new knowledge to catch up the speed of changing . But when I read some articles of MicroService ,I found some interesting things ,I think it can give me some inspiration about these changes。

First of all , the purposes of structure changes are supporting business service .As we know ,requirement changed so fast ,business logical become more and more complex , we need a agile frame work to delivery a project that is can be developed  fastly, can be modified fastly ,can be maintain easily , so that MVC appeared ,it provide a layer framework that every layer only do their best to provide service to higher service , higher layer call the bottom service by interface . the benifits of the frame work are split developing work to more detail , the developer can choose the layer they good at and become master not think about more whole project .At same time it make program more strong ,more fixable for changes, such as error debuging and business logical changes .after smart device become popular , our apps need to available on both smart device and pc ,MVC become not suitable for it , because we must copy the pc logical to smart device and implement again (I surppose PC apps write with C# and smart phone code write with java) ,then maitain two source code , changed at the same time if the business requirement have changed . even if the old logical can support two device ,we also need to change some logical to adapt the new device ,these changes maybe bring new bugs to old code , make old one unstable . In order to solve the problem ,SOA provide new solution ,it package business logical with webservice ,tcp service and other available protocols like WCF done ,these service are different chanels to access the business logical ,same logical ,the apps comsumer the these service by service chanels 。Developer can have less maitain burnden by the way and apps can find their properly sevice . It seems a good ending we can enjoy our workingtime ,but Ops team complain that the service so big that it will waste more time on buliding and the performance is not ideal as well , the worse is our new team member need to spend more time to clearfy sourcecode and can't change anylogical even if he know all of business logical because it too complex to clearfy in short time.We need to rethink our structure to make it become easily deployed , easily developed and easily maitained , at this time we naturely split our SOA Sevice to more detail service ,smaller and smaller to can be fixable to all stakeholders ,no one know new strucure name unstill one call him MicroService . when you read upper content , do you agree with my opinion that all of structure changes are support business and is a history of make all stakeholders satification.

Sencond ,However the structure changed ,they are still layer structure .From MVC to MicroService, they always consumer lower layer service  to complete a task ,the lower service always stable and independent to higher layer like our social structure ,we alway take time to service others and others service us by their way , it's a good simulation of real life you can found this from below picuture (more information please check http://www.cnblogs.com/imyalost/p/6792724.html):

MVC 

Microservice

 

All in all , no matter what structure you want to use ,please think more about your business requirement ,choose a right one even if it is a old one 

 


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

-Advertisement-
Play Games
更多相關文章
  • 最近在做後臺管理系統的時候遇到要使用富文本編輯器。最後選擇了ueditor,我的項目使用 vue+vuex+vue-router+webpack+elementUI的方案完成框架的搭建, 1、下載UEditor官網最新的jsp版本的包,下載完成解壓之後得到一個utf8-jsp的文件夾,裡面包含的內容 ...
  • 之前搭建過elk,用於分析日誌,無奈伺服器資源不足,開了多個Logstash之後發現占用記憶體過高,於是現在改為Filebeat做日誌收集,記錄一下搭建過程和遇到問題的解決方案。 第一步 , 安裝jdk8 。 設置環境變數 在profile文件下,添加 添加之後,執行 使配置生效。 然後輸入 檢驗是否 ...
  • 介紹完工廠模式,現在來看一下建造者模式。建造者模式就是將一系列對象組裝為一個完整對象並且返回給用戶,例如汽車,就是需要由各個部件來由工人建造成一個複雜的組合實體,這個複雜實體的構造過程就被外部化到一個建造者的對象,由這個建造者對象返回創建好的實體,是不是跟工廠很像呀? 建造者模式則主要由幾個對象構成 ...
  • Okhttp的使用沒有httpClient廣泛,網上關於Okhttp設置代理的方法很少,這篇文章完整介紹了需要註意的方方面面。 上一篇博客中介紹了socks代理的入口是創建 時傳入一個 對象。 OkHttp client通過 創建,可以通過定製 和`java.net.SocketFactory`來實 ...
  • 本文描述http client使用socks代理過程中需要註意的幾個方面:1,socks5支持用戶密碼授權;2,支持https;3,支持讓代理伺服器解析DNS; 使用代理創建Socket 從原理上來看,不管用什麼http客戶端(httpclient,okhttp),最終都要轉換到 的創建上去,看到代 ...
  • 統介紹: 1.系統採用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC瀏覽器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM 普通java web(非maven, 附贈pom.xml文件) 資料庫:mysql 3.開發工具:mye ...
  • 外圈的層次可以依賴內層,反之不可以;內圈核心的實體代表業務,不可以依賴其所處的技術環境。 這是著名軟體大師Bob大叔提出的一種架構,也是當前各種語言開發架構。乾凈架構提出了一種單向依賴關係,從而在邏輯上形成一種向上的抽象系統。 這種乾凈的架構圖如下: 依賴規則Dependency Rule 上圖中同 ...
  • 本文要點預覽:因為軟體系統的分散式特點以及開發團隊的分佈性,瞭解軟體架構的基礎變得越來越重要。而在過度設計和毫無設計之間,我們應該把註意力放在對軟體系統有重大影響的決策和權衡上。好的架構師應該是團隊的活躍分子,不僅能夠進行代碼協作,還能為團隊提供技術指導。軟體架構中的溝通環節極具挑戰性。C4 模型對 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...