quarkus实战之一:准备工作

这篇具有很好参考价值的文章主要介绍了quarkus实战之一:准备工作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

关于《quarkus实战》系列

  • 《quarkus实战》系列是欣宸在2022年春季推出的又一个精品原创系列,作者将自己对java的热爱渗透到每段文字和每行代码中,全系列秉承欣宸一贯的知识+实战风格,既有知识普及、更有实际操作,在涉及基础知识之处更有深入分析,尽最大努力,将自己眼中云端的java的样子呈现出来

引子

  • 作为一名Java程序员,如何适应目前的容器化趋势?将现有SpringBoot应用编译构建制作成docker镜像,然后运行在kubernetes环境,这是欣宸目前在实际项目中的做法,但也面临的诸多困扰:
  1. 启动慢:一个应用从启动到服务可用,一般是数秒,在对CPU核数和内存严格限制的情况下,花数十秒启动的情况也屡见不鲜,这样的问题无法适应需要快速重启或快速扩容的场景
  2. 内存消耗大:曾强行将内存限制在1G,结果FGC频率变大,还经常触发OMMKill导致pod重启,并且启动时间也会变长,相比之下,集群中golang应用大多配置128M内存限制,我只能羡慕了
  3. 另外还有诸多疑问也困扰着我:java技术栈内已有完整的注册发现、调用链追踪、指标监控、配置等技术实现,在kubernetes环境又该如何选择或适配
  4. 生在云上,长在云上的云原生时代,Java应用何去何从?用jib插件将SpingBoot应用转为docker镜像,在k8s上运行,仅此而已吗?
  • 被以上问题困扰了很久,直到遇见 quarkus,当然了,它还没强大到解决上述所有问题,但它给了我方向和希望:java领域也有面向云原生的完整方案

关于quarkus

  • quarkus是为GraalVM 和HotSpot量身定制的Kubernetes原生Java框架,采用同类最佳的Java 库和标准制作而成,来自RedHat,是一个在Apache 许可证 2.0 版下获得许可的开源项目(来自官网)
  • quarkus官网:https://quarkus.io
  • quarkus的github仓库:https://github.com/quarkusio/quarkus
  • 来看看quarkus的特点,官网用了超大字体描述,内容简洁:超音速、亚原子的JAVA
    quarkus实战之一:准备工作
  • 五大特点分别如下:
  1. 容器优先
  2. 命令式和响应式
  3. 社区和标准的支持
  4. kubernetes原生
  5. 对开发者友好
  • 来看看官网给出的对比数据,如下图,如果使用的是quarkus框架和GraalVM虚拟机,在内存方面对比传统框架有一个数量级的优势,而响应时间差距已不止一个数量级:
    quarkus实战之一:准备工作
  • 容器化的路上,选择quarkus是个不错的选择

本篇概览

  • 作为《quarkus实战》系列的开篇,本文的目标是为后续文章和编码实战做好准备工作,由以下内容组成:
  1. 涉及软件的版本信息介绍
  2. 安装JDK-11
  3. 安装maven-3.8.4
  4. 安装docker
  5. 关于kubernetes的安装
  6. 新建maven工程,作为《quarkus实战》系列所有代码的父工程
  • 以上就是今天的内容,先从环境信息开始吧

涉及软件的版本信息介绍

  • 开始操作前,先将我这里的环境信息给出,这是能成功运行《quarkus实战》系列所有功能的环境,您可以用来作参考
  • 先看开发环境:
  1. 操作系统:Ubuntu 16.04.7 LTS 桌面版(没错,写代码、本地运行调试、写文章都用这个Ubuntu电脑)
  2. JDK:11.0.14
  3. Maven:3.8.4
  4. IDE:IDEA 2021.2.3(Ultimate Edition)
  5. quarkus:2.7
  6. docker:20.10.7
  • 然后是运行环境,这是运行开发出的镜像的云环境:
  1. 操作系统:CentOS-7.9.2009
  2. kubernetes:1.22.0(三台服务器,一台master,两台worker)
  • 环境介绍完毕,开始动手

安装JDK

  • 先看quarkus官方对JDK和maven版本的要求,如下所示,JDK最低11,maven最低3.8.1
    quarkus实战之一:准备工作
  • 下载JDK11,地址是:https://www.oracle.com/java/technologies/downloads/#java11,按照自己的操作系统类型下载,如下图,我这里选的是linux版本:
    quarkus实战之一:准备工作
  • 將下载的压缩包在/usr/lib/jvm/解压,得到文件夹jdk-11.0.14
  • 打开文件~/.bashrc,在尾部增加以下内容:
export JAVA_HOME=/usr/lib/jvm/jdk-11.0.14
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
  • 执行source ~/.bashrc,让配置生效
  • 执行java -version验证JDK是否生效:
will@hp:~$ java -version
java version "11.0.14" 2022-01-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.14+8-LTS-263)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.14+8-LTS-263, mixed mode)

安装Maven

  • 下载压缩包,地址:https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.zip
  • 將下载的压缩包在/usr/local/解压,得到文件夹apache-maven-3.8.4
  • 打开文件~/.bashrc,在尾部增加以下内容:
