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

news2024/11/22 20:40:25

前言

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

从目录看起

由于全文内容过多总共四百多页篇幅过多,没法全部给大家展示出来,在这里便给大家展示部分内容

第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应用。

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

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

相关文章

SAP开发环境ABAP的搭建(客户端和服务器),Developer Key和AccessKey的绕过方法

目录 一.前言 二.客户端GUI安装 1.下载好SAP GUI 750 2.解压后找到SAPGUISetup.exe 3.安装 4.安装完整教程 三.服务端搭建 1.安装VmWare虚拟机 2.下载虚拟机镜像 3.打开虚拟机 4.调整内存大小 5.启动虚拟机 四.创建程序 1.创建包 2.创建程序 3.Developer Key和A…

C语言——变参函数

一、定义 一般函数的参数列表是固定的,所以在调用时传入的实参的个数和格式必须和实参匹配;在函数式中,不需要关心实参,直接调用形参即可。 变参函数,就是参数的个数及类型都不确定的函数,常见变参函数如pr…

jenkins的slave节点构建java失败

背景: 主节点构建没问题的,为了缓解压力增加了个从节点,但是发现同个应用分配到从节点构建时报错,主节点构建就正常。但是我的从节点是把主节点克隆过去的, 理论环境配置java——maven啥都是一模一样才是。不理解。 …

Markdown基础语法:快速入门指南

什么是Markdown Markdown是一种轻量级的标记语言,它的目标是让文本内容更加易读、易写和易于转换成HTML等格式。Markdown语法简单、直观,适合用于写作、博客、笔记、文档等场景。Markdown最初由John Gruber和Aaron Swartz于2004年创建,现在已…

从手动实现web开发到借助IDEA实现web开发的具体流程分析,详细介绍webapp的目录结构和web站点的欢迎页面的设置

使用Tomcat手动实现WEB开发 实现静态的web应用(没有java小程序) 第一步:找到CATALINA_HOME\webapps目录(Tomcat服务器要求所有的web应用都要放到webapps目录下, 这样它才能找到你的web应用) 第二步:在CATALINA_HOME\webapps目录下新建一个oa的子目录(…

闭环控制里的采样周期和执行周期

运动控制对系统的实时性要求都非常高。所以大家可以看到运动控制总线的刷新周期越来越快,越来越短。今天我们讨论下实时性不高的总线会带来哪些问题和挑战,以及这种大延时总线如何解决实时性问题,运动控制实时性问题还可以参看下面的文章博客: 随动控制之跟随给定和跟随反…

Python一行命令搭建HTTP服务器并外网访问【内网穿透】

文章目录1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置4.公网访问测试5.结语转载自远程内网穿透的文章:【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透」 1…

20从零开始学Java之牛闪闪的for循环是怎么用的?

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在前面的文章中,壹哥给大家讲解了顺序结构、分支结构,接下来我们就来学习Java…

面试篇-Java输入输出三兄弟大比拼:IO、NIO、AIO对比分析

1、Java I/O发展史 Java IO(Input/Output)是Java语言中用于读写数据的API,它提供了一系列类和接口,用于读取和写入各种类型的数据。下面是Java IO发展史的简要介绍: JDK 1.0(1996年&#…

Android进阶宝典—事件冲突的解决方法

相信伙伴们在日常的开发工作中,一定会遇到事件冲突的问题,e.g. 一个页面当手指滑动的时候,会翻到下一页;点击的时候,需要响应页面中的元素点击事件,这个时候如果没有处理滑动事件,可能遇到的问题…

c++的多态

目录 1、多态 1.1多态的构成条件 1.2多态的好处 2、虚函数 2.1虚函数重写 2.2虚函数的默认参数 2.3纯虚函数重写 2.4抽象类 2.5虚析构,纯虚析构重写 3、重载、覆盖(重写)、隐藏(重定义)的对比 ​编辑 多态是c面向对象三大特性之一 程序调用函数时&#…

人人都是数据分析师-数据分析之数据图表可视化(下)

当前的BI报表、运营同学的汇报报告中数据图表大多为 表格、折线图、柱状图和饼图,但是实际上还有很多具有代表性的可视化图表,因此将对常见的可视化图表进行介绍,希望这些图表可视化方法能够更好的提供数据的可用性。 人人都是数据分析师-数…

QT网络通信-服务器(一)

目录 1、简介 2 、TCP通信流程 3、基于TCP通信所需要的类 4、QT端设计 4.1项目建立 4.2 TCP网络程序设计 4.2.1 QT界面设计 4.2.2 UI布局 4.2.3 控件重命名 5、widget.h 6、widget.c 1、简介 网络有TCP和UDP。本文主要通过QT完成TCP网络设计,通过ESP8266与单片…

JavaEE简单实例——一些基本操作

在配置类中配置页面解析器 之前我们使用页面解析器是在XML配置文件中使用的,但是当我们试用了纯注解式的整合之后,我们没有了配置文件,要如何去将之前我们在配置文件中编写的前端控制器,以及静态资源的释放这些功能配置添加到项目…

二叉排序树(二叉查找树)基本操作_20230417

二叉排序树(二叉查找树)基本操作_20230417 前言 二叉排序树首先是一颗二叉树,它不同于常规二叉树的地方在于,如果左子树不为空,那么左子树上所有结点的值都不大于根节点的值,如果右子树不为空&#xff0c…

从GPT-4、文心一言再到Copilot,AIGC卷出新赛道?

业内人都知道,上一周是戏剧性的,每一天,都是颠覆各个行业,不断 AI 化的新闻。 OpenAI发布GPT-4、百度发布文心一言、微软发布Microsoft 365 Copilot 三重buff叠加,打工人的命运可以说是跌宕起伏,命途多舛了…

pmp证书报考流程+pmp备考+pmp学习干货+pmp指南汇总

2023年共有4次PMP考试,分别是3月、5月、8月、11月,由于3月份考试不开放新报名,所以第一次备考PMP的同学可以选择参加5月份考试。那么,现在备考5月份PMP考试还来得及吗? 现在开始备考5月PMP考试,时间是非常…

Scrum

目录 1、Scrum: 敏捷里的3355: 什么是Scrum: Scrum的优点: Scrum的理论: Scrum的三大支柱: 透明性: 检视: 调整: 2、Scrum的角色简介: Scrum各角色…

【数据结构学习笔记 之 栈和队列】——上

前言:栈和队列是常用的数据结构之一,本文主要介绍有关栈的基本特性以及基本操作和一些经典的OJ题目,关于队列的介绍放到下篇。那么话不多说,让我们开始吧。 一、栈的基本知识 1. 栈的基本概念 栈是一种特殊的线性表&#xff0c…

同学在外包干了两年的点点点,24岁人就快废了

前言 简单的说下,我大学的一个同学,毕业后我自己去了自研的公司,他去了外包,快两年了我薪资、技术各个方面都有了很大的提升,他在外包干的这两年人都要废了,技术没一点提升,学不到任何东西&…