从单体到微服务:使用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.mzph.cn/news/138198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asp.net学院网上报销系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net学院网上报销系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 asp.net学院网上报销系统 应用技术…

ElasticSearch文档分析

ElasticSearch文档分析 包含下面的过程: 将一块文本分成适合于倒排索引的独立的 词条将这些词条统一化为标准格式以提高它们的“可搜索性”,或者 recall 分析器执行上面的工作。分析器实际上是将三个功能封装到了一个包里: 字符过滤器 首先&a…

【性能测试】非GUI模式Jemter压测+TPS性能拐点详细,一篇带你打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 非GUI模式执行Jem…

RK3568驱动指南|第七篇-设备树-第64章 device_node转换成platform_device实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

SOLIDWORKS软件提供了哪些特征造型方法?硕迪科技

SOLIDWORKS作为一款三维设计软件,为用户提供了多种特征造型方法,以下是其中几种常用的: 实体建模特征:SOLIDWORKS使用实体建模技术来创建和编辑三维几何体。通过使用基本几何体(如立方体、圆柱体、圆锥体等&#xff09…

Spring-Security前后端分离权限认证

前后端分离 一般来说,我们用SpringSecurity默认的话是前后端整在一起的,比如thymeleaf或者Freemarker,SpringSecurity还自带login登录页,还让你配置登出页,错误页。 但是现在前后端分离才是正道,前后端分离的话,那就…

@ConfigurationProperties使用

一直有个疑问,在使用ConfigurationProperties注解作用一个配置类时,如果该配置类继承了一个父类,那么父类的那些配置字段是否可以读取配置信息。 答案是可以的,前提是父类对应字段的set方法是public。 BaseProperties.java Getter Setter public class BasePropert…

React 递归手写流程图展示树形数据

需求 根据树的数据结构画出流程图展示,支持新增前一级、后一级、同级以及删除功能(便于标记节点,把节点数据当作label展示出来了,实际业务中跟据情况处理) 文件结构 初始数据 [{"ticketTemplateCode": &…

uniapp vue2 vuex 持久化

1.vuex的使用 一、uniapp中有自带vuex插件,直接引用即可 二、在项目中新建文件夹store,在main.js中导入 在根目录下新建文件夹store,在此目录下新建index.js文件 index.js import Vue from vueimport Vuex from vuexVue.use(Vuex)const store new Vuex.Store(…

代码随想录图论部分-695. 岛屿的最大面积|1020. 飞地的数量

695. 岛屿的最大面积 题目:给你一个大小为 m x n 的二进制矩阵 grid 。岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水&#xff0…

electron 内部api capturePage实现webview截图

官方文档 .capturePage([rect]) rect Rectangle (可选) - 要捕获的页面区域。 返回 Promise - 完成后返回一个NativeImage 在 rect内捕获页面的快照。 省略 rect 将捕获整个可见页面。 async function cap(){ let image await webviewRef.value.capturePage() console.log(im…

Postman的环境变量和全局变量

近期在复习Postman的基础知识,在小破站上跟着百里老师系统复习了一遍,也做了一些笔记,希望可以给大家一点点启发。 多种环境:开发环境、测试环境、预发布环境、生产环境,可以用环境变量来解决。 今天的分享就到这里&a…

【论文阅读】Progressive Spatio-Temporal Prototype Matching for Text-Video Retrieval

资料链接 论文链接:https://openaccess.thecvf.com/content/ICCV2023/papers/Li_Progressive_Spatio-Temporal_Prototype_Matching_for_Text-Video_Retrieval_ICCV_2023_paper.pdf 代码链接:https://github.com/imccretrieval/prost 背景与动机 文章发…

LabVIEW在OPC中使用基金会现场总线

LabVIEW在OPC中使用基金会现场总线 本文讨论了如何使用开放的OPC(用于过程控制的OLE)接口访问基金会现场总线网络和设备。 NI-FBUS通信管理器随附了一个OPC数据访问服务器。 (NI-FBUS Configurator自动包含NI-FBUS通信管理器。&#xff09…

Visual Studio2010保姆式安装教程(VS2010 旗舰版),以及如何运行第一个C语言程序,超详细

安装前请关闭杀毒软件,系统防火墙,断开网络连接 参考链接:请点击 下载链接: 通过百度网盘分享的文件:VS2010.zip 链接:https://pan.baidu.com/s/1yQUUCxMJP7FMaistFX94SQ 提取码:96ga 复制这段内容打开「百度网盘APP …

Linux下的调试工具——GDB

GDB 1.什么是GDB GDB 是由 GNU 软件系统社区提供的调试工具,同 GCC 配套组成了一套完整的开发环境,GDB 是 Linux 和许多 类Unix系统的标准开发环境。 一般来说,GDB 主要能够提供以下四个方面的帮助: 启动程序,可以按…

GF0-57CQD-002 测量参数:加速度、速度、位移–现场可配置

GF0-57CQD-002 测量参数:加速度、速度、位移–现场可配置 GF0-57CQD-002 是一款创新的双通道变送器,专为精确的振动测量而设计。它激励并读取来自加速度计的信号,并将整体振动值作为电流/电压信号传输。它测量加速度、速度和位移等不同参数的振动。配置…

模电学习路径--google镜像chatgpt

交流通路实质 列出电路方程1,方程1对时刻t做微分 所得方程1‘ 即为 交流通路 方程1对时刻t做微分:两个不同时刻的方程1相减,并 令两时刻差为 无穷小 微分 改成 差 模电学习路径: 理论 《电路原理》清华大学 于歆杰 朱桂萍 陆文…

【数据结构】二叉树的遍历递归算法详解

二叉树的遍历 💫二叉树的结点结构定义💫创建一个二叉树结点💫在主函数中手动创建一颗二叉树💫二叉树的前序遍历💫调用栈递归——实现前序遍历💫递归实现中序和后序遍历 💫二叉树的结点结构定义 …

稳定扩散AI 纹理生成器

推荐基于稳定扩散(stable diffusion) AI 模型开发的自动纹理工具: DreamTexture.js自动纹理化开发包 - NSDT 什么是稳定扩散? 从技术上讲,Stable Diffusion 是一种用于机器学习的潜在扩散模型 (LDM)。这种类型的专用深…