底部更多详情图....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