export MAVEN_HOME=/usr/local/apache-maven-3.8.4
export PATH=$MAVEN_HOME/bin:$PATH
  • 执行source ~/.bashrc,让配置生效
  • 执行mvn -version验证maven是否生效:
will@hp:~$ mvn -version
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /usr/local/apache-maven-3.8.4
Java version: 11.0.14, vendor: Oracle Corporation, runtime: /usr/lib/jvm/jdk-11.0.14
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-142-generic", arch: "amd64", family: "unix"
  • 建议本地maven配置阿里云镜像,这样可以避免从中央仓库下载依赖失败的问题,在apache-maven-3.8.4/conf/settings.xml的mirrors节点下增加下面这个节点:
<mirror>
	<id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

安装docker

  • 安装docker的命令与各操作系统有关,这里给出ubuntu下的安装命令作为参考:
curl -sSL https://get.docker.com | sh
  • 如果您在ubuntu系统中用的不是root帐号,建议做参考下文做一些简单设置,这样操作docker的时候就无需每次都用sudo了:
    《设置非root账号不用sudo直接执行docker命令》

关于kubernetes安装

  • 可以参考《极速安装kubernetes-1.22.0(三台CentOS7服务器)》

新建maven工程

  • 新建名为quarkus-tutorials的maven工程,目前这里面还是空的,将来会作为整个系列相关源码的父工程,将所有源码和依赖库版本统一管理起来

未完待续

  • 至此,准备工作已完成,quarkus就像一副神秘的山水画卷,在欣宸原创的推动下徐徐展开,敬请期待
    quarkus实战之一:准备工作

欢迎关注博客园:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...文章来源地址https://www.toymoban.com/news/detail-590639.html

到了这里,关于quarkus实战之一:准备工作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java与es8实战之二:实战前的准备工作

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇是《java与es8实战》系列的第二篇,主要任务是为动手实战做好准备工作,包括这些内容 借助docker,快速部署es服务 借助docker-compose,以更简单的方式部署es集群和kibana服务 介绍实战中涉及的环境

    2024年02月11日
    浏览(35)
  • quarkus数据库篇之一:比官方demo更简单的基础操作

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《quarkus数据库篇》系列是《quarkus实战》的子系列,目标是与大家一起在quarkus框架下完成常用的数据库操作,如配置、增删改查、事物等 本篇敢号称 比官方demo更简单 ,是因为官方关于操作数据库的

    2024年02月13日
    浏览(38)
  • 09 使用Vue+el-form+form-validate实现管理端登录接口联调前准备工作实战

    这是《Vue + SpringBoot前后端分离项目实战》专栏的第7篇博客,感谢你能从成千上万篇博客中打开这一篇,和我一起学习前端开发实战知识,让我们一起开始吧。 目录 前言 一、上节回顾和本节介绍 1. 上节回顾

    2024年02月16日
    浏览(39)
  • 我的面试题准备(项目篇)

    Dubbo是阿里巴巴开源的,基于Java的高性能RPC远程调用分布式服务框架,提供了 高性能 和 透明化 的 远程服务调用方案 ,以及 SOA服务治理方案 。 这也是为什么我们需要用到Dubbo的原因,随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越负载。传

    2023年04月09日
    浏览(38)
  • 我的项目准备(数据库篇)

    参考何人听我楚狂声的代码,深入理解数据库知识,顺便作为自己项目的准备。 Transaction是 关系型数据库 的核心组成,它将数据有条理地保存在储存介质(磁盘)中, 并在逻辑上,将数据以结构化的形态呈现给用户。支持数据的增、删、改、查,并在过程中保障数据的正确且

    2024年02月15日
    浏览(38)
  • quarkus实战之六:配置

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《quarkus实战》系列的第六篇,咱们来掌握一个常用知识点:配置 如同SpringBoot中的 application.properties 文件,对一个quarkus应用来说,配置是其重要的组成部分,web端口、数据库这些重要信息都放

    2024年02月16日
    浏览(28)
  • quarkus实战之七:使用配置

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《quarkus实战》系列的第七篇,前文讲述了如何在将配置信息传入quarkus应用,今天要练习的是如何使用这些配置信息 整篇文章由以下内容构成: 创建工程,作为演示使用配置项操作的代码 演

    2024年02月15日
    浏览(29)
  • quarkus实战之八:profile

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《quarkus实战》系列的第八篇,经过前面的学习,咱们对配置有了足够了解,但问题也随之而来:如何让应用以最小的改动同时运行在不同环境(如本地、测试、生产等) 举个例子,下面是个

    2024年02月15日
    浏览(32)
  • 两岸猿声啼不住,轻舟已过万重山——我的四分之一人生

    本文稍有点长,推荐配合歌曲《夜空中最亮的星——逃跑计划》食用。我曾在无数个白天夜晚,听着这首歌,想着自己的人生,书写本文时也不例外。 2023 年,按我能长命百岁来计算,我已经走过了四分之一的人生路。 如果要我用一句话总结我过去这四分之一的人生,我想用

    2024年02月11日
    浏览(31)
  • quarkus实战之四:远程热部署

    将本地的改动极速同步到远程服务端,并自动生效,掌握此技能,开发调试会更高效 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是《quarkus实战》系列的第四篇,如标题所示,今天的任务是完成远程热部署实战 作为一名Java程序员,以下场

    2024年02月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包