国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

架構師不會架構選型,能行嗎?

開發 架構 開發工具
如果你在做選型方面的工作,或者想了解一些現在正在流行的技術,那么這篇文章正好適合你。

 如果你在做選型方面的工作,或者想了解一些現在正在流行的技術,那么這篇文章正好適合你。

[[342127]]


圖片來自 Pexels

 

本篇內容涵蓋 14 個方面,涉及上百個框架和工具。會有你喜歡的,大概也會有你所討厭的家伙。

這是我平常工作中打交道最多的工具,大小公司都適用。如果你有更好的,歡迎留言補充:

  • 消息隊列
  • 緩存
  • 分庫分表
  • 數據同步
  • 通訊
  • 微服務
  • 分布式工具
  • 監控系統
  • 調度
  • 入口工具
  • OLT(A)P
  • CI/CD
  • 問題排查
  • 本地工具

消息隊列

推薦:

 

  • 吞吐量優先選擇 Kafka。
  • 穩定性優先選擇 RocketMQ。
  • 物聯網:VerneMQ。

一個大型的分布式系統,通常都會異步化,走消息總線。 消息隊列作為最主要的基礎組件,在整個體系架構中,有著及其重要的作用。異步通常意味著編程模型的改變,時效性會降低。

Kafka 是目前最常用的消息隊列,尤其是在大數據方面,有著極高的吞吐量。而 RocketMQ和 RabbitMQ,都是電信級別的消息隊列,在業務上用的比較多。

相比較而言,ActiveMQ 使用的最少,屬于較老一代的消息框架。Pulsar 是為了解決一些 Kafka 上的問題而誕生的消息系統,比較年輕,工具鏈有限。有些激進的團隊經過試用,反響不錯,但實際使用并不多。

MQTT 具體來說是一種協議,主要用在物聯網方面,能夠雙向通信,屬于消息隊列范疇,推薦使用 VerneMQ。

緩存

 

推薦:

  • 堆內緩存使用默認的 Caffeine。
  • 分布式緩存采用 Redis 的 Cluster 集群模式,但要注意使用限制。

數據緩存是減少數據庫壓力的有效途徑,有單機 Java 內緩存,和分布式緩存之分。

對于單機來說,Guava 的 LoadingCache 和 ehcache 都是些熟面孔,不過 SpringBoot 選擇了 Caffeine 作為它的默認堆內緩存,這是因為 Caffeine 的速度比較快的原因。

對于分布式緩存來說,優先選擇的就是 Redis,別猶豫。由于 Redis 是單線程的(6.0 支持多線程,但默認不開啟),并不適合高耗時操作。

所以對于一些數據量比較大的緩存,比如圖片、視頻等,使用老牌的 Memcached 效果會好的多。

JetCache 是一個基于 Java 的緩存系統封裝,提供統一的 API 和注解來簡化緩存的使用。類似 SpringCache,支持本地緩存和分布式緩存,也是簡化開發的利器。

分庫分表

 

推薦:ShardingSphere 中的 Sharding-JDBC。

分庫分表,幾乎每一個上點規模的公司,都會有自己的方案。目前,推薦使用驅動層的 Sharding-JDBC(已經進入 Apache),或者代理層的 Mycat。如果你沒有額外的運維團隊,又不想花錢買其他機器,那么就選前者。

如果分庫分表涉及的項目不多,Spring 的動態數據源是一個非常好的選擇。它直接編碼在代碼里,直觀但不易擴展。

如果只需要讀寫分離 ,那么 MySQL 官方驅動里的 Replication 協議,是更加輕量級的選擇。

上面的分庫分表組件,都是大浪淘沙,最終的優勝品。這些組件不同于其他組件選型,方案一旦確定,幾乎無法回退,所以要慎之又慎。

分庫分表是小 Case,準備分庫分表的階段,才是重點:也就是數據同步。

數據同步

 

推薦:Canal。

國內使用 MySQL 的公司居多,但 PostgreSQL 憑借其優異的性能,使用率逐漸攀升。

不管什么數據庫,實時數據同步工具,都是把自己模擬成一個從庫,進行數據拉取和解析。

具體來說,MySQL 是通過 Binlog 進行同步;PostgreSQL 使用 Wal 日志進行同步。

