京东技术专家首推:Spring 微服务架构设计,GitHub 星标 128K

news2024/9/30 9:32:09

前言

本书提供了实现大型响应式微服务的实用方法和指导原则,并通过示例全面 讲解如何构建微服务。本书深入介绍了 Spring Boot、Spring Cloud、 Docker、Mesos 和 Marathon,还会教授如何用 Spring Boot 部署自治服务,而 无须使用重量级应用服务器,并介绍 Spring Cloud 框架的各项能力、如何使 用 Docker 实现容器化,以及如何使用 Mesos 和 Marathon 抽象出计算资源和控制 整个集群。

从目录看起

由于全文内容过多总共四百多页篇幅过多,没法全部给大家展示出来,在这里便给大家展示部分内容【Spring 微服务架构设计原文档见文末】

第 1 章,微服务揭秘

本章通过一些实例介绍了微服务的基本原理。 本章介绍了从传统单体应用到微服务架构的演进过程、现代应用架构的一些 原则和思维方式上的转变,还总结了大多数成功的微服务项目实现的共同特 征,最后讨论了微服务架构的优势。

下一章会分析微服务架构和其他架构风格之间的联系,还会介绍微服务的常 见用例。

第 2 章,相关架构风格和用例

本章介绍了微服务架构和其他一些流行的架构风格之间的关系。 本章首先介绍了微服务与 SOA 和十二要素应用的关系,然后分析了微服务架构 和其他架构(比如无服务器计算架构和 Lambda 架构)之间的联系,还介绍了 微服务与云计算以及 DevOps 结合使用的好处,随后分析了一些来自不同行业 并成功采用微服务的企业的案例,最后罗列了一些比较成熟的微服务框架。

为了更好地说明本章所讲的内容,下一章会开发一些微服务实例。

第 3 章,用 Spring Boot 构建微服务

本章介绍了 Spring Boot 及其构建生产就绪微服务应用的关键特性。 本章通过比较前几代 Web 应用,说明了 Spring Boot 有助于开发人员开发可用 的微服务。然后介绍了基于 HTTP 和基于消息的异步响应式微服务,并通过实 例研究了如何实现微服务所要求的一些关键能力,比如安全性、HATEOAS 和跨 域,等等。本章还介绍了 Spring Boot Actuator 如何帮助运维团队、如何定 制功能满足需求,以及微服务 API 文档化。最后将本章所讲知识融入了完整的 示例。

下一章将放缓脚步,通过常见实践来解析微服务项目。

第 4 章,应用微服务概念

本章介绍了如何处理微服务开发中的一些实际场景。 首先介绍了多种可选方案和设计模式,它们可用于解决常见的微服务问题; 然后讨论了开发大型微服务系统时面临的一系列挑战,以及如何有效应对。

下一章将建立一个微服务的能力成熟度参考模型。

第 5 章,微服务能力模型

本章受到了业界成功的微服务项目实现的启发,基于最佳实践、常用模式和 设计准则,建立了一个与技术和工具无关的微服务能力模型。该能力模型有 助于组织思考自己的微服务实践和了解采用微服务之前需要考虑的方方面面。

本章论述了该能力模型的各项能力,介绍了这些能力对微服务实现的重要 性,还讨论了支撑这些能力的各种可选技术方案,最后研究了组织采用微服 务的成熟度模型。

下一章以一个使用微服务架构的实际问题和模型为例,介绍如何将所讲内容 应用于实际项目。

第 6 章,微服务演进案例研究

本章介绍了如何用微服务架构来处理实际用例。 本章研究了在现实世界中从单体应用向微服务演进的不同阶段,也评估了迁 移单体应用的多种方式的利弊和障碍,最后讲解了对 BrownField 航空公司的 应用进行端到端的微服务设计的过程,还验证了设计和实现成熟微服务的过 程。

下一章将介绍如何通过 Spring Cloud 项目将开发好的 BrownField 航空公司 PSS 微服务转型为互联网级的部署。

第 7 章,用 Spring Cloud 组件扩展微服务

本章介绍了如何利用 Spring Cloud 项目对符合十二要素原则的 Spring Boot 微 服务进行扩展,并在上一章开发的 BrownField 航空公司 PSS 微服务项目上进行 了实践。 本章介绍了用于外部化微服务配置的 Spring 配置服务器,以及如何部署配置 服务的高可用集群,也介绍了用于负载均衡、动态服务注册和发现的 Eureka 服务器。然后通过实现 Zuul 代理,探究了 API 网关的实现。最后使用 Spring Cloud Streams 实现了响应式微服务集成。 BrownField 航空公司的 PSS 微服务系统已经实现互联网级部署了。

下一章会讨 论 Spring Cloud 的其他组件,比如 Hyterix 和 Sleuth 等。

第 8 章,微服务的日志管理和监控

