Java中的常用工具
工具 | 简介 | 功能 | 说明 |
---|---|---|---|
JVM | Java 虚拟机 | JVM帮助JAVA完成了跨平台 | JVM总体上是由类装载子系统(ClassLoader)、运行时数据区、执行引擎、垃圾收集这四个部分组成 |
JRE | Java运行环境 | 开发的程序发布到用户手中,让用户使用 | 包含JVM+核心类库 |
JDK | Java开发工具包 | 用于开发、编译、调试和运行Java程序的软件包 | 包括Java运行时环境(JRE)、编译器(javac)、调试器(jdb)、各种Java类库和其他辅助工具 |
Spring | 轻量级java开发框架 | 针对于开发的WEB层(springMvc)、业务层(Ioc)、持久层(jdbcTemplate)等都提供了多种配置解决方案 | 有众多衍生产品例如 boot、security、jpa等等 |
SpringMVC | spring基础之上的一个MVC框架 | 主要处理web开发的路径映射和视图渲染,属于spring框架中WEB层开发的一部分 | 涵盖面包括前端视图开发、文件配置、后台接口逻辑开发等,XML、config等配置相对比较繁琐复杂 |
SpringBoot | 由Pivotal团队提供的全新微服务框架 | 使用了默认大于配置的理念;简化新Spring应用的初始搭建以及开发过程 | 更专注于开发微服务后台接口,不开发前端视图,同时遵循默认优于配置,简化了插件配置流程,不需要配置xml,相对springmvc,大大简化了配置流程 |
SpringCloud | Java微服务框架;一系列框架的有序集合 | 基于springBoot;关注于全局的微服务整合和管理,将多个springBoot单体微服务进行整合以及管理 | springCloud依赖于springBoot开发,而springBoot可以独立开发;多个springBoot独立开发的项目可以通过springCloud实现合作 |
Dubbo | Java分布式服务框架 | 远程方法调用、智能容错和负载均衡、提供服务自动注册、自动发现等高效服务治理功能。 | 是一种高性能、轻量级的开源Java分布式服务框架,由阿里巴巴公司开发并开源 |
Maven | 是用Java语言编写的 | Maven主要目标是提供开发人员 | 本质是一个项目管理工具;打包代码的工具;依赖管理工具 |
Nacos | 实现微服务注册与发现的利器 |
服务注册:就是将提供某个服务的模块信息(通常是这个服务的ip和端口)注册到1个公共的组件上去; 服务发现:就是新注册的这个服务模块能够及时的被其他调用者发现。不管是服务新增和服务删减都能实现自动发现 |
使用 Nacos 简化服务发现、配置管理、服务治理及管理的解决方案,让微服务的发现、管理、共享、组合更加容易。 |
Docker | 微服务容器化 | 弥补了微服务发布服务多,数据库多的困扰 | 提供一个简单的应用程序打包工具,可以将应用程序和它相关依赖的包都会打进去;多环境保持一致性,不管测试环境正式环境,只需要部署docker镜像 |
RabbitMQ | 消息中间件 | 是在消息的传输过程中保存消息的容器。多用于系统之间的异步通信 | 异步通信:异步通信相当于通过第三方转述对话,可能有消息的延迟,但不需要二人时刻保持联系,消息传给第三方后,两人可以做其他自己想做的事情,当需要获取对方说话的内容时,直接从消息队列里获取即可。 |
RocketMQ | 消息中间件 | 它是纯Java开发,具有高吞吐量、高可靠性、适合大规模分布式系统应用 | RocketMQ思路起源于Kafka,它对消息的可靠传输以及事务性做了优化,目前在阿里集团被广泛应用于交易、充值、流计算、消息推送、日志流式处理、binlog分发等场景 |
ActiveMQ | 消息中间件 | ||
ZeroMQ | 消息中间件 | ||
Kafka | 消息中间件 | 基于Pull的模式来处理消息消费 | |
MybatisPlus | IDEA 插件 | 代码生成、自动分页、逻辑删除、自动填充等功能一应俱全。 | 对于单表的 CRUD 操作,调用 Mybatis-Plus 所提供的 API 就能够轻松实现,此外还提供了各种查询方式、分页等行为。最最重要的,开发人员还不用去编写 XML,简化开发过程,提高开发效率。 |
Redis | 存储系统,具有极高的读写性能 | 在内存中管理数据量不太大但是访问量特别大的热点数据 | 我们知道,内存是电脑主板上的存储部件,用于存储当前正在使用的数据和程序,CPU可以与内存直接沟通,所以访问速速非常高;而外存数据必须加载到内存以后程序才能使用。如果把CPU当做一个吃货,那么内存是碗,而外存是锅,这个吃货再能吃,也得先把饭从锅里盛到碗里再下嘴,而不能直接跳到锅里大快朵颐。但是很多时候CPU吃的并不爽,一是因为碗不够大,没吃两嘴就没了;二是从锅里往碗里盛饭是个比较耗时的过程,等待很痛苦。正经点说,就是内存大小、I/O速度、网络响应时间等常常成为应用系统的性能瓶颈。 |
MySQL | 关系型数据库 | 支持多种操作系统和编程语言,具有高性能、可靠性和可扩展性等 | |
NoSQL | 数据库 | 满足云计算的需求而设计;突破了传统关系型数据库对规模、性能、数据模型和数据分布的限制。 | NoSQL (Not-only-SQL,不只是SQL) 数据库采用与关系型数据库不同的方式来存储、分布和获取数据。 |
Solr | 面向企业搜索的 web 应用 | 独立的企业级搜索应用服务器,它对外提供类似于 Web-service 的 API 接口。用户可以通过 http 请求,向搜索引擎服务器提交一定格式的 XML 文件,生成索引;也可以通过 Http Get 操作提出查找请求,并得到 xml/json 格式的返回结果。 | |
netty | 一个异步事件驱动的网络应用程序框架 | Java 中支持三种网络编程IO模型, BIO、NIO、AIO , Netty对NIO又做了一层封装 | Netty在 互联网领域、大数据分布式计算领域、游戏行业、通信行业 等获得了广泛的应用 |
Tomcat | 开源的Web 应用服务器 | 属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调式 JSP 程序的首选 | |
Apache | 开源的 Web 应用服务器 | Apache 只能处理静态页面,而 Tomcat 不但可以处理静态页面,还可以处理动态页面(JSP) | |
jmeter | 性能测试工具 | JMeter是一个开源的Java应用程序,由Apache软件基金会开发和维护,可用于性能测试、压力测试、接口测试等。 |
测试类型:支持负载测试、压力测试、功能测试、基准测试和分布式测试等多种测试类型,适用于不同的性能测试需求。 测试场景并发用户数、持续时间、循环次数和延迟时间等,可以模拟真实的使用场景。 |
Maven
类似于前端的npm+webpack,是一个包管理工具+项目中的依赖配置工具
Nacos
什么是Nacos?
Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
Nacos可以做什么?
1、动态配置服务:支持以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。
2、服务发现及管理:支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现,同时提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,可以更容易地为服务实现断路器。
3、动态DNS服务:通过支持权重路由,轻松实现中间层负载均衡、更灵活的路由策略、流量控制及简单数据中心内网的简单DNS解析服务。更加容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。
MyBatis-Plus
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
JRE
JRE是Java Runtime Environment缩写,指Java运行环境,是Sun的产品。运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行 Applet,务必安装一个JRE或JDK。
JDK
JDK 是一个软件包,其中包含各种工具和实用程序,可以开发、打包、监控和部署为任何标准 Java 平台构建的应用程序,包括 Java 平台标准版 (Java SE); Java 平台,微型版 (Java ME);和 Java 平台企业版 (Java EE)。JDK 还包含许多用于检查 JVM 运行时行为的工具,包括 Java Mission Control (JMC)、Java Flight Recorder (JFR) 和 VisualVM。
JVM
JVM是Java虚拟机,是Java Virtual Machine的缩写。Java借助JVM实现了平台无关性,只需要在操作系统平台上部署JVM,Java编译生成的目标代码(字节码)就可以在Java虚拟机上运行,使得Java语言在不同平台上运行时,不需要重新编译,从而实现了一次编译多处运行。