精华内容
下载资源
问答
  • 近日,阿里云Serverless应用引擎(SAE)重磅发布 Java 应用启动加速功能,首度将 Alibaba Dragonwell(阿里巴巴开源的 Open JDK 长期支持版本)的冷启动加速技术、多线程运行加速技术和 SAE 自身的原地升级策略、镜像...

    简介: Java 作为一门面向对象编程语言,在性能方面的卓越表现独树一帜。但在高性能的背后,Java 的启动性能差也令人印象深刻,大家印象中的 Java 笨重、缓慢的印象也大多来源于此,高性能和快启动速度似乎有一些相悖。


    image.png
    近日,阿里云Serverless应用引擎(SAE)重磅发布 Java 应用启动加速功能,首度将 Alibaba Dragonwell(阿里巴巴开源的 Open JDK 长期支持版本)的冷启动加速技术、多线程运行加速技术和 SAE 自身的原地升级策略、镜像预热策略相结合,实现了 Java 应用的端到端启动速度提升至仅15s,多线程性能提升30%,再加上其自身的0代码改造优势,已成为企业享受 Serverless 价值的最短路径。

    难点分析

    众所周知,微服务的用户在应用启动层面面临着一些难题:
    • 软件包大:几百 MB 甚至 GB 级别
    • 依赖包多:上百个依赖包,几千个 Class
    • 加载耗时:从磁盘加载依赖包,再到 Class 按需加载,最高可占启动耗时的一半
    借助 Dragonwell 快速启动和多线程运行加速能力,SAE 为 Serverless Java 应用提供了一套,让应用尽可能加速启动的最佳实践,让开发者更专注于业务开发:
    • Java 环境 + JAR/WAR 软件包部署:集成 Dragonwell 11 ,提供加速启动环境
    • JVM 快捷设置:支持一键开启快速启动,简化操作
    • NAS 网盘:支持跨实例加速,在新包部署时,加速新启动实例/分批发布启动速度
    image.png

    加速效果

    我们选择一些微服务、复杂依赖的业务场景典型 Demo 或内部应用,测试启动效果,发现应用普遍能降低 5%~45% 的启动耗时。若应用启动,存在下列场景,会有明显加速效果:
    • 类加载多(spring-petclinic 启动加载约 12000+ classes)
    • 依赖外部数据越少
    image.png

    客户案例

    阿里巴巴搜索推荐 Serverless 平台

    阿里内部的搜索推荐 Serverless 平台通过类加载隔离机制,将多个业务的合并部署在同一个 Java 虚拟机中。调度系统会按需地将业务代码合并部署到空闲的容器中,让多个业务可以共享同一个资源池,大大提高部署密度和整体的 CPU 使用率。
    由于要支撑大量不同的业务研发运行,平台本身需要提供足够丰富的功能,如缓存、RPC调用。因此搜索推荐 Serverless 平台的每个 JVM 都需要拉起类似 Pandora Boot 的中间件隔离容器,这将加载大量的类,拖累了平台自身的启动速度。当突增的需求进入,调度系统需要拉起更多容器以供业务代码部署,此时容器本身的启动时间就显得尤为重要。
    基于 Dragonwell 的快速启动技术,搜索推荐平台在预发布环境会执行 AppCDS、Jarindex 等优化,将产生的 archive 文件打入容器镜像中,这样每一个容器在启动时都能享受加速,减少约30%的启动耗时。

    潮牌秒杀SAE极致弹性

    某外部客户,借助 SAE 提供的 Jar 包部署与 Dragonwell 11,快速迭代上线了某潮牌商场 App。
    在面对大促秒杀时,借助 SAE Serverless 极致弹性,与应用指标 QPS RT 指标弹性能力,轻松面对 10 倍以上快速扩容需求;同时一键开启 Dragonwell 增强的 AppCDS 启动加速能力,降低 Java 应用 20% 以上启动耗时,进一步加速应用启动,保证业务平稳健康运行。
    SAE 是面向应用的 aPaaS 平台,实现了Serverless 架构 + 微服务架构的完美融合,此次再磅以 Dragonwell 的启动和运行加速技术,使得客户可以轻松享受应用加速带来的技术红利。

    原文链接

    本文为阿里云原创内容,未经允许不得转载。

    展开全文
  • JAVA应用案例

    千人学习 2019-07-12 11:37:36
    为了对JAVA基础知识进行复习并实战使用,本课程讲解了如何使用JAVA知识实现反射、RPC、SOCKET、文件、JSON、二维码、JAVA MAIL、加密等案例。 本课程对每个知识的讲解都带有核心的知识点复习,以及详尽的案例讲解。...
  • Java 应用性能监控系统 JavaMonitor

    千次阅读 2018-11-29 17:58:28
    Java应用性能监控系统 1.简介 WY(Java应用监控系统)是基于Java8制作而成的一款在线监控系统。 WY适用于监控所有Java应用,具有堆内存监控、方法区监控、GC监控、类加载监控、类编译监控与线程监控等,提供堆...

    Java应用性能监控系统

    1.简介

    WY(Java应用监控系统)是基于Java8制作而成的一款在线监控系统。

    WY适用于监控所有Java应用,具有堆内存监控、方法区监控、GC监控、类加载监控、类编译监控与线程监控等,提供堆快照下载,线程快照下载等功能。

    WY的使用非常简单,只需要把它扔在你的服务器上执行即可,它会立即检测当前机器上的所有Java应用并进行监控。

    WY使用webSocket建立客户端与服务端通信,大大降低了客户端流量与服务器负载。

    2.说明

    基于Java8开发,低于Java8不支持

    3.下载使用

    下载项目Jar包直接执行即可

    java -jar java_monitor-0.0.x-SNAPSHOT.jar

    启动成功后默认访问端口8888

    4.运行界面

    5.自定义端口

    在执行jar包时追加参数

    --server.port=9999

    6.自定义监控周期

    默认监控频率为60秒,并且只记录当天产生的监控数据。

    如果需要自定义监控频率与监控时长,只需要在jar包所在目录下新建application.properties文件,修改下列字段即可

    monitor.rate=60 #监控频率/秒
    monitor.cron=0 0 0 * * ? #每日的0:00:00时刻清空数据

    连续监控1个月,示例

    monitor.cron=0 0 0 1 * ?

    连续监控1年,示例

    monitor.cron=0 0 0 1 1 ? *

    不新建文件,使用追加参数的方法也是可以的。

    7.监控参数

    监控参数的含义如下:

    • S0C:s0(from)的大小(KB)

    • S1C:s1(from)的大小(KB)

    • S0U:s0(from)已使用的空间(KB)

    • S1U:s1(from)已经使用的空间(KB)

    • EC:eden区的大小(KB)

    • EU:eden区已经使用的空间(KB)

    • OC:老年代大小(KB)

    • OU:老年代已经使用的空间(KB)

    • MC:元空间的大小(Metaspace)

    • MU:元空间已使用大小(KB)

    • CCSC:压缩类空间大小(compressed class space)

    • CCSU:压缩类空间已使用大小(KB)

    • YGC:新生代gc次数

    • YGCT:新生代gc耗时(秒)

    • FGC:Full gc次数

    • FGCT:Full gc耗时(秒)

    • GCT:gc总耗时(秒)

    • Loaded:表示载入了类的数量

    • Unloaded:表示卸载类的数量

    • Compiled:表示编译任务执行的次数

    • Failed:表示编译失败的次数

    • Total:线程总数

    • Runnable:正在运行的线程数

    • Sleeping:休眠的线程数

    • Waiting:等待的线程数

    展开全文
  • 云服务助力Java 应用程序开发及部署

    千人学习 2017-02-21 15:40:37
    课程围绕基于云平台的应用程序开发及部署展开,暂时确定以下内容,以后逐步更新: 1、认识云服务平台上的应用程序 2、在本地修改云上的Java应用程序 3、本地部署使用Liberty环境 4、使用云平台上的语言翻译服务 5、...
  • java 应用程序及java安装1603问题

    千次阅读 2015-12-24 23:25:48
    2. 发现java应用程序 例如eclipse 打开没有反应 3. 发现安装新版本java一直遇见1603的问题 发现问题过程 由于安装了QTP, 系统的java环境变量被默认改写了 _JAVA_OPTIONS IBM_JAVA_OPTIONS JAVA_TOOLS_OPTION...
    问题描述
    1. 发现控制面板的java控制器点击没有反应
    2. 发现java应用程序 例如eclipse 打开没有反应
    3. 发现安装新版本java一直遇见1603的问题
    
    发现问题过程
    由于安装了QTP, 系统的java环境变量被默认改写了
    
    _JAVA_OPTIONS
    IBM_JAVA_OPTIONS
    JAVA_TOOLS_OPTION
    


    解决方案:
    环境变量中如果有以下两个环境变量,删除即可_JAVA_OPTIONSIBM_JAVA_OPTIONS
    JAVA_TOOLS_OPTION

    删除以上环境变量之后 即可安装新版本java也可打开java应用程序

    展开全文
  • SAE部署Java应用

    千次阅读 2013-06-05 15:39:03
    SAE为开发者提供了非常宽松的开发环境,你甚至不用做任何特别定制就能将各种Java应用部署到SAE上。部署应用分为两步:1.创建应用;2.部署应用。然后你就可以通过域名来访问你的应用了。 工具/原料 SVN ...
    SAE为开发者提供了非常宽松的开发环境,你甚至不用做任何特别定制就能将各种Java应用部署到SAE上。部署应用分为两步:1.创建应用;2.部署应用。然后你就可以通过域名来访问你的应用了。

    工具/原料

    • SVN

    创建Java应用

    1. 点击“我的应用”==》“应用列表”,进入应用列表页面

    2. 点击“创建新应用”

    3. 填好“二级域名”、“应用名称”、验证码,选择开发语言为Java,默认应用类型为“Web应用”,点击创建应用

    SVN上传war包

    1. 鼠标右键==》SVN Checkout

    2. 在弹出页面中填写仓库路径即可

    3. 您的应用同步到本地工作目录中,结构如下

    4. 在该目录下创建一个版本号文件夹(文件夹的名称全数字)

    5. 然后将war包拷贝到版本号文件夹下

    6. 最后SVN Commit上传war包到服务器

    Web上传war包

    1. 点击“我的应用”==》应用名称,进入应用页面

    2. 点击“应用程序”下的“代码管理”

    3. 点击“上传war包”,选择war包进行上传

    访问应用

    1. 部署成功后,就可以通过SAE提供的域名直接访问查看效果了。



    展开全文
  • 这篇文章是接着上一篇elastic APM针对java应用的高阶用法(java agent)剩余的内容,异常监测和与日志分析系统的配合。 异常监测 接着上一篇文章中的内容,我们将异步函数里面进行redis连接的网络环境切换一下(把...
  • java应用占用内存过高排查解决

    千次阅读 2019-09-03 13:33:50
    java应用占用内存过高排查解决 故障:收到服务器报警,内存使用率超过80% 1.查看 使用dstat和top查看内存使用最高的应用 使用dstat 查到内存占用最高的是java应用,使用2253M内存,但是这台服务器跑了好几个java,...
  • 使用Docker运行Java应用程序

    千次阅读 2018-06-29 14:37:50
    阅读原文摘要: 使用Docker运行Java应用程序 部署软件混乱; 需要克服许多问题才能生成顺畅且无痛的部署过程。诸如环境设置,依赖性地狱,编排管理以及系统可用性等问题是部署新应用程序时遇到的许多问题中的一小...
  • java 应用程序的主类

    千次阅读 2013-06-28 01:16:04
    什么是java应用程序的主类? java 应用程序是有若干类和接口组成的,为了使Java 应用程序能够 运行,至少要有一个类含有main()主方法,因为main()主方法是java 应用程序的入口点,java应用程序就是从这里开始...
  • CheerpJ 2.0可以将Java应用程序转换为HTML,WebAssembly和JavaScript 的混合,以便开发人员可以在浏览器中运行Java应用程序(包括小程序)或将Java库集成到Web应用程序中。CheerpJ 2.0使用WebAssembly来提高运行速度...
  • java应用程序与数据库的连接

    千次阅读 2018-12-25 15:44:44
    java应用程序与数据库的连接  Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun ...
  • Java Mission Control使您能够监视和管理Java应用程序,而不会引入通常与这些类型的工具相关联的性能开销。它使用为Java虚拟机(JVM)的常规自适应动态优化收集的数据。除了最小化性能开销之外,这种方法还...
  • 一个简单的Java应用程序

    千次阅读 2018-05-31 13:58:24
    下面看一个最简单的Java应用程序,其功能:发送一条消息到控制台窗口中。源代码如下:public class FirstSample{ public static void main(String[] args) { System.out.println("We will, we will."); }...
  • VisualVM - JAVA 监控工具(9) 排查JAVA应用程序线程死锁 JAVA应用程序死锁原因 排查JAVA应用程序死锁 分析解决JAVA应用程序死锁
  • Linux下获取java应用的Dump文件

    千次阅读 2019-01-16 23:54:46
    使用ps -ef | grep java查询服务器上的java应用进程信息,找到应用进程及id 2、使用jmap获取dump信息 jmap -dump:format=b,file=/home/app/dump.out 17740 注:/home/app/dump.out表示生成的dump文件的存放地址及...
  • 1.Java应用性能分析的方法分析和内存分析: 方法分析:能够提供java应用程序中方法执行时间的信息,既包括java方法也包括本地方法。 内存分析:提供java应用程序内存使用信息,包括内存中已分配对象的数目、大小及...
  • JAVA应用程序转换为Applet

    千次阅读 2014-12-02 08:06:48
    将一个图形的JAVA应用程序转换为能够嵌入在网页中运行的applet很容易,从本质上来说,所有用户界面编码都是相同的, 将应用程序转化为applet代码基本步骤为: (1)创建一个HTML页面,并用适当的标记加载applet代码...
  • Java 应用监控平台JavaMelody

    万次阅读 2018-12-28 17:56:00
    今天来玩一玩JavaMelody JavaMelody主要做Web服务器监控的tuxi图形界面,我们分两种服务来说zenz怎么做 Spring boot 方式集成进系统 在pom.xml中引用 <dependency> <groupId>...
  • SWT开发Java应用程序GUI入门

    万次阅读 2016-07-10 11:29:41
    第一次做了Java GUI,我选择用elipse自己的前段开发工具 SWT/JFace。这篇文章是基于eclipse MARS.2. 用SWT编写的GUI的风格如下: 1、 SWT中的一些概念1.1 Display & Shell Display 和 She
  • 记一次java应用内存不断增长问题解决过程

    万次阅读 多人点赞 2019-10-28 20:10:20
    对于Java应用,虚拟机管理的内存,可以参考如下图所示: 一般对于一个应用来说,如果内存使用过大,可以从两块来分析,第一:堆内存,第二:堆外内存。下面着重从这两个方面阐述下对最近遇到的内存问题进行分析并...
  • Java应用CPU占用100%原因分析

    万次阅读 2017-05-17 10:04:03
    在linux环境下部署的应用,有时候出于各种原因,出现cpu占用100%的情况。这时候,就需要快速分析定位cpu占用的原因。...1、确定Java应用进程编号使用 jps 或 ps -ef|grep java 命令确定想要分析的应用的进程
  • Java应用中CPU使用率过高该怎么解决

    万次阅读 2018-10-15 17:42:51
    在JAVA策略当中,Java应用中CPU使用率过高我们该怎么办呢?我们需要时刻清楚排查java应用中CPU使用率高或内存占用高这类问题,其实在整个运行过程中,排查步骤基本都是差不多的。当然了我们最好还是通过风月体验网中...
  • java应用cpu使用率过高问题排查

    万次阅读 热门讨论 2018-07-18 23:59:59
    8 解读线程信息,定位具体代码位置 -----------------------------分割线---------------------------------------------- 最近在压力测试工作中碰到java应用某台机器cpu比较高的情况,特地下笔记以后总结: 一个...
  • 基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,共七章内容。 可以关注公众号,回复“干货”即可获取《分布式Java应用基础与实践》,还有更多关于前端、后端、测试...
  • Docker Java应用日志时间和容器时间不一致

    万次阅读 热门讨论 2017-05-12 10:31:11
    摘要:1)在docker容器和系统时间不一致是因为docker容器的原生时区为0时区,而国内系统为东八区。...2)还有容器中运行的java应用打出的日志时间和通过date -R方式获取的容器标准时间有八个小时时间差。
  • java应用(springboot jar)注册成Windows服务

    万次阅读 热门讨论 2018-07-30 14:00:58
    java应用注册成Windows服务 将java应用程序jar注册成windows服务随机自启动,不再需要命令窗口打开,避免误操作。以springboot为例。 首先准备好一个完整的springboot项目,我们修改pom.xml文件,将其打包成jar ...
  • 使用Spring构建普通非web的Java应用

    千次阅读 2019-09-03 10:53:24
    在实际工作中大部分企业级开发都是web项目然后继承spring...然而在实际情况中可能有很多时候要开发非web项目的一些普通java应用。我们怎么使用spring来快速大家我们的应用呢? 工程代码已经放到github上了,项目地...
  • Docker运行第一个Java应用

    千次阅读 2018-03-15 16:32:51
    上篇博客我们介绍了如何安装Docker以及运行HelloWorld,这篇我们介绍一下如何运行第一个Java应用。在这里我们用网上的JPress来做测试。首先我们去终端拉取tomcat镜像将JPress.war放到指定目录创建并编辑Dockerfile...
  • 非web的JAVA应用使用Spring的依赖注入

    千次阅读 2017-08-09 18:11:57
    普通JAVA应用程序使用Spring的依赖注入 需求:普通JAVA应用程序使用spring的依赖注入,但不关联其他额外包。 最近在写普通JAVA应用,开发只用了maven管理,没有利用其他框架。然后类都需要自己管理,配置文件要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 389,167
精华内容 155,666
关键字:

java应用

java 订阅