本章介绍了实现互联网级微服务架构时在日志和监控方面的挑战。 本章探讨了集中式日志管理的各种方案,也介绍了如何使用 Elasticsearch、 Logstash 和 Kibana(ELK)定制集中式日志管理方案。为了说明分布式追踪, 我们用 Spring Cloud Sleuth 升级了 BrownField 航空公司的微服务。 本章后半部分深入研究了微服务监控方案所需的各项能力和各种监控方式, 随后介绍了一些监控微服务的工具。 为了监控服务通信中出现的延迟和故障,我们用 Spring Cloud Hystrix 和 Turbine 增强了 BrownField 航空公司的微服务,还演示了在系统发生故障时如 何使用断路器模式来退回到备用服务。 最后讲到了数据湖的重要性以及如何在微服务的上下文中集成数据湖架构。 微服务管理是实现大规模微服务部署时必须应对的另一个重要挑战。

下一章 会介绍如何使用容器简化微服务管理。

第 9 章,用 Docker 容器化微服务

本章探讨了云环境对于实现互联网级微服务的必要性。 本章介绍了容器的概念并比较了容器和传统的虚拟机,还介绍了 Docker 的基 础知识,解释了 Docker 镜像、容器和注册表的概念,并在微服务的上下文中 阐释了容器的重要性和优势。 本章随后通过容器化 BrownField 微服务转到了一个实操的例子,演示了如何 将之前开发的 Spring Boot 微服务部署到 Docker。通过研究本地容器注册表和 用于上传/下载容器化微服务的 Docker Hub,讲解了容器注册表的概念。 最后介绍了如何在 AWS 云环境中部署容器化的 BrownField 微服务。

第 10 章,用 Mesos 和 Marathon 扩展容器化的微服务

本章介绍了应用程序自动扩容的不同方面和高效管理大规模 Docker 化微服务 中容器编排的重要性。 在详细介绍 Mesos 和 Marathon 前,我们研究了不同的容器编排工具。我们在 AWS 云环境中实现了 Mesos 和 Marathon,并演示了如何管理为 BrownField 公司 PSS 应用开发的 Docker 化微服务。 前面介绍了成功实现微服务所需要的所有核心能力及支撑技术。除了技术, 成功的微服务实现也需要相应的流程和实践方法。

下一章会从流程和实践的 角度讲解微服务。

第 11 章,微服务开发生命周期

本章介绍了微服务和 DevOps 的关系,讨论了开发微服务时的一系列实践要 点,还详细介绍了微服务开发的生命周期。 本章后面的部分介绍了如何将从开发到生产的整个微服务交付管道自动化, 并介绍了一系列工具和技术,最后探讨了微服务治理中标准类库和参考架构 的重要性。 全面掌握本书介绍的微服务概念、挑战、最佳实践即及各项能力是成功开发 大规模微服务的最佳秘诀。

本书各章的内容都很实用,细致讲授了如何将微服务技术与业务相结合。通 过一系列示例(包括一个旅游业的案例研究),书中阐述了微服务架构的实 现,涉及 Spring 框架、Spring Boot 和 Spring Cloud。这些都是用于开发和部 署大规模可扩展微服务的强大且久经考验的工具。本书基于 Spring 框架的最 新规范编写。借助本书,你可以快速构建互联网级现代 Java 应用

【Spring 微服务架构设计原文档👇】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/789013.html

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

相关文章

8款常用系统镜像烧录软件

系统烧录软件是一种用于将操作系统或其他软件程序安装到嵌入式系统、嵌入式设备或存储设备中的工具。它通常用于将预先编译好的二进制文件或源代码烧录到硬件设备的非易失性存储器中,例如闪存芯片、EEPROM、EPROM或其他存储介质。系统烧录软件提供了一个便捷的方式&…

基于Java+SpringBoot+vue前后端分离海滨体育馆管理系统设计实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

selenium的三种等待方式(强制等待,隐式等待,显示等待)

目录 1.强制等待(无条件等待) 2.隐式等待 3.显示等待 有时候做自动化测试,需要进行等待,因为下一步的操作依赖于上一步的结果,但是程序执行的很快,有时候页面还未加载完成就进行了下一步的操作&#xff…

【数据挖掘】使用 LSTM 进行时间和序列预测

一、说明 每天,人类在执行诸如过马路之类的任务时都会做出被动预测,他们估计汽车的速度和与汽车的距离,或者通过猜测球的速度并相应地定位手来接球。这些技能是通过经验和实践获得的。然而,由于涉及众多变量,预测天气或…

网络安全 Day19-计算机网络基础知识04(网络协议)

计算机网络基础知识04(网络协议) 1. ARP1.1 ARP通讯原理1.2 arp欺骗1.3 ARP欺骗与预防1.4 排查ARP病毒 2. DHCP工作原理(自动分配内网IP)3. TCP协议三次握手、四次挥手原理4. DNS协议工作原理 1. ARP Linux查看arp:ar…

12.Netty源码之整体架构脉络

