底部更多詳情圖....html
適合構建微服務系統前端
其它語言: .net core 、 Go 等java
自動CI程序,持續集成linux
當系統中出現「生產「和「消費「的速度或穩定性等因素不一致的時候,就須要消息隊列,做爲抽象層,彌合雙方的差別。「 消息 」是在兩臺計算機間傳送的數據單位。消息能夠很是簡單,例如只包含文本字符串;也能夠更復雜,可能包含嵌入對象。消息被髮送到隊列中,「 消息隊列 」是在消息的傳輸過程當中保存消息的容器 。nginx
MySQL/PostgreSQL是傳統關係型數據庫的表明。git
HBase是Big Tables技術的表明(行索引,列存儲)。github
Neo4j(http://www.neo4j.org/)是圖數據庫表明,用來存儲複雜、多維度的圖結構數據。web
Redis是基於Key-Value的NoSQL表明,有Redis-to-go提供存儲服務。算法
MongoDB/CouchDB是基於Document的NoSQL表明,Couchbase是Document/Key-Value技術的融合。docker
VoltDB是NewSQL的表明,具有數據一致性和良好的擴展性,性能宣稱是MySQL的數十倍以上。
TiDB 是國內 PingCAP 團隊開發的一個分佈式 SQL 數據庫。其靈感來自於 Google 的 F1 和 Google spanner, TiDB 支持包括傳統 RDBMS 和 NoSQL 的特性。
InfluxDB
時序數據庫工具。
Telegraf
是一個數據收集和入庫的工具。提供了不少 input 和 output 插件,好比收集本地的 cpu、load、網絡流量等數據,而後寫入 InfluxDB 或者 Kafka 等。
Chronograf
繪圖工具
Kapacitor
Kapacitor 是 InfluxData 家的告警工具,經過讀取 InfluxDB 中的數據,根據 DLS 類型配置 TickScript 來進行告警。
keepalived是集羣管理中保證集羣高可用的一個服務軟件,其功能相似於heartbeat,用來防止單點故障。
keepalived是以VRRP協議爲實現基礎的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗餘協議。
虛擬路由冗餘協議,能夠認爲是實現路由器高可用的協議,即將N臺提供相同功能的路由器組成一個路由器組,這個組裏面有一個master和多個backup,master上面有一個對外提供服務的vip(該路由器所在局域網內其餘機器的默認路由爲該vip),master會發組播,當backup收不到vrrp包時就認爲master宕掉了,這時就須要根據VRRP的優先級來選舉一個backup當master。這樣的話就能夠保證路由器的高可用了。
keepalived主要有三個模塊,分別是core、check和vrrp。core模塊爲keepalived的核心,負責主進程的啓動、維護以及全局配置文件的加載和解析。check負責健康檢查,包括常見的各類檢查方式。vrrp模塊是來實現VRRP協議的
Harbor是一個用於存儲和分發Docker鏡像的企業級Registry服務器。
Apache Ignite 內存數據組織框架是一個高性能、集成化和分佈式的內存計算和事務平臺,用於大規模的數據集處理,比傳統的基於磁盤或閃存的技術具備更高的性能,同時他還爲應用和不一樣的數據源之間提供高性能、分佈式內存中數據組織管理的功能。
序號 |
對比項目 |
Apache Ignite |
Redis |
1 |
JCache (JSR 107) |
Ignite徹底兼容JCache(JSR107)緩存規範 |
不支持 |
2 |
ACID事務 |
Ignite徹底支持ACID事務,包括樂觀和悲觀併發模型以及READ_COMMITTED, REPEATABLE_READ和SERIALIZABLE隔離級別。 |
Redis提供了客戶端樂觀事務的有限支持,在併發更新狀況下,客戶端須要手工重試事務。 |
3 |
數據分區 |
Ignite支持分區緩存,相似於一個分佈式哈希,集羣中的每一個節點都存儲數據的一部分,在拓撲發生變化的狀況下,Ignite會自動進行數據的再平衡。 |
Redis沒有提供分區,可是提供了副本的分片,使用分片很是死板,而且無論是客戶端仍是服務端,每當拓撲發生變化時都須要一系列至關複雜的手工步驟。 |
4 |
全複製 |
Ignite支持緩存的複製,集羣中的每一個節點的每一個鍵值對都支持。 |
Redis不提供對全複製的直接支持。 |
5 |
原生對象 |
Ignite容許用戶使用本身的領域對象模型而且提供對任何Java/Scala, C++和.NET/C#數據類型(對象)的原生支持,用戶能夠在Ignite緩存中輕易的存儲任何程序和領域對象。 |
Redis不容許用戶使用自定義數據類型,僅支持預約義的基本數據結構集合,好比Set、List、Array以及一些其餘的。 |
6 |
客戶端側(近)緩存 |
Ignite提供對於最近訪問數據的客戶端側緩存的直接支持。 |
不支持 |
7 |
(服務端側)並置處理 |
Ignite支持在服務器端靠近數據以並置的方式直接執行任何Java, C++和.NET/C#代碼。 |
Redis一般沒有任何並置處理的能力,服務器端基本只支持LUA腳本語言,服務器端不直接支持Java, .NET,或者C++代碼執行。 |
8 |
SQL查詢 |
Ignite支持完整SQL(ANSI-99)語法以查詢內存中的數據。 |
Redis不支持任何查詢語言,只支持客戶端緩存API。 |
9 |
持續查詢 |
Ignite提供對客戶端和服務器端持續查詢的支持,用戶能夠設置服務器端的過濾器來減小和下降傳輸到客戶端的事件數量。 |
Redis提供客戶端基於鍵的事件通知的支持,可是他不提供服務器端的過濾器,所以形成了在客戶端和服務器端中更新通知網絡流量的顯著增長。 |
10 |
數據庫集成 |
Ignite能夠自動集成外部的數據庫-RDBMS, NoSQL,和HDFS。 |
Redis沒法與外部數據庫集成。 |
ELK由Elasticsearch、Logstash和Kibana三部分組件組成;
Elasticsearch是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
Logstash是一個徹底開源的工具,它能夠對你的日誌進行收集、分析,並將其存儲供之後使用
kibana 是一個開源和免費的工具,它能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助您彙總、分析和搜索重要數據日誌。
Kong是一款基於Nginx_Lua模塊寫的高可用,易擴展由Mashape公司開源的API Gateway項目。因爲Kong是基於Nginx的,因此能夠水平擴展多個Kong服務器,經過前置的負載均衡配置把請求均勻地分發到各個Server,來應對大批量的網絡請求。
Kong主要有三個組件:
Kong Server :基於nginx的服務器,用來接收API請求。
Apache Cassandra/PostgreSQL :用來存儲操做數據。
Kong dashboard:官方推薦UI管理工具,固然,也可使用 restfull 方式 管理admin api。
Kong採用插件機制進行功能定製,插件集(能夠是0或n個)在API請求響應循環的生命週期中被執行。插件使用Lua編寫,目前已有幾個基礎功能:HTTP基本認證、密鑰認證、CORS( Cross-origin Resource Sharing,跨域資源共享)、TCP、UDP、文件日誌、API請求限流、請求轉發以及nginx監控。
OpenStack + KVM
OpenStack:開源管理項目
OpenStack是一個旨在爲公共及私有云的建設與管理提供軟件的開源項目。它不是一個軟件,而是由幾個主要的組件組合起來完成一些具體的工做。OpenStack由如下五個相對獨立的組件構成:
OpenStack Compute(Nova)是一套控制器,用於虛擬機計算或使用羣組啓動虛擬機實例;
OpenStack鏡像服務(Glance)是一套虛擬機鏡像查找及檢索系統,實現虛擬機鏡像管理;
OpenStack對象存儲(Swift)是一套用於在大規模可擴展系統中經過內置冗餘及容錯機制,以對象爲單位的存儲系統,相似於Amazon S3;
OpenStack Keystone,用於用戶身份服務與資源管理以及
OpenStack Horizon,基於Django的儀表板接口,是個圖形化管理前端。
這個起初由美國國家航空航天局和Rackspace在2010年底合做研發的開源項目,旨在打造易於部署、功能豐富且易於擴展的雲計算平臺。OpenStack項目的首要任務是簡化雲的部署過程併爲其帶來良好的可擴展性,企圖成爲數據中心的操做系統,即雲操做系統。
KVM:開放虛擬化技術
KVM(Kernel-based Virtual Machine)是一個開源的系統虛擬化模塊,它須要硬件支持,如Intel VT技術或者AMD V技術,是基於硬件的徹底虛擬化,徹底內置於Linux。
2008年,紅帽收購Qumranet得到了KVM技術,並將其做爲虛擬化戰略的一部分大力推廣,在2011年發佈RHEL6時支持KVM做爲惟一的hypervisor。KVM主打的就是高性能、擴展性、高安全,以及低成本。
專一於各類「分佈式系統配置管理」的「通用組件」和「通用平臺」, 提供統一的「配置管理服務」。
Apollo是攜程框架部門研發的配置管理平臺,可以集中化管理應用不一樣環境、不一樣集羣的配置,配置修改後可以實時推送到應用端,而且具有規範的權限、流程治理等特性。
服務端基於Spring Boot和Spring Cloud開發,打包後能夠直接運行,不須要額外安裝Tomcat等應用容器。
gRPC 是一個高性能、開源和通用的 RPC 框架,面向移動和 HTTP/2 設計。目前提供 C、Java 和 Go 語言版本,分別是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持.
gRPC 基於 HTTP/2 標準設計,帶來諸如雙向流、流控、頭部壓縮、單 TCP 鏈接上的多複用請求等特。這些特性使得其在移動設備上表現更好,更省電和節省空間佔用。
canal是阿里巴巴旗下的一款開源項目,純Java開發。基於數據庫增量日誌解析,提供增量數據訂閱&消費,目前主要支持了MySQL(也支持mariaDB)。
基於日誌增量訂閱&消費支持的業務:
Spark Streaming 是Spark核心API的一個擴展,能夠實現高吞吐量的、具有容錯機制的實時流數據的處理。支持從多種數據源獲取數據,包括Kafk、Flume、Twitter、ZeroMQ、Kinesis 以及TCP sockets,從數據源獲取數據以後,可使用諸如map、reduce、join和window等高級函數進行復雜算法的處理。
Sonar是一個用於代碼質量管理的開源平臺,用於管理源代碼的質量,能夠從七個維度檢測代碼質量
經過插件形式,能夠支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種編程語言的代碼質量管理與檢測
DataX 是一個異構數據源離線同步工具,致力於實現包括關係型數據庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各類異構數據源之間穩定高效的數據同步功能。
禪道功能
1)產品管理:產品、需求、計劃、發佈、路線圖等功能。
2)項目管理:項目、任務、團隊、build、燃盡圖等功能。
3)質量管理:bug、測試用例、測試任務、測試結果等功能。
4)文檔管理:產品文檔庫、項目文檔庫、自定義文檔庫等功能。
5)事務管理:todo管理,個人任務、個人Bug、個人需求、個人項目等我的事務管理功能。
6)組織管理:部門、用戶、分組、權限等功能。
7)統計功能:豐富的統計表。
8)搜索功能:經過搜索找到相應的數據。
JIRA功能
1)問題追蹤和管理(問題類型包括New Feature-新功能、Bug-缺陷、Task-任務、 Improvement-改進 四種);
2)問題跟進狀況的分析報告;
3)項目類別管理功能;
4)組件/模塊負責人功能;
5)項目email地址功能;
6)無限制的工做流。
XXL-JOB是一個輕量級分佈式任務調度框架,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。
一種全新的基礎設施管理方式,部署輕鬆,在幾分鐘內可運行起來,擴展性好,很容易管理上萬臺服務器,速度夠快,服務器之間秒級通信。
salt底層採用動態的鏈接總線, 使其能夠用於編配, 遠程執行, 配置管理等等.
Istio 做爲用於微服務服務聚合層管理的新銳項目,是 Google、IBM、Lyft(海外共享出行公司、Uber勁敵) 首個共同聯合開源的項目,提供了統一的鏈接,安全,管理和監控微服務的方案。
目前首個測試版是針對 Kubernetes 環境的,社區宣稱在將來幾個月內會爲虛擬機和 Cloud Foundry 等其餘環境增長支持。 Istio 將流量管理添加到微服務中,併爲增值功能(如安全性,監控,路由,鏈接管理和策略)創造了基礎。
Salt Stack + OpenStack + KVM + Kubernetes + Istio