對 MySQL 來說,Canal 是國內用的最多的方案;類似的 Databus 也是比較好用的工具。

現在,Canal、Maxwell 等工具,都支持將要同步的數據寫入到 MQ 中,進行后續處理,方便了很多。

對于 ETL(抽取、清洗、轉換)來說,基本上都是 Source、Task、Sink 路線,與前面的功能對應。Gobblin、Datax、Logstash、Sqoop 等,都是這樣的工具。

它們的主要工作,就是怎么方便的定義配置文件,編寫各種各樣的數據源適配接口等。

這些 ETL 工具,也可以作為數據同步(尤其是全量同步)的工具,通常是根據 ID,或者最后更新時間 等,進行處理。

Binlog 是實時增量工具,ETL 工具做輔助。通常一個數據同步功能,需要多個組件的參與,他們共同組成一個整體。

通訊

推薦:HTTP+Json,方便調試。高性能要求可選二進制協議。

 

Java 中,Netty 已經成為當之無愧的網絡開發框架,包括其上的 socketio(不要再和我提 mina 了)。

對于 HTTP 協議,有 common-httpclient,以及更加輕量級的工具 Okhttp 來支持。

對于一個 RPC 來說,要約定一個通訊方式和序列化方式。Json 是最常用的序列化方式,但是傳輸和解析成本大,XML 等文本協議與其類似,都有很多冗余的信息;Avro 和 Kryo 是二進制的序列化工具,沒有這些缺點,但調試不便。

RPC 是遠程過程調用的意思 ,其中,Thrift、Dubbo、gRPC 默認都是二進制序列化方式的 Socket 通訊框架;Feign、Hessian 都是 Onhttp 的遠程調用框架。

對了,gRPC 的序列化工具是 Protobuf,一個壓縮比很高的二進制序列化工具。

通常,服務的響應時間主要耗費在業務邏輯以及數據庫上,通訊層耗時在其中的占比很小。可以根據自己公司的研發水平和業務規模來選擇。

微服務

推薦:

 

  • 注冊中心:Consul。
  • 網關:Nginx+Gateway。
  • 配置中心:Apollo。
  • 調用鏈:Skywalking。
  • 熔斷:Resilience4j。

我們不止一次說到微服務,這一次我們從圍繞它的一堆支持框架,來窺探一下這個體系。是的,這里依然是在說 Spring Cloud。

默認的注冊中心 Eureka 不再維護,Consul 已經成為首選,它使用 Raft 協議開發開箱即用。Nacos、Zookeeper 等,都可以作為備選方案。其中 Nacos 帶有后臺,比較適合國人使用習慣。

熔斷組件,官方的 Hystrix 也已經不維護了。推薦使用 Resilience4j,最近阿里的 Sentinel 也表現強勁。

對于調用鏈來說,由于 OpenTracing 的興起,有了很多新的面孔。推薦使用 Jaeger 或者 Skywalking。Spring Cloud 集成的 Sleuth+Zipkin 功能稍弱,甚至不如傳統侵入式的 Cat。

配置中心是管理多環境配置文件的利器,尤其在你不想重啟服務器的情況下進行配置更新。

目前,開源中做的最好的要數 Apollo,并提供了對 Spring Boot 的支持。

Disconf 使用也較為廣泛。相對來說,Spring Cloud Config 功能就局限了些,用的很少。

網關方面,使用最多的就是 Nginx,在 Nginx 之上,有基于 Lua 腳本的 Openrestry。由于 Openresty 的使用非常繁雜,所以有了 Kong 這種封裝級別更高的網關。

對于 Spring Cloud 來說,Zuul 系列推薦使用 Zuul2,Zuul1 是多線程阻塞的,有硬傷。

Spring-Cloud-Gateway 是 Spring Cloud 親生的,Spring Cloud 大力支持,基于 Spring 5.0 的新特性 WebFlux 進行開發。底層網絡通信框架采用的是 Netty,吞吐量高。

分布式工具

 

大家都知道分布式系統 Zookeeper 能用在很多場景,與其類似的還有基于 Raft 協議的 etcd 和 Consul。

