202. 阿里Pandora Boot

【视频&交流平台】
àSpringBoot视频:http://t.cn/R3QepWG
à SpringCloud视频:http://t.cn/R3QeRZc
à Spring Boot源码:https://gitee.com/happyangellxq520/spring-boot
à Spring Boot交流平台:http://412887952-qq-com.iteye.com/blog/2321532
前言
阿里的Pandora Boot的核心是Pandora,因此在介绍Pandora Boot之前需要先介绍Pandora。
在阿里集体内部,几乎所有的应用都用到了各式各样的中间件,比如HSF、TDDL、Diamond等等。本身中间件之间可能就有版本依赖的问题,比如你的应用HSF和Diamond分别依赖了同名jar包的不同版本,maven只会引入其中一个版本。同样的中间件和应用之间也存在同样的Jar包依赖的问题,出于要解决这些依赖冲突的问题,阿里就开发了Pandora。
Pandora 概述
Pandora,中文名潘多拉,简单的来说就是一个类隔离容器。对外以taobao-hsf.sar这样的sar包的形式对外呈现。它要解决的问题就是依赖冲突问题,包括单不仅以下几点:
(1) 二方包、三方包冲突
由于版本不一致可能导致应用起不来。
(2)冲突排查浪费大量时间
应用起不来的时候可能只是应用开发自己折腾半天在排包,但如果是二方包冲突,那么中间件团队可能就要花大量时间在答疑上面,和应用开发一起折腾了。
(3)应用难以保持稳定
折腾半天应用终于跑起来了,但是更可怕的就是现在能跑,到了某个点某个场景可能就出bug了。
(4)中间件升级困难
如果要实时升级中间件到推荐版本,但是发现并没有那么容易,应用中引入了十个八个中间件,隔三差五其中一个中间件就有小版本更新,每天盯着中间件的更新情况,那还有时间关心业务的开发了。
Pandora 的价值在于让上面的问题都不是问题,具体都实现了什么能力呢?
(1)实现类隔离,提供稳定的运行环境
Pandora实现了应用与中间件之间隔离、中间件与中间件之间隔离,保证了类的正确加载,而不会让依赖关系与依赖加载出现不一一对应的情况。
(2)中间件平滑升级
由于应用服务器会优先加载Pandora的类,因此只要升级Pandora中的插件即可,无需对应用中的pom.xml进行修改。只需要在aone上面提交一个“HSF变更”即可。
(3)中间件统一管理
Pandora会统一管理中间的启动、初始化以及资源回收等一系列操作。
Pandora Boot
PandoraBoot是在Pandora的基础之上,发展处的更轻量使用集团中间件的方式;它基于Pandora和Fat Jar基础,可以可以在IDE里启动Pandora环境,开发调试等效率大大提高。也就是PandoraBoot是Pandora与Spring Boot结合的产物,可以更方便的享受Spring Boot社区带来的便利。
PandoraBoot与SpringBoot的联系和区别
两者联系:
(1)PandoraBoot是运行中在SpringBoot上的,完全兼容。对PandoraBoot来说SpringBoot就像是一个依赖或者简单的Main函数应用。
两者区别:
(1)Spring Boot 通过 Maven 来管理依赖,是平板化的,最前面提到的二方包、三方包依赖问题,SpringBoot解决不了。
(2)Pandora Boot很好的管理了中间件应用,用户可以快速的引入各类中间件,平滑的保持中间件升级。这两者说到底也就是集成了 Pandora 的类隔离技术。
(3)Pandora Boot 目前已经很好的集成了 autoconfig,外部也和 AONE2、PSP 等系统进行打通,开发起来更加的方便。
现在的学习资料和视频大多都是1.4、1.5的,2.0比较少,对于学习有影响嘛?
(1)1.0版本到2.0版本的跨越,主要是新特性的增加,旧的特性还是一样的,学习完1.0版本升级到2.0版本是很容易的。
(2)阿里现在有些项目还是使用1.4.7和1.5.8版本的,对于实际项目还是稳定为主,而不是追求最新的。
当然如果你可以,最新版本的学习当然就是最好的!骚年,加油,当前Spring Boot最新的版本是2.0.2了,1代的话是1.5.13版本。
à悟空学员:http://t.cn/Rg3ICnJ
学院中有Spring Boot相关的课程!点击「进入学院」进行查看!
开学季所有课程优惠一周!
微信公众号「SpringBoot」最近更新:
Java8新特性:方法引用
209. SpringBoot quartz:sqlserver启动只有 DECLARE CURSOR 才允许使用...
风口之上,我是那头猪嘛?
Java8新特性:Lambda表达式: 摸摸里面
Java8新特性:Lambda表达式:过关斩将:使用场景
Java8新特性:Lambda表达式:小试牛刀
下雨天,适合学「Spring Boot」
Java8新特性:接口的默认方法
208. Spring Boot Swagger2:排序 – 漂游记
207. Spring Boot Swagger2:极简方式
我读的书很多,但都没有你好看【一禅录】
206. Spring Boot 2.0 Swagger2:使用
205. Spring Boot 2.0 Swagger2:初识Swagger
当要离开的时候,我却动情了
205. jetcache:你需要知道的小技巧
204. jetcache:在Spring Boot中怎么玩?
搜索「springboot」或者扫描以下二维码即可关注:

