当前位置: 首页 > news >正文

从单体到微服务:使用Spring Boot构建事件驱动的Java应用程序

Spring Boot是Pivotal团队设计的一种微服务框架, 基于Spring开发,用于简化新Spring应用的初始搭建及开发过程,提升Spring 开发者的体验。它秉持“约定大于配置”的思想,集成了大量开箱即用的第三方库,支持绝大多数开源软件,使开发者更专注于业务逻辑,便捷地构建微服务。Spring Boot的出现为Java领域内实施微服务架构提供了技术支撑,是Java领域出色的微服务架构实施技术。

本书首先解释为什么要从一个小的单体应用开始学习,然后从一个空项目入手,开始分层创建微服务;在此过程中构建Web应用程序,展示Spring Boot在处理应用程序时的强大功能,后深入探讨微服务的一些核心概念。本书围绕服务发现、负载均衡、路由、集中式日志、按环境配置和容器化等内容,采用增量方法介绍微服务架构、测试驱动开发和分布式系统中的常见模式。

早在2009年,Netflix便开始尝试对微服务进行初步探索。在互联网智能化不断发展、各种新技术层出不穷以及传统架构无法满足软件开发新需求等背景下,微服务应运而生。Martin Fowler于2014年3月发表的“Microservices”一文中第一次明确提出“微服务”概念。从早期的单体架构,到之后的分布式架构和SOA(Service-Oriented Architecture)架构,服务被不断拆分,粒度越来越小。微服务架构秉持分而治之、高内聚、低耦合的开发理念,将单一应用程序拆分为多个相互独立的小应用,真正实现了去中心化;小应用之间通过服务完成交互和集成,真正实现了业务系统的组件化和服务化。因此,微服务架构成为构建现代软件系统最流行的方法之一。

Spring Boot是Pivotal团队设计的一种微服务框架,基于Spring开发,用于简化新Spring应用的初始搭建及开发过程,提升Spring开发者的体验。它秉持“约定大于配置”的思想,集成了大量开箱即用的第三方库,支持绝大多数开源软件,使开发者更专注于业务逻辑,便捷地构建微服务。Spring Boot的出现为Java领域内实施微服务架构提供了技术支撑,是Java领域最出色的微服务架构实施技术。

本书介绍了使用Spring Boot框架构建基于Java的微服务架构的过程。通过将应用程序从小型单体架构转变为由多个服务组成的事件驱动架构,您将学习到以下知识点:

服务发现、负载均衡、路由、集中式日志、按环境配置和容器化等关键概念。
新增功能,如支持特定版本的Java SE、使用JUnit 5进行测试、更新的Spring Cloud工具用于服务发现和负载均衡、使用云原生构建包构建Docker映像、提供基本的集中式日志解决方案、使用Sleuth实现端到端追溯性、使用Consul进行集中式配置、依赖项升级以及支持Spring Data Neumann等。
作者Moisés通过实用方法来解释这种软件架构的好处,并介绍了一些计算机编程中的先进技术。您将专注于学习关键技术,从开发最小可行性产品开始,并保持灵活性和演进。
主要内容包括:

使用Spring Boot构建微服务
探索分布式系统中的常见架构模式,如异步处理、最终一致性、弹性和可扩展性等
使用RabbitMQ实现事件驱动的架构和消息传递
使用Consul进行服务发现,使用Spring Cloud Load Balancer实现负载均衡
使用Spring Cloud Gateway进行请求路由
使用Spring Cloud Consul按环境进行灵活配置
使用Sleuth和集中式日志记录跟踪每个请求的整个过程
将微服务部署为Docker容器,实现灵活部署
使用Docker Compose启动微服务架构中的所有组件

《Spring Boot微服务实战(第2版)》【摘要 书评 试读】- 京东图书 (jd.com)icon-default.png?t=N7T8https://item.jd.com/10079737581108.html

http://www.lryc.cn/news/225963.html

相关文章:

  • WMS配送中心主要业务流程
  • 《LeetCode力扣练习》代码随想录——数组(螺旋矩阵II---Java)
  • 计算机毕业设计选题推荐-农产品销售微信小程序/安卓APP-项目实战
  • Linux AMH 服务器管理面板远程访问
  • arcsinx的导数
  • 邻接表储存图实现广度优先遍历(C++)
  • 解构赋值详解以及例子
  • Spring Boot 3.0正式发布及新特性解读
  • 【tgowt】更新thirdparty
  • 金字塔原理小节
  • osg点云加载与渲染
  • 后端架构选择:构建安全强大的知识付费小程序平台
  • 第四节(2):修改WORD中表格数据的方案
  • Qt中对Udp数据打包发送和接收
  • 回调地狱 与 Promise(JavaScript)
  • 【Android】UI开发中的一些小细节笔记
  • 第十三章《搞懂算法:神经网络是怎么回事》笔记
  • SpringBoot不同环境加载不同配置文件(dev,sit,uat)
  • 2023.11.8 hadoop学习-概述,hdfs dfs的shell命令
  • Azure 机器学习 - 使用自动化机器学习训练计算机视觉模型的数据架构
  • STM32F4X SDIO(九) 例程讲解-SD卡擦除、读写
  • 【机器学习范式】监督学习,无监督学习,强化学习, 半监督学习,自监督学习,迁移学习,对比分析+详解与示例代码
  • JUC包下面的四大天王+线程池部分知识
  • AGV系统控制位置管理功能
  • JavaScript从入门到精通系列第三十三篇:详解正则表达式语法(二)
  • 由于找不到 d3dx9_43.dll,无法继续执行代码。重新安装程序可能会解决此问题
  • AI全栈大模型工程师(二十一)LangChain和SemanticKernel怎么选
  • npm install 报错 chromedriver 安装失败的解决办法
  • C语言--每日五道选择题--Day6
  • element-ui 封装 表格