日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java:Speedment 3.2的发布–现在启用轻量级数据库微服务

發(fā)布時(shí)間:2023/12/3 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java:Speedment 3.2的发布–现在启用轻量级数据库微服务 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

幾種傳統(tǒng)的ORM不能完全遵循Java模塊封裝(JPMS)。 這通常意味著在部署微服務(wù)時(shí)會(huì)使用很多不必要的文件和類。 最新的主要版本3.2的開源
Speedance通過引入模塊系統(tǒng)支持來解決此問題,該模塊支持對(duì)云應(yīng)用程序進(jìn)行有效部署并提供更嚴(yán)格的API。

在本文中,您將學(xué)習(xí)Speedment 3.2的新增功能以及如何部署體積縮小10倍且使用更少內(nèi)存的云數(shù)據(jù)庫應(yīng)用程序。

支持Java平臺(tái)模塊系統(tǒng)(JPMS)

Speedment 3.2的最大功能無疑是對(duì)JPMS的本地支持。 現(xiàn)在,Speedment中的每個(gè)模塊都包含自己的模塊
module-info.java文件,并采用嚴(yán)格的封裝。

作為開發(fā)人員,使用模塊系統(tǒng)完全是可選的,并且由于其多版本的JAR,Speedment仍然可以在Java 8下運(yùn)行。您可以選擇現(xiàn)在,以后或從不遷移到JPMS。

其他ORM,例如Hibernate,可能支持JPMS的某些部分,但不遵循嚴(yán)格的封裝(例如,要求
--add-opens手動(dòng)添加,從而繞過保護(hù)措施以防止訪問內(nèi)部/受保護(hù)的類)。

可選模塊允許較小的微服務(wù)

Speedment模塊已在內(nèi)部進(jìn)行了重組,以減少模塊之間的耦合。 結(jié)果,某些模塊現(xiàn)在是可選的,從而允許部署甚至更小的微服務(wù)。 例如,現(xiàn)在可以分別選擇各種數(shù)據(jù)庫連接器,并且
JoinComponent也是可選的。

縮小尺寸

不再需要多個(gè)內(nèi)部模塊(例如“惰性”和“可變流”),并且對(duì)其他一些內(nèi)部模塊進(jìn)行了優(yōu)化并減小了尺寸。

強(qiáng)封裝

由于有了模塊系統(tǒng),內(nèi)部類現(xiàn)在被完全隱藏,甚至受到保護(hù),免于深度反射。 這會(huì)增強(qiáng)API(因?yàn)閮H可以訪問故意可見的類和方法),因此可以在不影響公共API的情況下將來遷移內(nèi)部類。

云部署示例

與在標(biāo)準(zhǔn)JDK下運(yùn)行應(yīng)用程序相比,可以創(chuàng)建一個(gè)自定義JRE +應(yīng)用程序+加速庫,該庫小10倍,并且使用的內(nèi)存減少了25%。 如果您在云中運(yùn)行大量微服務(wù),那么這將帶來巨大的差異。

我的文章“
Java:如何創(chuàng)建輕量級(jí)數(shù)據(jù)庫微服務(wù) ”。 數(shù)據(jù)庫應(yīng)用程序連接到帶有電影,演員等的“ Sakila”數(shù)據(jù)庫的公共MySQL云實(shí)例。它檢索十個(gè)最長的電影,并按長度順序?qū)⑺鼈兇蛴≡诳刂婆_(tái)上。

定制的JRE仍然具有真正的JVM的所有優(yōu)點(diǎn),例如垃圾收集,JIT編譯器等。只是已刪除的未使用模塊和工具。

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() .filter(Film.RATING.equal( "PG-13" )) .sorted(Film.LENGTH.reversed()) .limit( 10 ) .map(film -> String.format( "%-18s %d min" , film.getTitle(), film.getLength().orElse( 0 )) ) .forEach(System.out::println);

該應(yīng)用程序?qū)a(chǎn)生以下輸出:

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

事實(shí)證明,與僅占用30 MB(甚至包括應(yīng)用程序和Speedment運(yùn)行時(shí))的定制JRE相比,標(biāo)準(zhǔn)開放JDK 11的存儲(chǔ)要求為300 MB。 因此,可以將存儲(chǔ)需求減少大約90%。 在檢查堆使用情況時(shí)
jmap結(jié)論是,RAM使用量也減少了約25%。

如何獲得速度3.2

新用戶可以使用以下工具下載Speedment 3.2
初始化器 。

現(xiàn)有用戶只能在其用戶中更新速度版本
pom.xml文件,并通過發(fā)出以下命令來重新生成域模型:

mvn speedment:generate

而已。 現(xiàn)在,您的舊Speedment應(yīng)用程序?qū)⒃谛掳姹鞠逻\(yùn)行。

如果要使用模塊系統(tǒng),請(qǐng)?zhí)砑右韵聝?nèi)容
module-info.java文件到Java 8+應(yīng)用程序的根目錄:

module your.module.name { requires com.speedment.runtime.application; requires com.speedment.runtime.connector.mysql; // (*) }

(*)根據(jù)數(shù)據(jù)庫類型,您必須將MySQL模塊替換為數(shù)據(jù)庫的相應(yīng)模塊。 閱讀有關(guān)各種數(shù)據(jù)庫連接器模塊的所有信息
在這里 。

資源資源

JPMS模塊的基礎(chǔ)知識(shí)

完整的Speedment版本說明歷史記錄可以在這里找到 在GitHub上加速 Speedment Initializer能夠生成項(xiàng)目模板

翻譯自: https://www.javacodegeeks.com/2019/11/java-release-of-speedment-3-2-now-enabling-lightweight-database-microservices.html

總結(jié)

以上是生活随笔為你收集整理的Java:Speedment 3.2的发布–现在启用轻量级数据库微服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。