202. 阿里Pandora Boot的更多相关文章
- HSF简单实现记录(基于 Pandora Boot 开发)
文章目录 声明 注意 安装轻量配置中心 启动轻量配置中心 配置 hosts 结果验证 开发工具准备 在 Maven 中配置 EDAS 的私服地址 验证配置是否成功 开发 demo下载 服务注册与发现 ...
- 200. Spring Boot JNDI:在Tomcat中怎么玩JNDI?
[视频&交流平台] àSpringBoot视频:http://t.cn/R3QepWG à SpringCloud视频:http://t.cn/R3QeRZc à Spring Boot源 ...
- 195. Spring Boot 2.0数据库迁移:Flyway
[视频&交流平台] àSpringBoot视频:http://t.cn/R3QepWG à SpringCloud视频:http://t.cn/R3QeRZc à Spring Boot源码: ...
- maven jar包冲三种解决方式
初次启动应用,一直包如下错误,起初怀疑引入pandora 版本冲突. Exception in thread "main" java.lang.NoSuchMethodError: ...
- Python3.7+jieba(结巴分词)配合Wordcloud2.js来构造网站标签云(关键词集合)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_138 其实很早以前就想搞一套完备的标签云架构了,迫于没有时间(其实就是懒),一直就没有弄出来完整的代码,说到底标签对于网站来说还是 ...
- 玩转spring boot——结合阿里云持续交付
前言 在互联网项目中,项目测试.部署往往需要花费大量时间.传统方式是在本地打包.测试完毕程序,然后通过ftp上传至服务器,再把测试的配置文件修改为生产环境的配置文件,最后重新运行服务.这一过程如果交给 ...
- Sping Boot入门到实战之实战篇(一):实现自定义Spring Boot Starter——阿里云消息队列服务Starter
在 Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置 这篇中,我们知道Spring Boot自动化配置的实现,主要由如下几部分完成: @EnableAutoConfigu ...
- spring boot (2):spring boot 打包tomcat、tomcat 部署多个项目、服务器部署项目SSL 设置(阿里云)
一.spring boot 内置tomcat配置https: 关于自签名证书可以看下上一篇 spring boot1 更详细的可以看转载 https://www.jianshu.com/p/8d4ab ...
- spring boot 基础篇 -- 阿里多数据源
这块是比较基础的配置,阿里数据库配置还是比较好用的,并且可以用来监控数据源的情况.废话不多说,下面看代码. 基于maven项目,在pom.xml中添加引用: <dependency> &l ...
随机推荐
- Java 实现缓存,一个线程存,一个线程取
缓存类: package com.zit.test; import java.util.concurrent.BlockingDeque; import java.util.concurrent.Li ...
- 【转载】GET和POST两种基本请求方法的区别
原文地址:http://www.cnblogs.com/logsharing/p/8448446.html GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一 ...
- teamview修改id
怎么修改 TeamViewer ID 呢?按照下列的操作步骤,就能很简单的改变TeamViewer的id哦!1. 开始 > 运行,录入%appdata%,删除TeamViewer的文件夹: ...
- 打开本页N秒后跳转页面
在head标签里面 <meta http-equiv="refresh" content="4;url=" />
- python基础之centos6.5 升级 python2.7, 安装pip, MySQLdb
这个仅仅是为了运行脚本需求, 将centos6.5中的 python 2.6.6升级到了 2.7 并且安装和了 pip 和 MySQLdb 1.先装依赖 yum install zlib-devel ...
- CreateThread给线程函数传递的参数
HANDLE WINAPI CreateThread ( __in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes, // 指向SECURITY_ATTR ...
- Ubuntu Server 16.04设置WiFi
wifi :http://www.cnblogs.com/joeyupdo/p/3350463.html http://blog.csdn.net/meic51/article/details/173 ...
- emmet简单记录
一.引式符号 html:5 or ! . class # id []标签内属性 pycharm不支持 {}标签的内容 pycharm不支持 ()分组标签 pycharm不支持 二.关系符号 1 ...
- Ubuntu安装lrzsz
本文主要介绍在Ubuntu下安装lrzsz工具,方便windows和linux间的文件上传下载 方法1:二进制包自动安装1.1 在终端中,输入命令,自动安装,简单方便: sudo apt-get in ...
- MacBook使用笔记1 - 快捷键与命令学习
转载请标注原链接:http://www.cnblogs.com/xczyd/p/4846795.html 最近开始使用mac air,以前从来没有接触过mac,各种操作捉急.Mac快捷键相当多,遇到各 ...