龙空技术网

quarkus实战之一:准备工作

程序员欣宸 661

前言:

目前各位老铁们对“ubuntu文本搜索gra”都比较讲究,同学们都需要分析一些“ubuntu文本搜索gra”的相关文章。那么小编在网上收集了一些对于“ubuntu文本搜索gra””的相关内容,希望看官们能喜欢,大家一起来学习一下吧!

欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):关于《quarkus实战》系列《quarkus实战》系列是欣宸在2022年春季推出的又一个精品原创系列,作者将自己对java的热爱渗透到每段文字和每行代码中,全系列秉承欣宸一贯的知识+实战风格,既有知识普及、更有实际操作,在涉及基础知识之处更有深入分析,尽最大努力,将自己眼中云端的java的样子呈现出来引子作为一名Java程序员,如何适应目前的容器化趋势?将现有SpringBoot应用编译构建制作成docker镜像,然后运行在kubernetes环境,这是欣宸目前在实际项目中的做法,但也面临的诸多困扰启动慢:一个应用从启动到服务可用,一般是数秒,在对CPU核数和内存严格限制的情况下,花数十秒启动的情况也屡见不鲜,这样的问题无法适应需要快速重启或快速扩容的场景内存消耗大:曾强行将内存限制在1G,结果FGC频率变大,还经常触发OMMKill导致pod重启,并且启动时间也会变长,相比之下,集群中golang应用大多配置128M内存限制,我只能羡慕了另外还有诸多疑问也困扰着我:java技术栈内已有完整的注册发现、调用链追踪、指标监控、配置等技术实现,在kubernetes环境又该如何选择或适配生在云上,长在云上的云原生时代,Java应用何去何从?用jib插件将SpingBoot应用转为docker镜像,在k8s上运行,仅此而已吗?被以上问题困扰了很久,直到遇见 quarkus,当然了,它还没强大到解决上述所有问题,但它给了我方向和希望:java领域也有面向云原生的完整方案关于quarkusquarkus是为GraalVM 和HotSpot量身定制的Kubernetes原生Java框架,采用同类最佳的Java 库和标准制作而成,来自RedHat,是一个在Apache 许可证 2.0 版下获得许可的开源项目(来自官网)quarkus官网:quarkus的github仓库:来看看quarkus的特点,官网用了超大字体描述,内容简洁:超音速、亚原子的JAVA五大特点分别如下:容器优先命令式和响应式社区和标准的支持kubernetes原生对开发者友好来看看官网给出的对比数据,如下图,如果使用的是quarkus框架和GraalVM虚拟机,在内存方面对比传统框架有一个数量级的优势,而响应时间差距已不止一个数量级:容器化的路上,选择quarkus是个不错的选择本篇概览作为《quarkus实战》系列的开篇,本文的目标是为后续文章和编码实战做好准备工作,由以下内容组成:涉及软件的版本信息介绍安装JDK-11安装maven-3.8.4安装docker关于kubernetes的安装新建maven工程,作为《quarkus实战》系列所有代码的父工程以上就是今天的内容,先从环境信息开始吧涉及软件的版本信息介绍开始操作前,先将我这里的环境信息给出,这是能成功运行《quarkus实战》系列所有功能的环境,您可以用来作参考先看开发环境:操作系统:Ubuntu 16.04.7 LTS 桌面版(没错,写代码、本地运行调试、写文章都用这个Ubuntu电脑)JDK:11.0.14Maven:3.8.4IDE:IDEA 2021.2.3(Ultimate Edition)quarkus:2.7docker:20.10.7然后是运行环境,这是运行开发出的镜像的云环境:操作系统:CentOS-7.9.2009kubernetes:1.22.0(三台服务器,一台master,两台worker)环境介绍完毕,开始动手安装JDK先看quarkus官方对JDK和maven版本的要求,如下所示,JDK最低11,maven最低3.8.1下载JDK11,地址是:,按照自己的操作系统类型下载,如下图,我这里选的是linux版本:將下载的压缩包在/usr/lib/jvm/解压,得到文件夹jdk-11.0.14打开文件~/.bashrc,在尾部增加以下内容:

export JAVA_HOME=/usr/lib/jvm/jdk-11.0.14export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH
执行source ~/.bashrc,让配置生效执行java -version验证JDK是否生效
will@hp:~$ java -versionjava version "11.0.14" 2022-01-18 LTSJava(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下载压缩包,地址:將下载的压缩包在/usr/local/解压,得到文件夹apache-maven-3.8.4打开文件~/.bashrc,在尾部增加以下内容:
export MAVEN_HOME=/usr/local/apache-maven-3.8.4export PATH=$MAVEN_HOME/bin:$PATH
执行source ~/.bashrc,让配置生效执行mvn -version验证maven是否生效:
will@hp:~$ mvn -versionApache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)Maven home: /usr/local/apache-maven-3.8.4Java version: 11.0.14, vendor: Oracle Corporation, runtime: /usr/lib/jvm/jdk-11.0.14Default locale: zh_CN, platform encoding: UTF-8OS 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>;/url></mirror>
安装docker安装docker的命令与各操作系统有关,这里给出ubuntu下的安装命令作为参考:
curl -sSL  | sh
如果您在ubuntu系统中用的不是root帐号,建议做参考下文做一些简单设置,这样操作docker的时候就无需每次都用sudo了:《设置非root账号不用sudo直接执行docker命令》关于kubernetes安装可以参考极速安装kubernetes-1.22.0(三台CentOS7服务器)

新建maven工程新建名为quarkus-tutorials的maven工程,目前这里面还是空的,将来会作为整个系列相关源码的父工程,将所有源码和依赖库版本统一管理起来未完待续至此,准备工作已完成,quarkus就像一副神秘的山水画卷,在欣宸原创的推动下徐徐展开,敬请期待欢迎关注头条号:程序员欣宸学习路上,你不孤单,欣宸原创一路相伴...

标签: #ubuntu文本搜索gra