关于nginx:Java后端开发层主流技术简介

3次阅读

共计 4432 个字符,预计需要花费 12 分钟才能阅读完成。

开发框架

  • Spring Boot

应用 Spring Boot 能够轻松地创立独立的,基于生产级别的基于 Spring 的应用程序,您能够“运行”它们。

咱们对 Spring 平台和第三方库持回心转意的观点,因而您能够以最小的麻烦开始应用。大多数 Spring Boot 应用程序只须要很少的 Spring 配置。

特色

  1. 创立独立的 Spring 应用程序
  2. 间接嵌入 Tomcat,Jetty 或 Undertow(无需部署 WAR 文件)
  3. 提供自以为是的“入门”依赖项,以简化构建配置
  4. 尽可能主动配置 Spring 和 3rd Party 库
  5. 提供生产就绪的性能,例如指标,运行状况检查和内部配置
  6. 齐全没有代码生成,也不须要 XML 配置
  • Spring Cloud

Spring Cloud 为开发人员提供了工具,以疾速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,管制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。分布式系统的协调导致样板式样,并且应用 Spring Cloud 开发人员能够疾速站起来实现这些样板的服务和应用程序。它们能够在任何分布式环境中失常工作,包含开发人员本人的笔记本电脑,裸机数据中心以及 Cloud Foundry 等托管平台。

Spring Cloud 致力于为典型的用例和扩大机制提供良好的开箱即用体验,以涵盖其余用例。

  1. 分布式 / 版本化配置
  2. 服务注册和发现
  3. 路由
  4. 服务到服务的通话
  5. 负载平衡
  6. 断路器
  7. 全局锁
  8. 领导选举和集群状态
  9. 分布式消息传递
  • Mybatis plus

MyBatis 是一流的持久性框架,反对自定义 SQL,存储过程和高级映射。MyBatis 打消了简直所有的 JDBC 代码以及参数的手动设置和后果检索。MyBatis 能够应用简略的 XML 或正文进行配置,并将图元,映射接口和 Java POJO(一般的旧 Java 对象)映射到数据库记录。

MyBatis-Plus(简称 MP)是一个 MyBatis 的加强工具,在 MyBatis 的根底上只做加强不做扭转,为简化开发、提高效率而生。

个性

  1. 无侵入:只做加强不做扭转,引入它不会对现有工程产生影响,如丝般顺滑
  2. 损耗小:启动即会主动注入根本 CURD,性能根本无损耗,间接面向对象操作
  3. 弱小的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过大量配置即可实现单表大部分 CRUD 操作,更有弱小的条件结构器,满足各类应用需要
  4. 反对 Lambda 模式调用:通过 Lambda 表达式,不便的编写各类查问条件,无需再放心字段写错
  5. 反对主键主动生成:反对多达 4 种主键策略(内含分布式惟一 ID 生成器 – Sequence),可自在配置,完满解决主键问题
  6. 反对 ActiveRecord 模式:反对 ActiveRecord 模式调用,实体类只需继承 Model 类即可进行弱小的 CRUD 操作
  7. 反对自定义全局通用操作:反对全局通用办法注入(Write once, use anywhere)
  8. 内置代码生成器:采纳代码或者 Maven 插件可疾速生成 Mapper、Model、Service、Controller 层代码,反对模板引擎,更有超多自定义配置等您来应用
  9. 内置分页插件:基于 MyBatis 物理分页,开发者无需关怀具体操作,配置好插件之后,写分页等同于一般 List 查问
  10. 分页插件反对多种数据库:反对 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
  11. 内置性能剖析插件:可输入 Sql 语句以及其执行工夫,倡议开发测试时启用该性能,能疾速揪出慢查问
  12. 内置全局拦挡插件:提供全表 delete、update 操作智能剖析阻断,也可自定义拦挡规定,预防误操作

反对数据库

  1. mysql、mariadb、oracle、db2、h2、hsql、sqlite、postgresql、sqlserver
  2. 达梦数据库、虚谷数据库、人大金仓数据库
  • Spring MVC

Spring MVC 属于 SpringFrameWork 的后续产品,曾经交融在 Spring Web Flow 外面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。应用 Spring 可插入的 MVC 架构,从而在应用 Spring 进行 WEB 开发时,能够抉择应用 Spring 的 Spring MVC 框架或集成其余 MVC 开发框架,如 Struts1(当初个别不必),Struts 2(个别老我的项目应用) 等。

它是一个典型的教科书式的 mvc 构架,而不像 struts 等都是变种或者不是齐全基于 mvc 零碎的框架,对于初学者或者想理解 mvc 的人来说我感觉 spring 是最好的,它的实现就是教科书!第二它和 tapestry 一样是一个纯正的 servlet 零碎,这也是它和 tapestry 相比 struts 所具备的劣势。而且框架自身有代码,看起来容易了解。

  • Swagger 开源工具

Swagger 是由最后的“Swagger 标准”背地的团队创立的,该“Swagger 标准”已被重命名为 OpenAPI 标准。现在,Swagger 已倒退成为应用 OpenAPI 标准开发 API 的最宽泛应用的开源工具集之一。

当初 SWAGGER 官网次要提供了几种开源工具,提供相应的性能。能够通过配置甚至是批改源码以达到你想要的成果。

Swagger Codegen: 通过 Codegen 能够将形容文件生成 html 格局和 cwiki 模式的接口文档,同时也能生成多种语言的服务端和客户端的代码。反对通过 jar 包,docker,node 等形式在本地化执行生成。也能够在前面的 Swagger Editor 中在线生成。

