摘要: 監控平臺,RPC框架,分佈式統一框架,數據庫訪問層中間件,軟負載,分佈式存儲,分佈式緩存,性能分析工具,數據庫鏈接池,消息中間件mq,序列化,分佈式協調服務,前端選型php
一、cat:CAT基於Java開發的實時應用監控平臺,包括實時應用監控,業務監控 https://github.com/dianping/cat 點評網html
二、Open-Falcon:http://open-falcon.org/ 小米 (非java)前端
人性化的互聯網企業級監控系統 * 數據採集免配置:agent自發現、支持Plugin、主動推送模式
* 容量水平擴展:生產環境每秒50萬次數據收集、告警、存儲、繪圖,可持續水平擴展。
* 告警策略自發現:Web界面、支持策略模板、模板繼承和覆蓋、多種告警方式、支持回調動做。
* 告警設置人性化:支持最大告警次數、告警級別設置、告警恢復通知、告警暫停、不一樣時段不一樣閾值、支持維護週期,支持告警合併。
* 歷史數據高效查詢:秒級返回上百個指標一年的歷史數據。
* Dashboard人性化:多維度的數據展現,用戶自定義Dashboard等功能。
* 架構設計高可用:整個系統無核心單點,易運維,易部署。vue
一、 pigeon : https://github.com/dianping/pigeon 點評網java
二、 dubbo:http://dubbo.io/ 阿里mysql
三、 dubbox:https://github.com/dangdangdotcom/dubbox 噹噹網react
支持REST風格遠程調用(HTTP + JSON/XML)git
支持基於Kryo和FST的Java高效序列化實現angularjs
支持基於Jackson的JSON序列化github
支持基於嵌入式Tomcat的HTTP remoting體系
升級Spring
升級ZooKeeper客戶端
支持徹底基於Java代碼的Dubbo配置
調整Demo應用
修正了dubbo的bug 包括配置、序列化、管理界面等等的bug
四、motan: github.com/weibocom/motan 新浪微博
概述
Motan 是一套高性能、易於使用的分佈式遠程服務調用(RPC)框架。
功能
支持經過spring配置方式集成,無需額外編寫代碼便可爲服務提供分佈式調用能力。
支持集成consul、zookeeper等配置服務組件,提供集羣環境的服務發現及治理能力。
支持動態自定義負載均衡、跨機房流量調整等高級服務調度能力。
基於高併發、高負載場景進行優化,保障生產環境下RPC服務高可用。
五、harpc :https://github.com/baifendian/harpc 百分點
基於Thrift的跨語言、高可用、高性能、輕量級的RPC框架。
功能介紹
跨語言通訊
方便的使Java、Python、C++三種程序能夠相互通訊
負載均衡和容災處理
方便的實現任務的分佈式處理
支持服務的水平擴展,自動發現新的服務節點
可以兼容各類異常狀況,如節點的異常down機
可視化管理
經過服務管理系統能夠方便查看服務狀態和統計信息
與原生thrift通訊
支持與原生thrift服務進行通訊
一、 Albianj2:https://github.com/crosg/Albianj2 閱文集團
Albianj是咱們設計並開發的一套分佈式統一框架。他主要是面向海量數據處理、海量數據 訪 問、並解決互聯網開發中常常會碰到的數據海量增加問題,也一併解決 互聯網開發團隊 中,因開發人員的水平良莠不齊而致使的代碼質量不可控問題。它主要有簡單小巧的IoC, ORM,數據路由,緩存集成,分佈式惟一id等等功能
1. 一個簡單的Service服務,比spring輕量不少不少
2. 一個簡單的ORM框架
3. 數據路由服務
4. 分佈式事務服務(支持強、弱兩種模型)
5. 簡單的緩存服務
6. 統一的Id服務
7. 日誌服務(這部分有待擴展)
8. 密碼安全服務
9. 簡單的restful服務
10. 一個輕量級的配置服務
一、zebra:https://github.com/dianping/zebra 點評網
1. 配置集中管理,動態刷新
2. 支持讀寫分離、分庫分表
3. 豐富的監控信息在CAT上展示
二、mango:https://github.com/jfaster/mango/ 樂視
一、超高性能,響應速度接近直接使用JDBC
二、採用接口與註解的形式定義DAO,完美結合db與cache操做
三、支持動態sql,能夠構造任意複雜的sql語句
四、支持多數據源,分表,分庫,事務
五、內嵌「函數式調用」功能,能將任意複雜的對象,映射到數據庫的表中
六、高效詳細的實時統計系統,方便開發者隨時瞭解本身的系統
七、獨立jar包,不依賴其它jar包
八、提供便捷的spring插件,與spring無縫集成
三、Mycat:http://www.mycat.org.cn/
國內最活躍的、性能最好的開源數據庫中間件
關鍵特性
支持SQL92標準
支持MySQL、Oracle、DB二、SQL Server、PostgreSQL等DB的常見SQL語法
遵照Mysql原生協議,跨語言,跨平臺,跨數據庫的通用中間件代理。
基於心跳的自動故障切換,支持讀寫分離,支持MySQL主從,以及galera cluster集羣。
支持Galera for MySQL集羣,Percona Cluster或者MariaDB cluster
基於Nio實現,有效管理線程,解決高併發問題。
支持數據的多片自動路由與聚合,支持sum,count,max等經常使用的聚合函數,支持跨庫分頁。
支持單庫內部任意join,支持跨庫2表join,甚至基於caltlet的多表join。
支持經過全局表,ER關係的分片策略,實現了高效的多表join查詢。
支持多租戶方案。
支持分佈式事務(弱xa)。
支持XA分佈式事務(1.6.5)。
支持全局序列號,解決分佈式下的主鍵生成問題。
分片規則豐富,插件化開發,易於擴展。
強大的web,命令行監控。
支持前端做爲MySQL通用代理,後端JDBC方式支持Oracle、DB二、SQL Server 、 mongodb 、巨杉。
支持密碼加密
支持服務降級
支持IP白名單
支持SQL黑名單、sql注入攻擊攔截
支持prepare預編譯指令(1.6)
支持非堆內存(Direct Memory)聚合計算(1.6)
支持PostgreSQL的native協議(1.6)
支持mysql和oracle存儲過程,out參數、多結果集返回(1.6)
支持zookeeper協調主從切換、zk序列、配置zk化(1.6)
支持庫內分表(1.6)
集羣基於ZooKeeper管理,在線升級,擴容,智能優化,大數據處理(2.0開發版)。
四、Cobar
Cobar是阿里巴巴開源(官方github)的一個對應用保持透明的MySQL數據庫分佈式處理中間件。
Cobar功能
將一張表拆分到不一樣的庫。
將不一樣的表放入不一樣的庫。
提供HA方案
Cobar約束
不支持跨庫狀況下的 join、分頁、排序、子查詢操做
SET 語句執行會被忽略,事務和字符集設置除外
分庫狀況下,insert 語句必須包含拆分字段列名
分庫狀況下,update 語句不能更新拆分字段的值
不支持 SAVEPOINT 操做
暫時只支持 MySQL 數據節點
一、camel:https://github.com/dianping/camel 點評網
是大衆點評開發的軟負載一體解決方案,承擔了F5硬負載層後的軟負載工做。
Camel已 成爲大衆點評網 絡流量中必不可缺的一層
一、FastDFS: https://github.com/happyfish100/fastdfs
開源的輕量級分佈式文件系統,對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件爲載體的在線服務,如相冊網站、視頻網站等等。
FastDFS服務端有兩個角色:跟蹤器(tracker)和存儲節點(storage)。跟蹤器主要作調度工做,在訪問上起負載均衡的做用。
存儲節點存儲文件,完成文件管理的全部功能:存儲、同步和提供存取接口,FastDFS同時對文件的meta data進行管理。所謂文件的meta data就是文件的相關屬性,以鍵值對(key value pair)方式表示,如:width=1024,其中的key爲width,value爲1024。文件meta data是文件屬性列表,能夠包含多個鍵值對
二、zimg:http://blog.buaa.us/zimg-v2-release/
一個圖片存儲程序,主要的優勢是能夠根據請求實時處理圖片,而且進行壓縮和存儲,
一是方便前端用戶,二來下降流量。zimg設計之初就是面向中小型應用,是存儲量小於
TB級別的單機存儲方案。它的1.0版本主要競爭對手是基於Nginx+PHP的圖片服務器,
由於採用了特殊的策略,zimg會比PHP快出不少
一、redis:https://redis.io/
Redis是一個開源(BSD許可),內存存儲的數據結構服務器,可用做數據庫,高速緩存和消息隊列代理。它支持字符串、哈希表、列表、集合、有序集合,位圖,hyperloglogs等數據類型。內置複製、Lua腳本、LRU收回、事務以及不一樣級別磁盤持久化功能,同時經過Redis Sentinel提供高可用,經過Redis Cluster提供自動分區,可經過一致hash實現分佈式存儲
二、ignite:http://ignite.apache.org/
Apache Ignite內存數據架構是一種高性能,集成和分佈式的內存平臺,用於實時計算和處理大規模數據集,比使用傳統基於磁盤或閃存技術的可能性快幾個數量級
3.coherence
付費:http://www.oracle.com/technetwork/middleware/coherence/overview/index.html
Oracle Coherence是行業領先的內存數據網格解決方案,經過提供對經常使用數據的快速訪問,組織能夠可預測地擴展關鍵任務應用程序。 隨着數據量和客戶指望的增長,由「物聯網」,社交,移動,雲和永遠鏈接的設備驅動,所以須要實時處理更多的數據,卸載超負荷的共享數據服務,並提供 可用性保證。無須集羣就能夠操做多節點共享內存,多幾節點聚合計算能力
一、 TProfiler:https://github.com/alibaba/TProfiler 阿里
TProfiler是一個能夠在生產環境長期使用的性能分析工具.它同時支持剖析和採樣兩種方式,記錄方法執行的時間和次數,生成方法熱點 對象建立熱點 線程狀態分析等數據,爲查找系統性能瓶頸提供數據支持.
TProfiler在JVM啓動時把時間採集程序注入到字節碼中,整個過程無需修改應用源碼.運行時會把數據寫到日誌文件,通常狀況下每小時輸出的日誌小於50M.
業界同類開源產品都不是針對大型Web應用設計的,對性能消耗較大不能長期使用,TProfiler解決了這個問題.目前TProfiler已應用於淘寶的核心Java前端系統.
部署後低峯期對應用響應時間影響20% 高峯期對吞吐量大約有30%的下降(高峯期能夠遠程關閉此工具).
一、druid:https://github.com/alibaba/druid 阿里
一、ActiveMq:
ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息總線。ActiveMQ 是一個徹底支持JMS1.1和J2EE 1.4規範的 JMS Provider實現,儘管JMS規範出臺已是好久的事情了,可是JMS在當今的J2EE應用中間仍然扮演着特殊的地位
二、RocketMQ:https://github.com/alibaba/RocketMQ 阿里
一、RocketMQ 是一款分佈式、隊列模型的消息中間件,具備如下特色:
二、可以保證嚴格的消息順序
三、提供豐富的消息拉取模式
四、高效的訂閱者水平擴展能力
五、實時的消息訂閱機制
六、億級消息堆積能力
七、Metaq3.0 版本更名,產品名稱改成RocketMQ
三、Kafka:http://kafka.apache.org/
Kafka是一種高吞吐量的分佈式發佈訂閱消息系統,它能夠處理消費者規模的網站中的全部動做流數據。 這種動做(網頁瀏覽,搜索和其餘用戶的行動)是在現代網絡上的許多社會功能的一個關鍵因素。 這些數據一般是因爲吞吐量的要求而經過處理日誌和日誌聚合來解決。 對於像Hadoop的同樣的日誌數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka的目的是經過Hadoop的並行加載機制來統一線上和離線的消息處理,也是爲了經過集羣來提供實時的消費
四、RabbitMq:http://www.rabbitmq.com/
應用程序的健壯消息傳遞
易於使用
在全部主要操做系統上運行
支持大量的開發者平臺
開源和商業支持
一、fastjson:https://github.com/alibaba/fastjson 阿里
fastjson 是一個性能很好的 Java 語言實現的 JSON 解析器和生成器。
主要特色:
快速FAST (比其它任何基於Java的解析器和生成器更快,包括jackson)
強大(支持普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum)
零依賴(沒有依賴其它任何類庫除了JDK)
二、Jackson:https://github.com/FasterXML/jackson/
Jackson 是一個 Java 用來處理 JSON 格式數據的類庫,性能很是好
三、gson:https://github.com/google/gson google
提供簡單的tojson()和fromjson()方法將java對象的JSON
容許存在不可修改的對象被轉換爲從JSON
java泛型的普遍支持
容許對象的自定義表示
支持任意複雜對象(具備深層繼承層次和泛型類型的普遍使用)
四、kryo:
諸如Hessian和GPB這些三方的序列化框架或多或少的都對Java原生序列化機制作出了一些改進;而對於Kryo來講,改進無疑是更完全一些;在不少評測中,Kryo的數據都是遙遙領先的;
Kryo的處理和Google Protobuf相似。但有一點須要說明的是,Kryo在作序列化時,也沒有記錄屬性的名稱,而是給每一個屬性分配了一個id,可是他卻並無GPB那樣經過一個schema文件去作id和屬性的一個映射描述,因此一旦咱們修改了對象的屬性信息,好比說新增了一個字段,那麼Kryo進行反序列化時就可能發生屬性值錯亂甚至是反序列化失敗的狀況;並且因爲Kryo沒有序列化屬性名稱的描述信息,因此序列化/反序列化以前,須要先將要處理的類在Kryo中進行註冊,這一操做在首次序列化時也會消耗必定的性能。
另外須要提一下的就是目前kryo目前還只支持Java語言。
一、zookeeper:http://zookeeper.apache.org/
ZooKeeper是以Fast Paxos算法爲基礎的,Paxos 算法存在活鎖的問題,即當有多個proposer交錯提交時,有可能互相排斥致使沒有一個proposer能提交成功,而Fast Paxos做了一些優化,經過選舉產生一個leader (領導者),只有leader才能提交proposer,具體算法可見Fast Paxos。所以,要想弄懂ZooKeeper首先得對Fast Paxos有所瞭解。
ZooKeeper的基本運轉流程:
一、選舉Leader。
二、同步數據。
三、選舉Leader過程當中算法有不少,但要達到的選舉標準是一致的。
四、Leader要具備最高的zxid。
五、集羣中大多數的機器獲得響應並follow選出的Leader。
一、bootstrap:http://getbootstrap.com/
Bootstrap,來自 Twitter,是目前很受歡迎的前端框架。Bootstrap 是基於 HTML、CSS、JAVASCRIPT 的,它簡潔靈活,使得 Web 開發更加快捷。它由Twitter的設計師Mark Otto和Jacob Thornton合做開發,是一個CSS/HTML框架
二、vue:http://vuejs.org/
是一套構建用戶界面的 漸進式框架。與其餘重量級框架不一樣的是,Vue 採用自底向上增量開發的設計。Vue 的核心庫只關注視圖層,而且很是容易學習,很是容易與其它庫或已有項目整合。另外一方面,Vue 徹底有能力驅動採用單文件組件和 Vue 生態系統支持的庫開發的複雜單頁應用。
Vue.js 的目標是經過儘量簡單的 API 實現響應的數據綁定和組合的視圖組件
三、React:http://reactjs.cn/react/index.html
四、AngularJS:https://angularjs.org/
核心的是:MVC、模塊化、自動化雙向數據綁定、語義化標籤、依賴注入等等。
五、ztree:http://www.treejs.cn/v3/main.php#_zTreeInfo
六、weex:https://weex-project.io/index.html 阿里跨平臺前端
七、easyui:http://www.jeasyui.com
easyui是一種基於jQuery的用戶界面插件集合。
easyui爲建立現代化,互動,JavaScript應用程序,提供必要的功能。
使用easyui你不須要寫不少代碼,你只須要經過編寫一些簡單HTML標記,就能夠定義用戶界面。
easyui是個完美支持HTML5網頁的完整框架。
easyui節省您網頁開發的時間和規模。
easyui很簡單但功能強大的。
八、amaze:http://amazeui.org/ 國產開源 HTML5 跨屏前端框架
二、MSF4J: