摘要: 监控平台,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: