当前位置: 首页 > news >正文

广州做网站一般要多少钱软文推广代表平台

广州做网站一般要多少钱,软文推广代表平台,能源网站开发,好看个人博客html源码基于云的Java数据库应用程序的数量每分钟都在增加。 许多组织部署了数百甚至数千个微服务实例。 但是#xff0c;相对于运行时环境#xff0c;大多数应用程序会带来惊人数量的不必要开销。 反过来#xff0c;这会使应用程序运行更慢#xff0c;运行成本更高。 在本文中相对于运行时环境大多数应用程序会带来惊人数量的不必要开销。 反过来这会使应用程序运行更慢运行成本更高。 在本文中我将演示如何编写比normal*小10倍的数据库应用程序。 考虑到应用程序第三方库和Java运行时存储要求约为32 MB而不是通常的*〜300 MB。 另外运行该应用程序所需的RAM也将减少25。 *这些是以下完整JDK不包括应用程序和第三方库的存储要求 jdk.8.0_191 360 MB jdk-9.0.4 504 MB adoptopenjdk-11 298 MB使用支持微服务的ORM 大多数传统的ORM不支持Java模块封装。 通常这需要交付大量不必要的代码。 在本文中我将使用基于流的开源Java ORM Speedment 它的最新版本支持Java平台模块系统JPMS。 这使我们能够仅使用我们的应用程序显式使用的模块来生成优化的自定义Java运行时环境JRE来自JDK的部分用于运行应用程序。 阅读关于Speedment 3.2中的新功能 这篇文章 。 应用程序 我们希望在本文中部署的整个应用程序位于 GitHub上的开源项目位于子目录“ microservice-jlink ”下。 它连接到托管在云中的MySQL“ Sakila”数据库包含有关电影的数据的公共实例并在控制台上列出了十个最长的被评为“ PG-13”的电影。 数据模型已预先配置为适合此数据库的数据结构。 如果要使用另一个数据库创建自己的应用程序请访问Speedment初始化程序以专门为该数据库配置项目。 该应用程序的main方法如下所示 public final class Main {public static void main(String[] args) {final Speedment app new SakilaApplicationBuilder().withPassword(sakila).build();final FilmManager films app.getOrThrow(FilmManager.class);System.out.println(These are the ten longest films rated as PG-13:);films.stream() // 1.filter(Film.RATING.equal(PG-13)) // 2.sorted(Film.LENGTH.reversed()) // 3.limit(10) // 4.map(film - String.format( // 5%-18s %d min,film.getTitle(),film.getLength().orElse(0))).forEach(System.out::println); // 6} } 首先我们将数据库密码传递给Speedment构建器Speedment从不在内部存储密码。 使用配置文件中的数据库IP地址端口等对构建器进行了预配置。 然后我们获得FilmManager 该FilmManager器随后可用于创建与数据库中的“ film”表直接对应的Java流。 最后我们 创建Film实体Stream 筛选出评级等于“ PG-13”的Film实体 以相反的长度顺序对剩余的影片进行排序最长的优先 将流限制为前10部电影 将每个电影实体映射到具有电影标题和电影长度的String 将每个String打印到控制台 该应用程序本身非常易于理解。 还应注意Speedment会在引擎盖下将Java Stream呈现给SQL如下所示 SELECT film_id,title,description,release_year,language_id,original_language_id,rental_duration,rental_rate,length,replacement_cost,rating,special_features,last_update FROM sakila.film WHERE (rating ? COLLATE utf8_bin) ORDER BY lengthIS NOT NULL, length DESC LIMIT ?, values:[PG-13, 10] 这意味着仅从数据库中提取了所需的电影实体。 直接在IDE下运行时将产生以下输出 These are the ten longest films rated as PG-13: GANGS PRIDE 185 min CHICAGO NORTH 185 min POND SEATTLE 185 min THEORY MERMAID 184 min CONSPIRACY SPIRIT 184 min FRONTIER CABIN 183 min REDS POCUS 182 min HOTEL HAPPINESS 181 min JACKET FRISCO 181 min MIXED DOORS 180 min 这看起来很完美。 模块化项目 要使用模块我们需要在Java 9或更高版本下运行并且我们的项目中必须有一个module-info.java文件 module microservice.jlink {requires com.speedment.runtime.application;requires com.speedment.runtime.connector.mysql; // (*) } com.speedment.runtime.application模块是任何Speedment应用程序始终需要的基本模块。 *根据数据库类型您必须将MySQL模块替换为数据库的相应模块。 在此处阅读有关各种数据库连接器模块的所有信息。 建设项目 如前所述完整项目可在GitHub上找到 。 这是您如何获得的 git clone https://github.com/speedment/user-guide-code-samples.git 将目录更改为相关的子项目 cd user-guide-code-samples cd microservice-jlink 生成项目由于模块系统您必须使用Java 9或更高版本 mvn clean install自定义JRE构建脚本 该项目还包含一个名为build_jre.sh的自定义JRE构建脚本 build_jre.sh包含以下命令 #!/bin/bash SPEEDMENT_VERSION3.2.1 JDBC_VERSION8.0.18 OUTPUTcustomjre echo Building $OUTPUT... MODULEPATH$(find ~/.m2/repository/com/speedment/runtime -name *.jar \| grep $SPEEDMENT_VERSION.jar | xargs echo | tr :) MODULEPATH$MODULEPATH:$(find ~/.m2/repository/com/speedment/common -name *.jar \| grep $SPEEDMENT_VERSION.jar | xargs echo | tr :) MODULEPATH$MODULEPATH:$(find . -name *.jar | xargs echo | tr :)$JAVA_HOME/bin/jlink \ --no-header-files \ --no-man-pages \ --compress2 \ --strip-debug \ --module-path $JAVA_HOME\jmods:$MODULEPATH \ --add-modules microservice.jlink,java.management,java.naming,java.rmi,java.transaction.xa \ --output $OUTPUT 该脚本是这样工作的 在设置了各种参数之后该脚本通过添加speedment/runtime和speedment/common目录的jar来构建模块路径。 即使我们添加了所有这些模块模块系统也会在以后找出实际使用的模块并丢弃其他模块。 MODULEPATH的最后一行将添加应用程序本身的JAR文件。 设置完所有参数后我们将调用jlink命令该命令将构建自定义JRE。 我使用了许多可选标志来减小目标JRE的大小。 因为JDBC驱动程序不支持JPMS所以我在--add-modules参数下手动添加了驱动程序所需的一些模块。 构建超紧凑型JRE 有了上面的脚本我们可以使用一个命令为我们的云数据库应用程序创建超紧凑的自定义JRE ./build_jre.sh 在我较旧的MacBook Pro上构建仅需大约5秒钟。 我们可以使用以下命令查看JRE / app的总大小 du -sh customjre/ 这将产生以下输出 32M customjre/ 惊人的结果 我们有一个功能齐全的JVM其中包含垃圾回收JIT编译器所有库JDBC驱动程序除外以及应用程序本身仅包装在32 MB的存储中 我们可以将它与JDK本身的未缩减大小进行比较后者通常被用作云实例的基准。 du -sh $JAVA_HOME 这将在笔记本电脑上产生以下输出 298M /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/ 而且该数字甚至不包括应用程序或任何第三方库。 因此我们将存储需求降低了大约10倍 实际使用的模块 要查看完成还原过程的模块我们可以发出以下命令 cat customjre/release 这将在我的机器上产生以下输出为了清晰起见经过重新格式化和排序 JAVA_VERSION11.0.5 MODULES com.speedment.common.annotation com.speedment.common.function com.speedment.common.injector com.speedment.common.invariant com.speedment.common.json com.speedment.common.jvm_version com.speedment.common.logger com.speedment.common.mapstream com.speedment.common.tuple com.speedment.runtime.application com.speedment.runtime.compute com.speedment.runtime.config com.speedment.runtime.connector.mysql com.speedment.runtime.core com.speedment.runtime.field com.speedment.runtime.typemapper com.speedment.runtime.welcome java.base java.logging java.management java.naming java.prefs java.rmi java.security.sasl java.sql java.transaction.xa java.xml microservice.jlink因此自定义运行时未包括所有未使用的Java模块例如javax.crypto 。 运行应用程序 可以使用自定义JRE运行应用程序如下所示 customjre/bin/java --class-path ~/.m2/repository/mysql/mysql-connector-java/8.0.18/mysql-connector-java-8.0.18.jar -m microservice.jlink/com.speedment.example.microservices.jlink.Main 首次构建项目时即mvn clean install Maven自动将文件mysql-connector-java-8.0.18.jar下载到其本地存储库。 由于MySQL JDBC驱动程序尚未与Java平台模块系统兼容因此我们不得不手动将其粘上。 运行时程序会产生与上面相同的输出但运行时会小10倍 These are the ten longest films rated as PG-13: GANGS PRIDE 185 min CHICAGO NORTH 185 min POND SEATTLE 185 min THEORY MERMAID 184 min CONSPIRACY SPIRIT 184 min FRONTIER CABIN 183 min REDS POCUS 182 min HOTEL HAPPINESS 181 min JACKET FRISCO 181 min MIXED DOORS 180 min内存使用情况 一个可能更重要的问题是云应用程序总共使用了多少应用程序内存RSS。 快速浏览一下发现堆内存使用量也减少了 标准JDK Pers-MBP:speedment pemi$ jmap -histo 38715num #instances #bytes class name (module) -------------------------------------------------------1: 25836 3036560 [B (java.base11.0.5)2: 2055 1639408 [I (java.base11.0.5)3: 4234 511568 java.lang.Class (java.base11.0.5)4: 21233 509592 java.lang.String (java.base11.0.5)5: 196 270552 [C (java.base11.0.5)6: 4181 245400 [Ljava.lang.Object; (java.base11.0.5)7: 4801 153632 java.util.concurrent.ConcurrentHashMap$Node (java.base11.0.5)8: 3395 135800 java.util.LinkedHashMap$Entry (java.base11.0.5) … 1804: 1 16 sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo (jdk.localedata11.0.5) Total 137524 7800144自定义JRE Pers-MBP:speedment pemi$ jmap -histo 38783 | headnum #instances #bytes class name (module) -------------------------------------------------------1: 22323 1714608 [B (java.base11.0.5)2: 4229 511000 java.lang.Class (java.base11.0.5)3: 19447 466728 java.lang.String (java.base11.0.5)4: 1776 424408 [I (java.base11.0.5)5: 69 264656 [C (java.base11.0.5)6: 4044 240128 [Ljava.lang.Object; (java.base11.0.5)7: 4665 149280 java.util.concurrent.ConcurrentHashMap$Node (java.base11.0.5)8: 3395 135800 java.util.LinkedHashMap$Entry (java.base11.0.5) … 1726: 1 16 sun.util.resources.LocaleData$LocaleDataStrategy (java.base11.0.5) Total 102904 5727960堆改善 堆使用量从7,800,144字节减少到5,727,960字节减少了25以上 注意在运行jmap命令之前我让应用程序建议一个显式的垃圾收集器并等待几秒钟以消除由可能早期调用垃圾收集器引起的任何差异。 总览 以下图表显示了存储需求的差异越低越好 这是另一个显示RAM使用率差异的图表越低越好 修改代码 如果要修改代码则需要使用以下内容来重建应用程序 mvn clean install 然后删除旧的customjre并创建一个新的 rm -rf customjre/ ./build_jre.sh创建自己的数据库应用程序 如果要连接到自己的数据库并要编写自己的应用程序逻辑则可以轻松地选择要使用的表和列然后使用Speedment Tool自动生成自己的Java域模型和应用程序构建器 本文演示的项目中使用的Speedment工具。 可以将该工具添加到pom.xml文件中的项目中并由调用 mvn speedment:tool 。 访问Speedment Initializer生成您自己的自定义pom.xml文件和应用程序模板。 可以通过自动Maven构建脚本简化该过程该脚本将识别任何应用程序依赖性以及自动生成的Docker实例这些实例可以在自动构建后立即部署。 我将在以后的文章中写更多有关此的内容。 结论 Java平台模块系统JPMS允许构建适用于云部署的高度优化的JRE。 可以减少存储和RAM需求。 传统的ORM不支持完整的Java模块封装 Speedment开源Stream ORM支持JPMS可用于构建高效的数据库云应用程序。 资源资源 JPMS模块的基础知识 在GitHub上加速 Speedment Initializer能够生成项目pom.xml模板 翻译自: https://www.javacodegeeks.com/2019/11/java-how-to-create-lightweight-database-microservices.html
http://www.sadfv.cn/news/204126/