Netty 整体架构脉络 Netty 的逻辑处理架构为典型网络分层架构设计,共分为网络通信层、事件调度层、服务编排层,每一层各司其职。 网络通信层 网络通信层的职责是执行网络 I/O 的操作。它支持多种网络协议和 I/O 模型的连接操作。当网络数据读取到内核缓冲…

一分钟叫你怎样AI绘画 Vega Ai

先看效果图: 是不是也想自己去创造这样的图片呢,注意已经不需要自己画了!! Vega AI 简介 Vega AI是一款能够 文字生成图片、根据图片文字进行生成图片、条件生成图片 、根据多张图片训练出自己的风格,在风格广场选择…

使用 OpenCV 和 GrabCut 算法进行交互式背景去除

一、说明 我想,任何人都可以尝试从图像中删除背景。当然,有大量可用的软件或工具能够做到这一点,但其中一些可能很昂贵。但是,我知道有人使用窗口绘画3D魔术选择或PowerPoint背景去除来删除背景。 如果您是计算机视觉领域的初学者…

Linux系统知识1—Linux命令基础格式,什么是命令,命令行,ls命令入门,ls命令的参数和选项,-a,-l -h选项的使用及组合使用

一.什么是命令,命令行 .命令行:即 Linux 终端( Terminal ),是一种命令提示符页面。以纯"字符"的形式操作系统,可以使用各种字符化命令对系统发出操作指令。 .命令:即 Lin…

【LangChain】检索器之上下文压缩

LangChain学习文档 【LangChain】检索器(Retrievers)【LangChain】检索器之MultiQueryRetriever【LangChain】检索器之上下文压缩 上下文压缩 LangChain学习文档 概要内容使用普通向量存储检索器使用 LLMChainExtractor 添加上下文压缩(Adding contextual compression with an…

数据结构基本概念及算法分析

文章目录 1. 数据结构基本概念1.1 基本概念和术语1.1.1 数据1.1.2 数据元素1.1.3 数据项1.1.4 数据对象1.1.5 数据结构 1.2 逻辑结构与物理结构1.2.1 逻辑结构(我们最需要关注的问题)1.2.2 物理机构 1.3 数据类型1.3.1 数据类型定义1.3.2 抽象数据类型 2. 算法分析2.1 算法的复…

【Python机器学习】实验02 线性回归

文章目录 线性回归1. 单变量的线性回归1.1 数据读取1.2 训练数据的准备1.3 假设函数定义--假设函数是为了去预测1.4 损失函数的定义1.5 利用梯度下降算法来优化参数w1.6 可视化误差曲线1.7 可视化回归线/回归平面 1.2 单变量的线性回归--基于sklearn试试?1.3 多变量…

object tracking论文代码汇总

文章目录 2023Segment and Track AnythingTrack Anything: Segment Anything Meets VideosSAM-DA: UAV Tracks Anything at Night with SAM-Powered Domain Adaptation 2023 Segment and Track Anything code:https://github.com/z-x-yang/Segment-and-Track-Anyt…

响应式赋值Object.assign()和JSON.parse(JSON.stringify())的区别

一、需求:点击编辑弹出编辑框,修改后的内容点击认按钮修改后的数据更新回显到原列表。今天优化代码的时候发现了Object.assign()和JSON.parse(JSON.stringify())的区别。 优化前代码如下: // 编辑药品回显editMedicData(data) {this.table…

会员系统怎么搭建,适合门店的会员系统有哪些?

会员系统是一种为企业和门店提供会员管理和服务的工具。会员系统可以通过提供专属优惠、积分奖励、个性化推荐等方式,激励顾客成为会员并保持长期关系。 我们在自己搭建或选择会员系统时,需要考虑门店的特定需求以及系统的功能、可靠性、易用性和成本等因…

github前端开源json2html

软件介绍 前端低代码工具包,通过 JSON 配置就能生成各种页面。 应用场景 json解析超大数据动态渲染,渲染速度、性能解决问题 包引用列表 vue3 (cdn模式开发)element plusnodehttp-serveraxios 操作步骤 1.环境准备下载node:https://no…

长tree用buffer还是inverter?驱动强度如何选型?

相关文章链接: 静态时序分析: 最小脉冲宽度检查 redhawk:clock buffer cluster 面试中关于CTS buf/inv选型的问题经久不衰,依托经验,不看纸面信息,inverter和buffer各有优劣,同驱动buffer实际推力更强,意味着只用buffer,clock repeater数量更少,inverter必须成对的…

从零开始搭建医药领域知识图谱实现智能问答与分析服务(含码源):含Neo4j基于垂直网站数据的医药知识图谱构建、医药知识图谱的自动问答等

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实…

抖音seo矩阵系统源码保姆式开发部署指导

抖音seo霸屏,是一种专为抖音视频创作者和传播者打造的视频批量剪辑,批量分发产品。使用抖音seo霸屏软件,可以帮助用户快速高效的制作出高质量的优质视频。 使用方法:1. 了解用户的行为习惯 2. 充分利用自身资源进行开发 3. 不…

超全整理,selenium自动化测试常见问题解决(汇总)

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