由于它們能夠保證極高的一致性,所以用作協調工具是再好不過了。用途集中在:配置中心、分布式鎖、命名服務、分布式協調、Master 選舉等場所。

對于分布式事務方面,則有阿里的 Fescar 工具進行支持。但如非特別的必要,還是使用柔性事務,追尋最終一致性,比較好。

監控系統

 

推薦:

  • Prometheus+Grafana+Telegraf。
  • 日志收集:大量 ELKB,小量 Loki。

監控系統組件種類繁多,目前,最流行的大概就是上面四類。Zabbix 在主機數量不多的情況下,是非常好的選擇。

Prometheus 來勢兇猛,大有一統天下的架勢。它也可以使用更加漂亮的 Grafana 進行前端展示。

Influxdata 的 Influxdb 和 Telegraf 組件,都比較好用,主要是功能很全。使用 ES 存儲的 ELKB 工具鏈,也是一個較好的選擇。我所知道的很多公司,都在用。

調度

 

推薦:XXL-Job。

大家可能都用過 Cron 表達式。這個表達式,最初就是來自 Linux 的 Crontab 工具。

Quartz 是 Java 中比較古老的調度方案,分布式調度采用數據庫鎖的方式,管理界面需要自行開發。

Elastic-Job-Cloud 應用比較廣泛,但系統運維復雜,學習成本較高。相對來說,XXL-Job 就更加輕量級一些。中國人開發的系統,后臺都比較漂亮。

入口工具

推薦:LVS。

 

為了統一用戶的訪問路口,一般會使用一些入口工具進行支持。其中,Haproxy、LVS、Keepalived 等,使用非常廣泛。

服務器一般采用穩定性較好的 Centos,并配備 Ansible 工具進行支持,那叫一個爽。

OLT(A)P

 

推薦:ES。

現在的企業,數據量都非常大,數據倉庫是必須的。搜索方面,Solr 和 Elasticsearch 比較流行,它們都是基于 Lucene 的。Solr 比較成熟,穩定性更好一些,但實時搜索方面不如 ES。

列式存儲方面,基于 Hadoop 的 Hbase,使用最是廣泛;基于 LSM 的 LevelDB 寫入性能優越,但目前主要是作為嵌入式引擎使用多一些。

TiDB 是國產新貴,兼容 MySQL 協議,公司通過培訓向外輸出 DBA,未來可期。

時序數據庫方面,OpentsDB 用在超大型監控系統多一些。Druid 和 Kudu,在處理多維度數據實時聚合方面,更勝一籌。

Cassandra在剛出現時火了一段時間,雖然有 Facebook 棄用的新聞,但生態已經形成,常年霸占數據庫引擎前 15 名。

CI/CD

 

為了支持持續集成和虛擬化,除了耳熟能詳的 Docker,我們還有其他工具。

Jenkins 是打包發布的首選,畢竟這么多年了,一直是老大哥。當然,寫 Idea 的那家公司,還出了一個叫 TeamCity 的工具,操作界面非常流暢。

Solor 不得不說是一個神器,用了它之后,小伙伴們的代碼一片飄紅,我都快被吐沫星子給淹沒了。

對于公司內部來說,一般使用 Gitlab 搭建 Git 服務器。其實,它里面的 Gitlab CI,也是非常好用的。

Harbor,在 Docker Registry 基礎上擴展了權限控制,審計,鏡像同步,管理界面等治理 能力,推薦使用。

調度方面,K8s,Google 開源,社區的強力推動,有大量的落地方案。

Rancher 對 K8s 進行了功能的拓展,實現了和 K8s 集群交互的一些便捷工具,包括執行命令行,管理多個 K8s 集群,查看 K8s 集群節點的運行狀態等,推薦集成。

問題排查

 

Java 經常發生內存溢出問題。使用 Jmap 導出堆棧后,我一般使用 Mat 進行深入分析。

如果在線上實時分析,有 Arthas 和 Perf 兩款工具。當然,有大批量的 Linux 工具進行支持。

本地工具

 

本地使用的 jar 包和工具,那就多了去了。下面僅僅提一下最最常用的幾個。

數據庫連接池方面,國內使用 Druid 最多。目前,有號稱速度最快的 Hikari 數據庫連接池,以及老掉牙的 dbcp 和 c3p0。