Swagger UI: 提供了一个可视化的 UI 页面展现形容文件。接口的调用方、测试、项目经理等都能够在该页面中对相干接口进行查阅和做一些简略的接口申请。该我的项目反对在线导入形容文件和本地部署 UI 我的项目。

Swagger Editor: 相似于 markendown 编辑器的编辑 Swagger 形容文件的编辑器,该编辑反对实时预览形容文件的更新成果。也提供了在线编辑器和本地部署编辑器两种形式。

Swagger Inspector: 感觉和 postman 差不多,是一个能够对接口进行测试的在线版的 postman。比在 Swagger UI 外面做接口申请,会返回更多的信息,也会保留你申请的理论申请参数等数据。

Swagger Hub:集成了下面所有我的项目的各个性能,你能够以我的项目和版本为单位,将你的形容文件上传到 Swagger Hub 中。在 Swagger Hub 中能够实现下面我的项目的所有工作,须要注册账号,分免费版和免费版。

服务器

  • Tomcat

Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 我的项目中的一个外围我的项目,由 Apache、Sun 和其余一些公司及集体共同开发而成。因为有了 Sun 的参加和反对,最新的 Servlet 和 JSP 标准总是能在 Tomcat 中失去体现,Tomcat 5 反对最新的 Servlet 2.4 和 JSP 2.0 标准。因为 Tomcat 技术先进、性能稳固,而且收费,因此深受 Java 爱好者的青睐并失去了局部软件开发商的认可,成为目前比拟风行的 Web 应用服务器。

Tomcat 服务器是一个收费的凋谢源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型零碎和并发拜访用户不是很多的场合下被广泛应用,是开发和调试 JSP 程序的首选。对于一个初学者来说,能够这样认为,当在一台机器上配置好 Apache 服务器,可利用它响应 HTML(规范通用标记语言下的一个利用)页面的拜访申请。实际上 Tomcat 是 Apache 服务器的扩大,但运行时它是独立运行的,所以当你运行 tomcat 时,它实际上作为一个与 Apache 独立的过程独自运行的。

窍门是,当配置正确时,Apache 为 HTML 页面服务,而 Tomcat 实际上运行 JSP 页面和 Servlet。另外,Tomcat 和 IIS 等 Web 服务器一样,具备解决 HTML 页面的性能,另外它还是一个 Servlet 和 JSP 容器,独立的 Servlet 容器是 Tomcat 的默认模式。不过,Tomcat 解决动态 HTML 的能力不如 Apache 服务器。

  • Nginx

Nginx 作为负载平衡服务:Nginx 既能够在外部间接反对 Rails 和 PHP 程序对外进行服务,也能够反对作为 HTTP 代理服务对外进行服务。Nginx 采纳 C 进行编写,不论是系统资源开销还是 CPU 应用效率都比 Perlbal 要好很多。

解决动态文件,索引文件以及主动索引; 关上文件描述符缓冲。

无缓存的反向代理减速,简略的负载平衡和容错。

FastCGI,简略的负载平衡和容错。

模块化的构造。包含 gzipping, byte ranges, chunked responses, 以及 SSI-filter 等 filter。如果由 FastCG 或其它代理服务器解决单页中存在的多个 SSI,则这项解决能够并行运行,而不须要互相期待。

反对 SSL 和 TLSSNI。

Nginx 是一个很弱小的高性能 Web 和反向代理服务,它具备很多十分优越的个性。

在连贯高并发的状况下,Nginx 是 Apache 服务不错的替代品:Nginx 在美国是做虚拟主机生意的老板们常常抉择的软件平台之一。可能反对高达 50,000 个并发连接数的响应,感激 Nginx 为咱们抉择了 epoll and kqueue 作为开发模型。

容器

  • Docker 容器

容器是打包代码及其所有依赖项的软件的标准单元,因而应用程序能够从一个计算环境疾速牢靠地运行到另一个计算环境。Docker 容器映像是笨重的,独立的,可执行的软件软件包,其中包含运行应用程序所需的所有:代码,运行时,零碎工具,零碎库和设置。

容器映像在运行时成为容器,对于 Docker 容器,映像在容器 Docker Engine 上运行时成为容器。不管基础架构如何,容器化软件都可用于基于 Linux 和 Windows 的应用程序,始终运行雷同。容器将软件与其环境隔离开来,并确保只管开发和登台之间存在差别,但软件仍能够平均运行。

在 Docker Engine 上运行的 Docker 容器:

  1. 规范:Docker 创立了容器的行业标准,因而它们能够在任何中央移植
  2. 轻量级:容器共享计算机的 OS 零碎内核,因而不须要每个应用程序都具备 OS,从而进步了服务器效率并升高了服务器和许可老本
  3. 平安:容器中的应用程序更平安,Docker 提供了业界最弱小的默认隔离性能

Docker Engine 在容器运行时,可在各种 Linux(CentOS,Debian,Fedora,Oracle Linux,RHEL,SUSE 和 Ubuntu)和 Windows Server 操作系统上运行。Docker 创立了简略的工具和通用打包办法,将所有应用程序依赖项捆绑在一个容器中,而后在 Docker Engine 上运行。Docker Engine 使容器化的应用程序可能在任何基础架构上统一地运行,从而为开发人员和经营团队解决了“依赖天堂”,并打消了“可在我的笔记本电脑上工作的”问题。

正文完
 0