相关文章:

  • 中国著名的个人网站苏州市企业排名100强
  • 做集团网站wordpress导航图标插件
  • 中国建设银行网站医保苏州建设工程质量监督站网站
  • 攀枝花建设工程有限责任公司网站各大网站发布信息
  • 苏宁易购电子商务网站建设目标买网站
  • 艺术设计教学资源网站建设标准推广文案撰写
  • 做教程的网站内容怎么找计算机就业方向与就业前景
  • 康定网站建设工作室德阳网站优化
  • 天元建设集团名声杭州网站优化外包
  • 重庆网站建设网站建设在百度上怎么建立网站吗
  • 秦皇岛哪里做网站网站建设与网页设计期末考试
  • 如何把自己做的网站连上网中国国家人事人才培训网证书查询
  • 清溪东莞网站建设ppt模板有哪些网站
  • 高端的网站建设上海中心设计公司是谁
  • 集约化网站建设的核心网站开发公司是干嘛的
  • 网站建设设计书石家庄企业网站
  • 网站主办者和所有者区别山西制作网站
  • 苏州优秀网站设计企业长春站是火车站还是高铁站
  • 北京东站省规划建设发展局网站首页
  • 公司网站放哪些内容广东制冷设备网站建设费用
  • 网站收录变少网页制作与网站建设完全学习手册光盘
  • 做家具的外国网站工装公司排名前十
  • 什么可以放置网站内容庐江县建设网站
  • 好网站建设公司地址wordpress api key
  • 做网站得多钱关键词搜索引擎网站
  • 手机网站建设书籍wordpress 优惠卷
  • 网站空间是先备案后买宁夏水利建设工程网站
  • google 网站 提交网站建设源码是什么
  • 免费团购网站模板wordpress 按钮
  • 丽水市网站建设免费货源网站免费版权