Json 方面,國內使用 Fastjson 最多,三天兩頭冒出個漏洞;國外則使用 Jackson 多一些。

它們的 API 都類似,Jackson 特性多一些,但 Fastjson 更加容易使用。工具包方面,雖然有各種 Commons 包,Guava 首選。

總結

架構選型,除了你本身對某項技術比較熟悉,用起來更放心。更多的是需要進行大量調研、對比,直到掌握。

技術日新月異,新瓶裝舊酒,名詞一籮筐,程序員很辛苦。唯有那背后的基礎原理,大道至簡的思想,經久不衰。

作者:小姐姐味道

簡介:一個不允許程序員走彎路的公眾號。聚焦基礎架構和 Linux。十年架構,日百億流量,與你探討高并發世界,給你不一樣的味道。

編輯:陶家龍

出處:轉載自公眾號小姐姐味道(ID:xjjdog)

 

責任編輯:武曉燕 來源: 小姐姐味道
相關推薦

2022-06-15 10:04:51

存儲選型MySQL

2020-11-25 09:56:48

架構運維技術

2023-09-27 10:23:19

NoSQL數據模型

2022-03-14 10:12:22

架構網關技術

2022-03-17 09:55:05

架構分布式選型

2023-01-03 08:30:00

ChatGPT谷歌機器人

2009-12-18 10:22:50

Ray Ozzie架構師

2020-08-24 08:50:12

架構師TL技術

2025-10-31 07:05:00

MQ平滑遷移MySQL

2025-10-30 07:06:00

內存管理架構memcache

2015-12-09 15:16:03

架構師京東架構

2018-07-03 15:46:24

Java架構師源碼

2012-08-04 16:02:00

架構師

2020-01-16 15:35:00

高并發架構服務器

2019-09-27 09:56:31

軟件技術硬件

2012-11-01 15:08:10

IBM資深架構師

2013-04-19 15:12:17

架構師WEB架構師

2012-12-13 09:47:15

軟件架構師架構師

2022-04-28 13:08:51

架構師軟件

2011-04-07 16:20:24

軟件架構師架構師架構
點贊
收藏

51CTO技術棧公眾號

