Pandora Boot和spring Boot 的区别 您所在的位置:网站首页 潘多拉和潘多拉x的区别在哪 Pandora Boot和spring Boot 的区别

Pandora Boot和spring Boot 的区别

2024-06-05 22:32| 来源: 网络整理| 查看: 265

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 等系统进行打通,开发起来更加的方便



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有