<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          架構(gòu)師之路-微服務(wù)技術(shù)選型

          共 3403字,需瀏覽 7分鐘

           ·

          2020-09-15 07:27


          作為一名架構(gòu)師,需要規(guī)劃產(chǎn)品技術(shù)路線,負責技術(shù)選型。而技術(shù)棧選型主要參考以下幾個標準:

          • 安全穩(wěn)定,不能經(jīng)常被爆出安全漏洞
          • 開源社區(qū)活躍度,加入Apache的組件優(yōu)先考慮
          • 一線互聯(lián)網(wǎng)公司落地產(chǎn)品,有大公司為其背書
          • 文檔閱讀性好

          本篇為大家?guī)砦⒎?wù)架構(gòu)的后端技術(shù)選型,當你需要進行技術(shù)選型時,可以參照他來設(shè)計自己的決策樹。

          開發(fā)語言

          JAVA
          主流編程語言,適合構(gòu)建大型后臺服務(wù)

          Golang
          Go語言是谷歌2009發(fā)布的第二款開源編程語言。專門針對多處理器系統(tǒng)應(yīng)用程序的編程進行了優(yōu)化,使用Go編譯的程序可以媲美C或C++代碼的速度,而且更加安全、支持并行進程。Google對Go寄予厚望。其設(shè)計是讓軟件充分發(fā)揮多核心處理器同步多工的優(yōu)點,并可解決面向?qū)ο蟪绦蛟O(shè)計的麻煩。目前作為云計算領(lǐng)域的不二之選!

          開發(fā)IDE

          IntelliJ IDEA
          jetbrains公司旗下產(chǎn)品,智能代碼助手、J2EE支持、各類版本工具(git、svn、github等)、JUnit、CVS整合等。多語言支持,免費版只支持JAVA等少數(shù)語言。旗艦版為收費版本,同時提供免費版(功能上較旗艦版有減少)。

          VS Code
          VS Code是一款免費的、開源的、高性能的、跨平臺的、輕量級的代碼編輯器,同時,在性能,語言支持、開源社區(qū)方面也做的很不錯!

          開發(fā)技術(shù)

          微服務(wù)框架

          Spring Cloud / Spring Cloud alibaba
          Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),提供了全套微服務(wù)解決方案。

          RPC框架

          RestTemplate&WebClient
          Spring RestTemplate 是 Spring 提供的用于訪問 Rest 服務(wù)的客戶端

          gRPC
          GRPC是google開源的一個高性能、跨語言的RPC框架,基于HTTP2協(xié)議,基于protobuf 3.x的一款rpc框架。多種語言支持;支持鏈接復(fù)用,集群內(nèi)可采用長鏈接;性能簡單調(diào)優(yōu)后,可滿足多數(shù)業(yè)務(wù)場景需求。

          分布式事務(wù)

          Seata
          阿里巴巴重點開源項目、Java開發(fā)、性能高、無鎖、代碼無侵入AT模式0代碼、支持MT模式非事務(wù)型存儲、社區(qū)活躍,版本更新快,使用簡單!

          流量控制、熔斷降級

          Sentinel
          阿里巴巴重點開源項目、Java開發(fā)、二次開發(fā)方便、社區(qū)活躍

          API網(wǎng)關(guān)

          Spring Cloud Gateway
          Spring首選、方便二次開發(fā)、支持異步非阻塞

          Kong
          Kong是一款基于Nginx_Lua模塊寫的高可用,易擴展由Mashape公司開源的API Gateway項目。性能優(yōu)異,插件豐富基本開箱即用,二開有一定的使用門檻。

          配置中心

          Nacos
          阿里巴巴重點開源項目、可同時作為注冊/中心配置中心,簡化技術(shù)棧、有完善管理界面、Java開發(fā)、二次開發(fā)方便、社區(qū)活躍、還在不斷更新迭代。

          Apollo
          是攜程框架部門研發(fā)的分布式配置中心,能夠集中化管理應(yīng)用不同環(huán)境、不同集群的配置,配置修改后能夠?qū)崟r推送到應(yīng)用端,并且具備規(guī)范的權(quán)限、流程治理等特性,適用于微服務(wù)配置管理場景。

          服務(wù)發(fā)現(xiàn)

          Nacos:
          阿里巴巴重點開源項目、可同時作為注冊/中心配置中心,簡化技術(shù)棧、有完善管理界面、Java開發(fā)、二次開發(fā)方便、社區(qū)活躍、AP/CP模式,還在不斷更新迭代。

          Zookeeper
          ZooKeeper 是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個開源的實現(xiàn),是Hadoop和Hbase的重要組件;性能可以滿足較大規(guī)模的服務(wù)發(fā)現(xiàn)和配置中心,生效實時性高,不適合大規(guī)模實時數(shù)據(jù)同步場景;CP模式。

          監(jiān)控

          Prometheus
          功能較為全面的開源監(jiān)控系統(tǒng),CNCF技術(shù)棧、社區(qū)活躍

          Grafana
          Grafana是一個開源的度量分析與可視化套件。純 Javascript 開發(fā)的前端工具,通過訪問庫(如InfluxDB),展示自定義報表、顯示圖表等。大多使用在時序數(shù)據(jù)的監(jiān)控方面,如同Kibana類似。Grafana的UI更加靈活,有豐富的插件,功能強大。界面簡潔美觀,支持自由定制,社區(qū)有豐富的Dashboard支持。

          SkyWalking
          分布式追蹤系統(tǒng),國產(chǎn)鏈路跟蹤、社區(qū)文檔豐富,Apache頂級項目。

          日志

          ELK
          分布式服務(wù)日志處理,圍繞elasticsearch構(gòu)建的日志生態(tài)系統(tǒng)。使用廣泛,擴展方便。配合kibana可以很方便對日志進行檢索,定位線上問題。

          數(shù)據(jù)庫中間

          ShardingSphere
          Apache ShardingSphere 定位為關(guān)系型數(shù)據(jù)庫中間件,支持數(shù)據(jù)分片、讀寫分離、多數(shù)據(jù)副本、數(shù)據(jù)加密、影子庫壓測等功能;社區(qū)文檔豐富,目前已經(jīng)成為Apache頂級項目。

          序列化

          Jackson
          Spring首選、穩(wěn)定安全

          protobuf
          Protocol Buffer( 簡稱Protobuf) 是google開源的一種輕便高效的結(jié)構(gòu)化數(shù)據(jù)存儲格式,可以用于結(jié)構(gòu)化數(shù)據(jù)串行化,很適合做數(shù)據(jù)存儲或RPC 數(shù)據(jù)交換格式。

          不建議使用fastjson

          開發(fā)工具

          構(gòu)建工具

          Maven:
          主流的項目構(gòu)建和管理工具,Maven是 Apache 下的一個純 Java 開發(fā)的開源項目,是一個項目構(gòu)建和管理的工具;它提供了幫助管理 構(gòu)建、文檔、報告、依賴、scms、發(fā)布、分發(fā)的方法。可以方便的編譯代碼、進行依賴管理、管理二進制庫等等。

          Gradle
          Gradle是一個基于Apache Ant和Apache Maven概念的項目自動化建構(gòu)工具。Gradle 構(gòu)建腳本使用的是 Groovy 或 Kotlin 的特定領(lǐng)域語言來編寫,它可以自動處理包相依關(guān)系,自動處理布署問題,條件判斷寫法直覺。

          接口請求工具

          postman
          postman是一款功能強大的網(wǎng)頁調(diào)試和模擬發(fā)送HTTP請求的Chrome插件,支持幾乎所有類型的HTTP請求,操作簡單且方便。

          容器

          Docker
          是一個開源的應(yīng)用容器引擎,基于 Go 語言 并遵從Apache2.0協(xié)議開源。Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。使用Docker可以帶來以下幾個優(yōu)勢:1. 更快速的交付和部署;2. 高效的部署和擴容;3. 更高的資源利用率;4. 簡單的管理

          集群管理

          Kubernetes
          Kubernetes一個用于容器集群的自動化部署、擴容以及運維的開源平臺。通過Kubernetes,你可以快速有效地響應(yīng)用戶需求;快速而有預(yù)期地部署你的應(yīng)用;極速地擴展你的應(yīng)用;無縫對接新應(yīng)用功能;節(jié)省資源,優(yōu)化硬件資源的使用。為容器編排管理提供了完整的開源方案。生態(tài)豐富,易擴展;功能豐富穩(wěn)定,大公司背書;易上手。

          鏡像管理工具

          Harbor
          Harbor是個開源制品(artifact)倉庫,是首個原創(chuàng)于中國、并且成為 CNCF 畢業(yè)級的開源項目。用戶可通過策略和基于角色的訪問控制來保護制品(如容器鏡像、Helm Chart等),掃描鏡像并避免受安全漏洞的危害。Harbor擴展了開源項目 Docker Distribution,添加了用戶所需的功能(例如安全性,身份,漏洞掃描和管理)。

          運行環(huán)境

          操作系統(tǒng):

          Linux
          Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。

          Web服務(wù)器

          Tomcat<8+>
          Tomcat 服務(wù)器是一個免費的開放源代碼的Web 應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。

          Nginx
          輕量級的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器

          NodeJs
          服務(wù)端JavaScript環(huán)境


          瀏覽 128
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  五月丁香婷婷国产 | 亚洲国产成人无码a在线播放 | 超碰国产青娱乐 | 99久久久无码国产精品性波多 | 91天天爱天天射天天干天天 |