Pandora Boot和spring Boot 的区别

1.什么是Pandora ?

在阿里集团内部,几乎所有的应用都用到了各式各样的中间件,比如HSF、TDDL、Diamond等等。本身中间件之间可能就有版本依赖的问题,比如你的应用HSF和Diamond分别依赖了同名jar包的不同版本,maven只会引入其中一个版本。同样的中间件和应用之间也存在同样的Jar包依赖的问题,出于要解决这些依赖冲突的问题,阿里就开发了Pandora ,中文名潘多拉,简单的来说就是一个类隔离容器。

2.它解决了什么问题

1) 二方包、三方包冲突:NoSuchMethodError

如果不采用类隔离,则应用依赖的所有外部类都植入到CLASSPATH下,都由AppClassLoader进行加载。假设类A依赖类B (version 1),类C依赖类B (version 2),并且使用了B (version2)中的一个新方法,如果此时AppClassLoader加载的是B(version),就会获得成就“NoSuchMethodError”。依赖管理工具Maven给出的解法是,手动将B(version1)排除,它会导致应用起不来。
在这里插入图片描述

2) 冲突排查浪费大量时间
3) 中间件升级困难

如果要实时升级中间件到推荐版本,但是发现并没有那么容易,应用中引入了十个八个中间件,隔三差五其中一个中间件就有小版本更新,每天盯着中间件的更新情况,那还有时间关心业务的开发了。

那Pandora要解决什么问题:

实现类隔离,提供稳定的运行环境,Pandora实现了应用与中间件之间隔离、中间件与中间件之间隔离,保证了类的正确加载,而不会让依赖关系与依赖加载出现不一一对应的情况。
中间件平滑升级,由于应用服务器会优先加载Pandora的类,因此只要升级Pandora中的插件即可,无需对应用中的pom.xml进行修改。
中间件统一管理,降低中间件接入和使用成本,Pandora会统一管理中间的启动、初始化以及资源回收等一系列操作,开发者基本上只需要了解它的配置及使用特性就好
设计上要满足:

类加载器隔离,Pandora容器本身和应用之间隔离
中间件插件化,定义标准的启动、导出方式和使用方法
集成到spring ioc,减少提供优化的API降低使用成本
Pandora 内部组件图

主应用依赖Pandora Bootstrap(启动器),负责将所有插件化中间件的核心类加载并导出。随后在使用到中间件时,将通过这些导出的类进行对象的实例化。

2. 什么是 Pandora Boot?

Pandora Boot是在Pandora的基础之上,发展处的更轻量使用集团中间件的方式;它基于Pandora和FatJar基础,可以可以在IDE里启动Pandora环境,开发调试等效率大大提高。也就是Pandora Boot是Pandora与Spring Boot结合的产物,可以更方便的享受Spring Boot社区带来的便利。

Pandora Boot与Spring Boot的联系和区别

如果你了解osgi,一定听说过Servlet Container In OSGI的运行模式,有点那个意思!Pandora Boot是运行中在Spring Boot上的,完全兼容。对Pandora Boot来说Spring Boot就像是一个依赖或者简单的Main函数应用。

两者区别:
Spring Boot 通过 Maven 来管理依赖,是扁平化的,前面提到的二方包、三方包依赖问题,SpringBoot里通过maven解决不了
Pandora Boot很好的管理了中间件应用,用户可以快速的引入各类中间件,平滑的保持中间件升级。
Pandora Boot 目前已经很好的集成了 autoconfig,外部也和 AONE2、PSP 等系统进行打通,开发起来更加的方便

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值