91精品国产综合久久男男| 色狠狠久久av五月综合|| 免费亚洲电影| 欧美日韩免费在线| 无码人妻丰满熟妇区毛片| 在线亚洲一区| 5566中文字幕一区二区| 国产伦精品一区二区三区视频| 久久综合网hezyo| 国精产品一区二区三区有限公司| 精品国产99国产精品| 在线免费av电影| 色一情一乱一乱一91av| 中文字幕在线免费专区| 亚洲精品成人天堂一二三| 五月综合网站| 国产精品国模大尺度视频| 黄色片视频在线| 国产精品国产三级国产普通话三级 | 中文字幕免费精品| 国产精品男女猛烈高潮激情| 亚洲毛片免费看| 国产91精品久| 国产探花一区二区| 国产精品高潮呻吟久久av黑人| 精品欧美激情在线观看| 国产激情久久久| 天天做天天爱天天爽综合网| 亚洲精品欧美一区二区三区| 亚洲午夜伦理| 热舞福利精品大尺度视频| 免费在线观看成人| 欧美国产综合在线| 国产亚洲精品超碰| 国产免费专区| 日本韩国欧美三级| 中文字幕在线三区| 国产亚洲精品成人av久久ww| 涩爱av色老久久精品偷偷鲁| 国产91精品视频在线观看| 99久久夜色精品国产亚洲96| 久久er99热精品一区二区三区| 日日夜夜免费精品| 草b视频在线观看| **欧美大码日韩| 蜜桃视频在线入口www| 精品久久久久久无| 高清不卡一区| 国产在线视频2019最新视频| 男人的天堂成人在线| 国产手机免费视频| 亚洲欧美日韩人成在线播放| av天在线观看| 中文字幕一区电影| 欧美手机在线| 日本一区二区在线视频| 99精品国产91久久久久久| 五月天丁香婷| 亚洲第一精品夜夜躁人人躁| 国产成人一二片| 精品欧美一区二区久久久伦| 国产成人激情av| 操碰在线免费| 日韩精品视频在线观看免费| 亚洲区小说区图片区qvod| 久久精品国产一区二区三区不卡| 不卡av在线网| 欧洲天堂在线观看| 少妇av一区二区三区| 91tv官网精品成人亚洲| 麻豆视频传媒入口| 五月天视频一区| 日日夜夜天天综合| 国产欧美精品日韩| 国产一区久久久| 手机亚洲第一页| 中文字幕久精品免费视频| 久操成人av| 亚洲免费视频一区| 一区二区三区不卡在线观看| 亚洲风情在线资源| 91色在线观看| 久久无码av三级| 9191在线播放| 国产精品久久综合av爱欲tv| 福利一区在线观看| 91在线品视觉盛宴免费| 97不卡在线视频| 国产一区 二区 三区一级| 久久米奇亚洲| 欧美高清电影在线看| 日韩av一区二区三区| 曰本人一级毛片免费完整视频| 日韩高清av一区二区三区| 中文字幕日韩一区二区不卡 | 亚洲精品女人| 国产免费视频| 亚洲欧洲偷拍精品| 精品91在线| avlululu| 欧美xxxx14xxxxx性爽| 蜜臀av一区二区在线观看| 在线免费毛片| 97精品欧美一区二区三区| 国产精品综合久久| yellow91字幕网在线| 91精品一区二区| 亚洲人成亚洲人成在线观看图片 | 欧美日韩亚洲天堂| 国产成人tv| 欧美中日韩在线| 日韩一级黄色片| 成人国产精品一级毛片视频| 国模杨依粉嫩蝴蝶150p| 亚洲午夜激情免费视频| 久久久久国内| 久色视频在线| 91精品啪aⅴ在线观看国产| 亚洲人成网站色在线观看| 亚洲精品一区二区三区在线| 一本久道高清无码视频| 日韩精品在线免费观看| 久久激情网站| 黄色动漫在线| 国产一区二区三区无遮挡| 欧美日韩国产一区在线| 国产精品密蕾丝视频下载| 97影院理论| 青青草原一区二区| 亚洲美女免费在线| 国产精品入口久久| 国产99re| 国产精品精品久久久| 亚洲网友自拍偷拍| 91麻豆精品国产91久久久平台| 91短视频在线| 亚洲影影院av| 日本韩国一区二区三区视频| 在线观看一区视频| av激情在线| 国产传媒一区二区三区| 欧美日韩国产限制| 激情久久婷婷| 黄色网在线免费看| 亚洲精品日韩精品| 亚洲最新中文字幕| 久久久美女毛片| 国产乱人伦丫前精品视频| 国产视频手机在线播放| 91精品国产成人| 亚洲自拍偷拍麻豆| 欧美一区二区三区久久精品| 色综合久久影院| 中文字幕日韩精品久久| 亚洲午夜性刺激影院| 91老师国产黑色丝袜在线| 国产一区二区三区不卡av| 国产香蕉尹人视频在线| 成人在线免费网站| 亚洲成色777777在线观看影院| 国产一区二区女| 成人乱码手机视频| 日本免费视频| 久久日韩精品| 中文字幕日韩av| 亚洲另类一区二区| 极品尤物久久久av免费看| 在线观看免费视频你懂的| 波多野结衣 作品| 久久人人97超碰精品888| 亚洲成人精品在线观看| 日韩精品三区四区| 久久国际精品| 日本国产在线| 999久久欧美人妻一区二区| 欧美中文字幕在线视频| 91国偷自产一区二区三区观看| 日本午夜一区二区| 日韩精品一区二区三区中文| 亚洲色图16p| 国产麻豆电影在线观看| 国产69精品久久久久9999| 91电影在线观看| 成人一级视频在线观看| 天天做天天爱天天爽综合网| 综合在线影院| 在线观看视频你懂的| 中文字幕剧情在线观看一区| 91爱视频在线| 91精品国产综合久久蜜臀 | 中文字幕亚洲在线观看| 日本在线视频1区| 日日噜噜夜夜狠狠久久丁香五月 | 一本一道久久a久久精品综合 | 欧美激情资源网| 亚洲日本欧美| 午夜视频一区二区在线观看| 欧美激情黑人| 亚洲国产高清av| 亚洲欧洲久久|