zoukankan      html  css  js  c++  java
  • 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

    à Spring Boot Shiro视频http://t.cn/R3QDMbh

    à Spring Boot 2.0 之Spring Data 和JPAhttp://t.cn/R1pSojf

     

    前言

    阿里的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比较少,对于学习有影响嘛?

    11.0版本到2.0版本的跨越,主要是新特性的增加,旧的特性还是一样的,学习完1.0版本升级到2.0版本是很容易的。

    2)阿里现在有些项目还是使用1.4.71.5.8版本的,对于实际项目还是稳定为主,而不是追求最新的。

           当然如果你可以,最新版本的学习当然就是最好的!骚年,加油,当前Spring Boot最新的版本是2.0.2了,1代的话是1.5.13版本。

    à悟空学员:http://t.cn/Rg3ICnJ

    学院中有Spring Boot相关的课程!点击「进入学院」进行查看!

    开学季所有课程优惠一周

    下雨天,适合学「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或者扫描以下二维码即可关注:

  • 相关阅读:
    编码 原码 反码 补码
    java垃圾收集器与内存分配策略
    MYSQL 索引 性能优化
    jvm内存溢出性能调优
    JVM内存模型
    线程相关
    Java 设计模式
    synchronized 与 volatile
    ActivityGroup相关--getLocalActivityManager() 以及intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)用法
    [Android] Activity 重复使用
  • 原文地址:https://www.cnblogs.com/springboot-wuqian/p/9558176.html
Copyright © 2011-2022 走看看