必看系列之Java开发工具推荐

2023-05-29 0 681

在现今黄金时代,有许多C词汇可能会刻画他们的今后。不过,当他们已经开始自学程式结构设计时,他们常常从C词汇已经开始,接着转至C++或许多其他C词汇中的一种。

那时给我们撷取的是为人津津乐道的JavaC词汇中的辅助工具采用。JavaC词汇的普及化能归咎于它的运动性,因为它能用以结构设计轻量和加速的订制插件,因此能服务于各式各样的目地。

JavaC词汇是这般颇受热烈欢迎,以致于长年在TIOBEC词汇盛行度榜单中名列前三,基本上上每一子公司都在采用Java,不论是这些小子公司,还是像Google,Amazon那般的小型信息技术巨擘。

因此前段时间一两年,Java 的控制技术栈发展的十分快,成千上万的控制技术辅助工具正急速地冒出来,这也造成了一个问题:究竟应该选什么样辅助工具构筑出合适的控制技术栈呢?

一、工程项目辅助工具

1.1 IDE

非主流的 Java 合作开发辅助工具那时非 IntelliJ IDEA 莫属。前一两年,可能 Eclipse 还能和 IDEA 一较决决,到了那时已经基本是 IDEA 的四海了。

如果你问我用 IDEA 究竟哪NEAR,我真的有 3 点:

标识符智能化提示信息,爽!

标识符手动聚合,爽!

标识符增容,爽!

而这 3 点,不可否认就是能很大提升合作开发人员合作开发工作效率的 3 点。

1.2 版管理辅助工具

对于工程项目中的标识符版管理辅助工具,Git 已经处于垄断地位了,新工程项目地话不需要再考虑 SVN、CVS了。

之所以 Git 那时处于垄断地位,主要胜在 2 点:

Git 是分布式的,不会因为版管理服务器崩溃导致完整的标识符历史版丢失。

Git 创建分支是十分廉价的操作,能随意创建分支,从而使并行合作开发很容易落地。而 SVN、CVS 这些版管理辅助工具创建分支则十分笨拙,并行合作开发十分麻烦。

1.3 构建工具

Java 工程项目地构建辅助工具那时是龙争虎斗,业内一般有两个选择:Maven 和 Gradle。

如果是后端的 Java 工程项目,那绝大部分用的还是 Maven 去构建工程项目。如果是前端的 Android 工程项目,则选择 Gradle。

Gradle 本身要比 Maven 先进许多:它配置灵活,性能优秀,真的是个十分优秀的构建辅助工具。

二、合作开发框架

2.1 Web 框架

那时的 Web 工程项目合作开发,大部分都转向了 SpringBoot 了。

采用 SpringBoot 有三个最大的好处:

配置十分少,能说是即插即用

基于 Spring 构建,入手门槛十分低

直接运行,不需要再考虑 Web 容器的问题

2.2 持久层框架

工程项目开发中用到的持久层框架,基本上有两类:

Mybatis 系列产品衍生框架

JPA 系列产品衍生框架

在国内来讲,大部分持久层框架还是首选 Mybatis,貌似在国外大部分工程项目是用的 JPA 框架。

2.3 RPC 框架

现在 Java 工程项目地架构,基本上都在转向分布式架构。分布式系统的整合,核心就是 RPC,因此许多工程项目中都引入了 RPC 框架。

RPC 框架,那时用得比较多的是 Dubbo 框架。

三、中间件

3.1 Web 服务器

那时的 Java 合作开发,由于大部分采用了 SpringBoot,所以以前我们常用的 Tomcat、Jetty、Resin 等 Web 容器都不怎么单独部署采用了。

但是,有一个 Web 容器反而还愈加兴旺起来,这就是 Nginx。

Nginx 在 Java 工程项目合作开发里,地位是十分特殊的。它在 Java 工程项目架构里起到了两个作用:

处理静态资源请求的web容器——Nginx 在 Java 工程项目中,专门负责处理对图片、html、js、css等这类静态资源的 Http 请求。

反向代理做分发——除了做专门处理静态资源请求的 Web 容器之外,Nginx 同时还会把对 servlet、controller 等这些动态资源的请求,转发给后面的 SpringBoot 中内置的 Tomcat 容器。

反向代理这个特性,Nginx 后面会被部署上集群,Nginx 在转发请求的时候,同时也会做负载均衡的请求分发的反向代理。

3.2 消息队列

如今,做架构越来越趋向分布式架构。分布式架构里,常用的通信手段,除了网络请求,就是消息队列了。

那时非主流的消息队列框架有 RabbitMQ、RocketMQ、Kafka 等。

RabbitMQ 性能虽然低一些,但是容易上手,更适合用在中小工程项目。

RabbitMQ 是 AMQP 协议的实现,而 AMQP 协议本身就是来自于金融行业的软件专家们联手制定的,十分成熟和全面,已经成了工业标准。

RabbitMQ 是 Erlang 写的,Erlang 的虚拟机对内存和 CPU 过载的保护十分成熟,也因此刻画了 Erlang 应用本身的可靠和健壮。

大工程项目、非金融工程项目,我们能在 RocketMQ、Kafka 这两者之间选择。

RocketMQ 和 Kafka 差不多 90% 的功能和概念都是相通的,只是 RocketMQ 在 Kafka 理念的基础上做了一些改进,更适用的业务场景也更广泛。

在流数据处理上,我们应该优先考虑 Kafka,原因是 Kafka 的流数据处理生态更加的完善周全。

3.3 数据库

互联网领域,非主流数据库就是MySQL。在一些传统行业,比如银行,Oracle 用得不少。

Oracle 贵,互联网工程项目地一个特点就是数据库服务器数量贼多,如果用 Oracle 的话,成本太高了。

而且我们越来越有版权意识,国家对这方面也抓得越来越紧,所以,在互联网领域基本上上都在用 MySQL。

采用 MySQL,常见的有 MHA 方案——MySQL 的高可用方案,基本上架构就是一主两从。当主机出故障了,从机就会被提升为主机。

3.4 外置缓存

对于高并发的架构,外置缓存不可或缺,其中最最最常见的就是 Redis。之所以我们都采用 Redis 做外置缓存,原因有三点:

Redis 本身性能十分好。

Redis 有许多数据结构去适配不同的业务缓存需求。

Redis 的集群高可用方案和分片存储的高性能方案相对成熟。

以上,就是 Java 合作开发中经常遇到的非主流控制技术辅助工具了,赶紧收藏起来吧~

必看系列之Java开发工具推荐
举报/反馈

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务