- 一种叫Pinot Gris的白葡萄酒,在国内总被大家忽视 | 灰皮诺
吃酒ChiJiu
一近些年来,国内餐桌上喝白葡萄酒的现象,不断增多。长相思白葡萄酒、霞多丽干白葡萄酒、雷司令白葡萄酒,这些都是国人最爱喝的。这三种白葡萄酒,在世界上也相当有地位,是国际主流的白葡萄酒,好比联合国近200个成员国,但主流的才5个,五大常任理事国。还有一种叫“PinotGris”的白葡萄酒,在国际白葡萄酒界,也是有着“常任理事国”的地位。但在我们中国往往被大家忽视,销量也不高,在葡萄酒酒标上,是如下图所
- 【Apache Pinot】Data upload jobtype 粗略分析
彭笳鑫
数据库apachepinot数据库olap大数据
背景目前我司大部分实时数据和离线数据都存储在pinot数据库中,离线数据需要通过脚本去生成对应的数据上传到数据库里面,但是其中config中有个jobtype让人有点迷惑,本文简单的做一个概念的整理用处先说一下流程,目前我以hdfs举例,我们的脚本会先把数据通过hdfs的client上传到hadoop集群里面,接下来通过pinot-admin的语法把数据上传给pinotcontroller,这里脚
- 《Pinot: Realtime OLAP for 530 Million Users》读后感
xumingmingv
美洲葡萄酒?Pinot是一个每秒可以处理数以万计分析类查询的系统,支持近实时地从流式数据源进行数据摄取。简单来说作为一个分析类系统:数据进得快、查询返回快。为了达到数据消费的实时性,Pinot采取了Lambda的架构,Pinot把它叫做"Hybidtable",一份数据同时存在实时和离线两部分,用户将查询的时候,Pinot同时查离线和实时的数据,然后把merge的结果返回给用户,关于这种Lambd
- 实时分布式低延迟OLAP数据库Apache Pinot探索实操
2301_76429513
分布式数据库apache
Pinot可直接从流数据源(如ApacheKafka和AmazonKinesis)中摄取数据,基于实时事件实现即时的查询。还可以从批处理数据源中摄取数据,如HadoopHDFS、AmazonS3、AzureADLS和谷歌云存储。核心采用列式存储,基于智能索引和预聚合技术实现低延迟;还提供内部仪表板、异常检测和临时数据探索。特性Pinot最初是在LinkedIn上构建的,用于支持丰富的交互式实时分析
- 【Apache Pinot】浅析 Pinot 的 Table,Index 和 Tenant 原理
彭笳鑫
数据库apache数据库
本文属于基础篇幅,不会涉及过深入的原理,主要还是如何用好Pinot背景单独讲Table概念可能有些许单薄,本文会扩展场景,讲解表的部分原理,表与表之间的相互影响,租户是怎么作用到表的,增加字段和修改字段需要注意什么,扩容和调整表的物理磁盘要怎么操作更加合理。场景表刚创建的时候,其实问题都不会很大,但是随着业务的增长,数据的增多和需求的变更,会导致很多类型不一致,资源不够的情况。简单描述的话大概如下
- 【Apache Pinot】Controller、Broker 和 Server 的概念和工作流程
彭笳鑫
数据库apacheolappinot
背景笔者最近一段时间使用ApachePinot比较多,发现目前国内使用Pinot的很少,所以跟他相关的资料也比较少,本人在扩容,升级,部署,查询等方面操作有些许经验,知道其中有很多细节需要注意和规避,所以打算开个坑来写一下这块相关的实践内容和注意事项,方便自己回溯也方便使用Pinot的人参考。顺便以此来回馈Pinot社区对我很多的帮助,依稀记得Pinot作者之一fuxiang在国外跟我用腾讯会议沟
- 【Apache Pinot】探究 Pinot 中存储模型的设计逻辑和 Segment 详解
彭笳鑫
数据库大数据apache
背景上一篇文章中,笔者简单介绍了一下分布式数据库Pinot的核心组件,本文主要针对其中的存储模型会做部分讲解。如果你对读写磁盘有不错的基础的话,看起来会更轻松一些,如果没有也没关系,我会简单讲解一下这么设计的好处,会涉及一些八股,实在看不懂的可以留言,笔者知道的话会给你们的评论做解答。存储模型要先理解概念就得先看一下图,在脑海里面多增加印象。那么还是老样子,直接偷一波官方的图。从上图,最直观的感受
- 实时分布式低延迟OLAP数据库Apache Pinot探索实操
IT小神
大数据分布式数据库数据库分布式apache
文章目录概述定义特性何时使用部署Local安装快速启动手动设置集群Docker安装快速启动手动启动集群DockerCompose实操批导入数据流式导入数据概述定义ApachePinot官网地址https://pinot.apache.org/最新版本0.12.1ApachePinot官网文档地址https://docs.pinot.apache.org/ApachePinot源码地址https:/
- Pinot
超越爱迪生
编译#!/bin/bashset-eset-xif[[-doutput]]thenrm-rfoutput/*fimvninstallpackage-DskipTests-Dlicense.skip=true-Pbin-distmkdir-poutputcp-rpinot-distribution/target/apache-pinot-incubating-0.1.0-SNAPSHOT-bin/*
- Apache Helix简介
OopsOutOfMemory
helix
因工作兴趣,发现Pinot里集群资源管理框架是Helix,所以了解以下这个框架,同时将使用场景和简介翻译以下,也是学习的一个总结。ApacheHELIX一个为partitioned和replicated分布式资源而设计的集群管理框架WhatisHELIXApacheHelix是一个通用的集群资源管理框架,它能被用作自动管理存在于集群节点上的分区的,有副本的分布式资源。Helix能够在结点down掉
- RoaringBitmap简析
xywtalk
更新一:RoaringBitmap源码分析一(AND操作)Bitmap索引在数据库和搜索引擎里使用的很广泛。最近发现几个实时OLAP分析引擎,比如Druid和Pinot也都在用,所以深入研究了一下。这两个OLAP引擎都使用RoaringBitmap,这是一种压缩的、高效的bitmap索引。代码很精妙,看得很过瘾。Bitmap索引一般用来存储整数。整数的范围是0~2^32-1。所以如果用最朴素的思想
- 数据生成器
sdfjlkjsdfsaldfsdf
大数据JavaElasticSearchHiveMySQLKylin
data-generator是一个Java实现的数据生成器开源项目。如果你在从事大数据BI的工作,想对比一下MySQL、GreenPlum、Elasticsearch、Hive、Presto、Impala、Drill、HAWQ、Druid、Pinot、Kylin、ClickHouse等不同实现方案之间的表现,那你就需要一份标准的数据进行测试,这个开源项目就是为了生成这样的标准数据。数据模型:src
- Pinot中的Forward Index源码分析
xywtalk
还是以Quickstart为例,说一下forwardindex的创建过程。收集各个column的统计数据代码同dictionaryindex。再次遍历,按行处理每列的索引iterator复位//BuildtheindexrecordReader.rewind();重新遍历,对每行索引LOGGER.info("StartbuildingIndexCreator!");while(recordRead
- Pinot中的Dictionary Index源码分析
xywtalk
Pinot中的DictionaryIndexPinot有几种index,包括dictionaryindex,forwardindex,和invertedindex。这几种index的联合使用可以实现快速OLAP查询。Dictionaryindex是最简单的index,并且也为其他两种index提供基础数据。下面以Quickstart中的代码为例简单描述一下dictionaryindex的创建。Qu
- Pinot中的Inverted Index源码分析
xywtalk
InvertedIndex就是我们通常所说的倒排表(倒排索引)。Key是value,而值是value所在的那些行的id的集合。还是以Quickstart为例,说一下intervedindex的创建过程。收集各个column的统计数据代码同dictionaryindex和forwardindex。Invertedindex数据结构初始化//Initializetheindexcreationusin
- pinot伪分布式搭建
一杯咖啡半杯糖
pinot
本文中的伪分布式指的是pinot架构中每个组件controller、server、broker分别启动组成集群1、进入linux的pinot目录的bin文件夹下2、pinot启动controller,使用自己的zookeeper集群非pinot中的zookeepernohup./start-controller.sh-clusterNamePinotCluster-controllerHost19
- pinot查询数据
一杯咖啡半杯糖
pinot
pinot查询主要从下面几个方式操作1、从controller界面去查询2、pinot脚本查询(因为查询需要通过broker,所以端口为broker的端口)./pinot-admin.shPostQuery-brokerPort8000-query"selectcount(*)fromtranscript"3、curl命令进行查询curl-XPOST-d'{"pql":"selectcount(*
- pinot分布式搭建
一杯咖啡半杯糖
pinot
通常,在部署Pinot服务时,最好遵循部署各种组件的特定顺序。在可能存在协议或其他重大差异的情况下,建议使用此部署顺序,部署按可预测的顺序进行,可以避免由于这些更改而导致的故障。顺序如下:a)pinot-controllerb)pinot-brokerc)pinot-serverd)pinot-minion一、节点hadoop01:启动controllernohup./start-controll
- pinot的table配置
一杯咖啡半杯糖
pinot
下面的配置由官网说明翻译过来:TableConfig示例表配置和描述下面显示了一个示例表配置,其中的子节被重新排序。这些小节将在下面的小节中分别进行描述。功能特定文档的进一步链接到可用的地方。tableName:应该只包含字母数字字符、连字符('-')或下划线('_')。虽然使用双下划线('__')是不允许的,并保留在Pinot的其他功能。tableType:指示表的类型。每种类型都有一些特定的设
- pinot架构
一杯咖啡半杯糖
pinot
以下信息翻译自官网pinot架构部分:表:表是引用相关数据集合的逻辑抽象。它由列和行(文档)组成。段:表中的数据被分成(水平的)分片,称为段Pinot组件1、PinotController管理其他pinot组件(代理、服务器)以及控制将表/段分配给服务器。2、PinotServer托管一个或多个段,并为来自这些段的查询提供服务3、PinotBroker接受来自客户机的查询并将其路由到一个或多个服务
- 实时OLAP(五)Apache Pinot实时自动调优
ly923976094
云计算大数据
Pinot是可扩展分布式列式OLAP数据存储,由LinkedIn开发,为面向站点的用例(如LindedIn的Whoviewedmyprofile、Talentinsights等等)提供实时分析。Pinot使用ApacheHelix管理集群资源,并使用ApacheZookeeper存储元数据。Piont在LinkedIn得到了广泛的采用:从内部控制面板到面向站点的应用程序。Pinot通过Hadoop
- 实时OLAP(四)Apache Pinot Start-Tree索引技术
ly923976094
云计算大数据
Pinot是进入ApacheIncubation的开源的项目,可扩展的分布式OLAP数据存储。它是由LinkedIn开发的,可用于各种生产用例,以提供实时,低延迟的分析。Pinot面临的最大挑战之一是在大型数据集的延迟和吞吐量上实现并维持严格的SLA。现有的索引技术(例如排序索引和反向索引)有助于加速文档搜索以提高查询延迟。但是,它们的性能与计算结果时要处理的文档数成线性比例。另一方面,对结果进行
- Pinot架构介绍
cjfeii
数据库大数据程序设计
1.HighLevelArchitecture1.目的:对给定数据集提供分析服务2.输入数据:Hadoop&Kafka3.索引技术:为了提供快速的查询,Pinot采用列式存储以及各种索引技术(bitmap,invertedindex)2.DataFlow2.1Hadoop(Historical)1.输入数据:AVRO,CSV,JSON等;2.处理流程:在HDFS上的文件通过MR任务将数据变成有索引
- Pinot安装并简单部署测试环境
cjfeii
数据库大数据
1.下载代码$gitclonehttps://github.com/linkedin/pinot.git2.编译pinot$cdpinot$mvninstallpackage-DskipTests3.部署并启动$cdpinot-distribution/target/pinot-0.016-pkg$nohup./bin/quick-start-offline.sh&4.创建schema$./bin
- Pinot 简介
cjfeii
大数据
1.IntroductiontoPinotPinot是一个实时分布式的OLAP数据存储和分析系统。LinkedIn使用它实现低延迟可伸缩的实时分析。Pinot从离线数据源(包括Hadoop和各类文件)和在线数据源(如Kafka)中攫取数据进行分析。Pinot被设计是可以进行水平扩展的。2.Whatisitfor(andnot)?2.1Pinot适用于这样的应用场景数据:不改变的、只追加的分析:可以
- 大数据平台架构实践
陈振阳
Hadoop
说明本篇博客整理自参考内容,完整内容请查看原文章;技术选型MOLAP与Druid相类似的实时数据分析工具,还有Linkedln的Pinot和eBay的Kylin,它们都是基于Java开发的。Druid相对比较轻量级,用的人也多,毕竟开发时间久一些,问题也少一些。Pinot,Linkedln开发的类似于Druid的多维数据分析平台,它的功能实际上要比Druid强大一些,但因为去年才刚刚开始开源,用的
- Pinot创建表出现问题
一杯咖啡半杯糖
pinot大数据
背景是建立实时表schema和配置如下{"dimensionFieldSpecs":[{"dataType":"STRING","name":"FA0010000000"},{"dataType":"STRING","name":"FA0010010000"},{"dataType":"STRING","name":"FA0010020000"},{"dataType":"DOUBLE","nam
- pinot的schema配置
一杯咖啡半杯糖
pinot
下面文章为官网翻译:Pinot模式由一些列组成,这些列可以归类为维度、度量或时间。Dimensions——组织数据的列。例如,accountId,country,industry等。这些列用于分割数据,通常出现在查询中的selection、filter和group-by部分。Metrics-表示指标的测量的一些列。例如,numClicks,pageViews,等等。这些列通常出现在查询的聚合部分,
- pinot设置多值存储、默认值
一杯咖啡半杯糖
pinot
pinot可以支持多值存储,默认值存储多值主要是配置schema,要在相关的字段中设置"singleValueField":false默认值为在schema中相关字段设置"defaultNullValue":99{ "dimensionFieldSpecs":[ { "dataType":"STRING", "name":"FA0010000000" },
- pinot + gobblin
曹振华
hadoop2.7.1kafka1.启动bin/kafka-server-start.shconfig/server.properties&2.创建topicbin/kafka-topics.sh--zookeeperlocalhost:2181--create--topiceventOLAP--partitions1--replication-factor13.查看topicbin/kafka-
- 二分查找排序算法
周凡杨
java二分查找排序算法折半
一:概念 二分查找又称
折半查找(
折半搜索/
二分搜索),优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而 查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表 分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步
- java中的BigDecimal
bijian1013
javaBigDecimal
在项目开发过程中出现精度丢失问题,查资料用BigDecimal解决,并发现如下这篇BigDecimal的解决问题的思路和方法很值得学习,特转载。
原文地址:http://blog.csdn.net/ugg/article/de
- Shell echo命令详解
daizj
echoshell
Shell echo命令
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:
echo string
您可以使用echo实现更复杂的输出格式控制。 1.显示普通字符串:
echo "It is a test"
这里的双引号完全可以省略,以下命令与上面实例效果一致:
echo Itis a test 2.显示转义
- Oracle DBA 简单操作
周凡杨
oracle dba sql
--执行次数多的SQL
select sql_text,executions from (
select sql_text,executions from v$sqlarea order by executions desc
) where rownum<81;
&nb
- 画图重绘
朱辉辉33
游戏
我第一次接触重绘是编写五子棋小游戏的时候,因为游戏里的棋盘是用线绘制的,而这些东西并不在系统自带的重绘里,所以在移动窗体时,棋盘并不会重绘出来。所以我们要重写系统的重绘方法。
在重写系统重绘方法时,我们要注意一定要调用父类的重绘方法,即加上super.paint(g),因为如果不调用父类的重绘方式,重写后会把父类的重绘覆盖掉,而父类的重绘方法是绘制画布,这样就导致我们
- 线程之初体验
西蜀石兰
线程
一直觉得多线程是学Java的一个分水岭,懂多线程才算入门。
之前看《编程思想》的多线程章节,看的云里雾里,知道线程类有哪几个方法,却依旧不知道线程到底是什么?书上都写线程是进程的模块,共享线程的资源,可是这跟多线程编程有毛线的关系,呜呜。。。
线程其实也是用户自定义的任务,不要过多的强调线程的属性,而忽略了线程最基本的属性。
你可以在线程类的run()方法中定义自己的任务,就跟正常的Ja
- linux集群互相免登陆配置
林鹤霄
linux
配置ssh免登陆
1、生成秘钥和公钥 ssh-keygen -t rsa
2、提示让你输入,什么都不输,三次回车之后会在~下面的.ssh文件夹中多出两个文件id_rsa 和 id_rsa.pub
其中id_rsa为秘钥,id_rsa.pub为公钥,使用公钥加密的数据只有私钥才能对这些数据解密 c
- mysql : Lock wait timeout exceeded; try restarting transaction
aigo
mysql
原文:http://www.cnblogs.com/freeliver54/archive/2010/09/30/1839042.html
原因是你使用的InnoDB 表类型的时候,
默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s,
因为有的锁等待超过了这个时间,所以抱错.
你可以把这个时间加长,或者优化存储
- Socket编程 基本的聊天实现。
alleni123
socket
public class Server
{
//用来存储所有连接上来的客户
private List<ServerThread> clients;
public static void main(String[] args)
{
Server s = new Server();
s.startServer(9988);
}
publi
- 多线程监听器事件模式(一个简单的例子)
百合不是茶
线程监听模式
多线程的事件监听器模式
监听器时间模式经常与多线程使用,在多线程中如何知道我的线程正在执行那什么内容,可以通过时间监听器模式得到
创建多线程的事件监听器模式 思路:
1, 创建线程并启动,在创建线程的位置设置一个标记
2,创建队
- spring InitializingBean接口
bijian1013
javaspring
spring的事务的TransactionTemplate,其源码如下:
public class TransactionTemplate extends DefaultTransactionDefinition implements TransactionOperations, InitializingBean{
...
}
TransactionTemplate继承了DefaultT
- Oracle中询表的权限被授予给了哪些用户
bijian1013
oracle数据库权限
Oracle查询表将权限赋给了哪些用户的SQL,以备查用。
select t.table_name as "表名",
t.grantee as "被授权的属组",
t.owner as "对象所在的属组"
- 【Struts2五】Struts2 参数传值
bit1129
struts2
Struts2中参数传值的3种情况
1.请求参数绑定到Action的实例字段上
2.Action将值传递到转发的视图上
3.Action将值传递到重定向的视图上
一、请求参数绑定到Action的实例字段上以及Action将值传递到转发的视图上
Struts可以自动将请求URL中的请求参数或者表单提交的参数绑定到Action定义的实例字段上,绑定的规则使用ognl表达式语言
- 【Kafka十四】关于auto.offset.reset[Q/A]
bit1129
kafka
I got serveral questions about auto.offset.reset. This configuration parameter governs how consumer read the message from Kafka when there is no initial offset in ZooKeeper or
- nginx gzip压缩配置
ronin47
nginx gzip 压缩范例
nginx gzip压缩配置 更多
0
nginx
gzip
配置
随着nginx的发展,越来越多的网站使用nginx,因此nginx的优化变得越来越重要,今天我们来看看nginx的gzip压缩到底是怎么压缩的呢?
gzip(GNU-ZIP)是一种压缩技术。经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用
- java-13.输入一个单向链表,输出该链表中倒数第 k 个节点
bylijinnan
java
two cursors.
Make the first cursor go K steps first.
/*
* 第 13 题:题目:输入一个单向链表,输出该链表中倒数第 k 个节点
*/
public void displayKthItemsBackWard(ListNode head,int k){
ListNode p1=head,p2=head;
- Spring源码学习-JdbcTemplate queryForObject
bylijinnan
javaspring
JdbcTemplate中有两个可能会混淆的queryForObject方法:
1.
Object queryForObject(String sql, Object[] args, Class requiredType)
2.
Object queryForObject(String sql, Object[] args, RowMapper rowMapper)
第1个方法是只查
- [冰川时代]在冰川时代,我们需要什么样的技术?
comsci
技术
看美国那边的气候情况....我有个感觉...是不是要进入小冰期了?
那么在小冰期里面...我们的户外活动肯定会出现很多问题...在室内呆着的情况会非常多...怎么在室内呆着而不发闷...怎么用最低的电力保证室内的温度.....这都需要技术手段...
&nb
- js 获取浏览器型号
cuityang
js浏览器
根据浏览器获取iphone和apk的下载地址
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" content="text/html"/>
<meta name=
- C# socks5详解 转
dalan_123
socketC#
http://www.cnblogs.com/zhujiechang/archive/2008/10/21/1316308.html 这里主要讲的是用.NET实现基于Socket5下面的代理协议进行客户端的通讯,Socket4的实现是类似的,注意的事,这里不是讲用C#实现一个代理服务器,因为实现一个代理服务器需要实现很多协议,头大,而且现在市面上有很多现成的代理服务器用,性能又好,
- 运维 Centos问题汇总
dcj3sjt126com
云主机
一、sh 脚本不执行的原因
sh脚本不执行的原因 只有2个
1.权限不够
2.sh脚本里路径没写完整。
二、解决You have new mail in /var/spool/mail/root
修改/usr/share/logwatch/default.conf/logwatch.conf配置文件
MailTo =
MailFrom
三、查询连接数
- Yii防注入攻击笔记
dcj3sjt126com
sqlWEB安全yii
网站表单有注入漏洞须对所有用户输入的内容进行个过滤和检查,可以使用正则表达式或者直接输入字符判断,大部分是只允许输入字母和数字的,其它字符度不允许;对于内容复杂表单的内容,应该对html和script的符号进行转义替换:尤其是<,>,',"",&这几个符号 这里有个转义对照表:
http://blog.csdn.net/xinzhu1990/articl
- MongoDB简介[一]
eksliang
mongodbMongoDB简介
MongoDB简介
转载请出自出处:http://eksliang.iteye.com/blog/2173288 1.1易于使用
MongoDB是一个面向文档的数据库,而不是关系型数据库。与关系型数据库相比,面向文档的数据库不再有行的概念,取而代之的是更为灵活的“文档”模型。
另外,不
- zookeeper windows 入门安装和测试
greemranqq
zookeeper安装分布式
一、序言
以下是我对zookeeper 的一些理解: zookeeper 作为一个服务注册信息存储的管理工具,好吧,这样说得很抽象,我们举个“栗子”。
栗子1号:
假设我是一家KTV的老板,我同时拥有5家KTV,我肯定得时刻监视
- Spring之使用事务缘由(2-注解实现)
ihuning
spring
Spring事务注解实现
1. 依赖包:
1.1 spring包:
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.
- iOS App Launch Option
啸笑天
option
iOS 程序启动时总会调用application:didFinishLaunchingWithOptions:,其中第二个参数launchOptions为NSDictionary类型的对象,里面存储有此程序启动的原因。
launchOptions中的可能键值见UIApplication Class Reference的Launch Options Keys节 。
1、若用户直接
- jdk与jre的区别(_)
macroli
javajvmjdk
简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了JDK,会发同你
- Updates were rejected because the tip of your current branch is behind
qiaolevip
学习永无止境每天进步一点点众观千象git
$ git push joe prod-2295-1
To
[email protected]:joe.le/dr-frontend.git
! [rejected] prod-2295-1 -> prod-2295-1 (non-fast-forward)
error: failed to push some refs to '
[email protected]
- [一起学Hive]之十四-Hive的元数据表结构详解
superlxw1234
hivehive元数据结构
关键字:Hive元数据、Hive元数据表结构
之前在 “[一起学Hive]之一–Hive概述,Hive是什么”中介绍过,Hive自己维护了一套元数据,用户通过HQL查询时候,Hive首先需要结合元数据,将HQL翻译成MapReduce去执行。
本文介绍一下Hive元数据中重要的一些表结构及用途,以Hive0.13为例。
文章最后面,会以一个示例来全面了解一下,
- Spring 3.2.14,4.1.7,4.2.RC2发布
wiselyman
Spring 3
Spring 3.2.14、4.1.7及4.2.RC2于6月30日发布。
其中Spring 3.2.1是一个维护版本(维护周期到2016-12-31截止),后续会继续根据需求和bug发布维护版本。此时,Spring官方强烈建议升级Spring框架至4.1.7 或者将要发布的4.2 。
其中Spring 4.1.7主要包含这些更新内容。