《SpringBoot揭秘:快速构建微服务体系》目录—导读

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 随着微服务(Micro Service)理念的盛行,一个流行的概念也随之诞生—微框架(Micro Framework),而其中最耀眼的,当属SpringBoot。 虽然Dropwizard是公认的最早的微框架,但SpringBoot“青出于蓝而胜于蓝”,背靠Spring框架衍生出来的整个生态体系,无论是从“出身”,还是社区的支撑上,SpringBoot都是微框架选型的不二之选。


71df4a4bff37ab53b4cdbf946a0748a2addea8f4

前  言

为什么写这本书
忘了是2015年的哪一天,只记得几个朋友跟友商的其他几个做技术的朋友吃饭,并简单做下技术交流。席间,友商的几位朋友对SpringBoot框架实施微服务很感兴趣,交谈甚欢之际,我无意间开玩笑说:“是不是该考虑写一本SpringBoot的书?”钟伦甫(原淘宝聚石)同学随口一句,“你倒是写啊!”,得,以行践言吧,谁让你把话说出去了呢?
当然,朋友的“热切期盼”只是其一,微服务盛行也是本书写作的一个契机, 希望本书成为国内第一本微服务相关的原创图书,借此跟大家分享我对微服务的浅薄理解,并围绕SpringBoot微框架打造一套微服务体系可能的探索方向,权作抛砖引玉。如果不同的思想可以借此激荡和碰撞形成更多共鸣,则吾之幸甚。
因工作繁忙,只能抽取零碎时间躬耕于晨曦和月光之下,经点滴积累,才终成此书,希望大家阅读愉快。
本书的主要内容和特色
本书以介绍微服务的基本概念开篇,逐步引出Java平台下打造微服务的利器—SpringBoot微框架。书中从SpringBoot微框架的“出身”开始,循序渐进,一步步为大家剖析SpringBoot微框架的设计理念和原理,并对框架的重点功能和模块进行了逐一讲解。
当然,这还只是“前戏”,本书最精彩的部分在于,在大家对SpringBoot微框架已经有了基本的认识之后,我们将一起探索如何基于SpringBoot微框架打造一套完备的微服务体系。因为如果没有平台化体系化的基础支撑,空谈微服务将无太大意义。
SpringBoot微框架依托Java平台和Spring框架,拥有良好的可扩展性和可定制性,为了说明这一点,我们单独开辟了一章内容,为大家介绍如何使用Scala和SpringBoot微框架来开发和交付相应的微服务,并且围绕Scala和SpringBoot如何打造相应的工具,技术产品等支持来提高相应微服务的交付效率。
最后我会与大家一起对SpringBoot微框架的相关内容进行回顾和展望,以期温故而知新。
本书总体上可以总结为三个关键词,“框架、体系、生态”,三者循序渐进,相辅相成,在使用SpringBoot微框架打造自己特色的微服务体系和技术生态之时,希望大家记住这三个关键词。
本书面向的读者
本书希望面向的读者当然是那些对SpringBoot微框架感兴趣的同学,如果你想了解SpringBoot微框架,并且尝试进一步深入定制该框架以满足自己团队和公司的需要,也希望会对你有所启发。
除此之外还包括:
Java平台上的广大研发同学,可以借此书了解业界微服务相关的最新动态。
其他平台上的广大研发同学,可借此书“管中窥豹”,了解微服务的一般体系和生态建设,对比并引入自身的技术和微服务体系建设之中。
脱离技术一线已久的技术负责人。
如何阅读本书
本书采用循序渐进的形式编写,所以顺序阅读是推荐的阅读方式。
勘误和资源
鉴于一家之言且编撰仓促,难免会有所纰漏,观点有失偏颇,所以,我在github网站上专门新建了一个issue项目,如果大家在阅读此书之后发现有哪些错误和疑问,或者改进建议,可以在此项目上新建issue来表达自己的观点和建议。如果时间不充裕,我会适时地选择性给予答复,当然,更希望大家可以通过issue展开讨论,互相切磋和解答疑问 。
致谢
除了最初的一句戏言,钟伦甫同学也是本书的第一位读者,帮助审稿并提出很多建议,所以,本书得以出版,第一需要感谢的就是钟伦甫同学。
其次,我要感谢华章出版社的杨福川和李艺,福川兄在接到我的出版意向之后,快速地跟进和落实,在本书初稿编写完成时马上着手出版,诸位得以在2016年上半年就手捧此书,皆需感谢福川兄的重点关注和推进。
最后要感谢我的父母,感谢他们把我带到这个世界上并让我做自己想做和要做的事情。

目  录
前言
第1章 了解微服务
1.1 什么是微服务
1.2 微服务因何而生
1.3 微服务会带来哪些好处
1.3.1 独立,独立,还是独立
1.3.2 多语言生态
1.4 微服务会带来哪些挑战
1.5 本章小结
第2章 饮水思源:回顾与探索Spring框架的本质
2.1 Spring框架的起源
2.2 Spring IoC其实很简单
2.3 了解一点儿JavaConfig
2.3.1 那些高曝光率的Annotation
2.4 本章小结
第3章 SpringBoot的工作机制
3.1 SpringBoot初体验
3.2 @SpringBootApplication背后的秘密
3.2.1 @Configuration创世纪
3.2.2 @EnableAutoConfiguration的功效
3.2.3 可有可无的@ComponentScan
3.3 SpringApplication:SpringBoot程序启动的一站式解决方案
3.3.1 深入探索SpringApplication执行流程
3.3.2 SpringApplicationRunListener
3.3.3 ApplicationListener
3.3.4 ApplicationContextInitializer
3.3.5 CommandLineRunner
3.4 再谈自动配置
3.4.1 基于条件的自动配置
3.4.2 调整自动配置的顺序
3.5 本章小结
第4章 了解纷杂的spring-boot-starter
4.1 应用日志和spring-boot-starter-logging
4.2 快速Web应用开发与spring-boot-starter-web
4.2.1 项目结构层面的约定
4.2.2 SpringMVC框架层面的约定和定制
4.2.3 嵌入式Web容器层面的约定和定制
4.3 数据访问与spring-boot-starter-jdbc
4.3.1 SpringBoot应用的数据库版本化管理
4.4 spring-boot-starter-aop及其使用场景说明
4.4.1 spring-boot-starter-aop在构建spring-boot-starter-metrics自定义模块中的应用
4.5 应用安全与spring-boot-starter-security
4.5.1 了解SpringSecurity基本设计
4.5.2 进一步定制spring-boot-starter-security
4.6 应用监控与spring-boot-starter-actuator
4.6.1 自定义应用的健康状态检查
4.6.2 开放的endpoints才真正“有用”
4.6.3 用还是不用,这是个问题
4.7 本章小结
第5章 SpringBoot微服务实践探索
5.1 使用SpringBoot构建微服务
5.1.1 创建基于Dubbo框架的SpringBoot微服务
5.1.2 使用SpringBoot快速构建Web API
5.1.3 使用SpringBoot构建其他形式的微服务
5.2 SpringBoot微服务的发布与部署
5.2.1 spring-boot-starter的发布与部署方式
5.2.2 基于RPM的发布与部署方式
5.2.3 基于Docker的发布与部署方式
5.3 SpringBoot微服务的注册与发现
5.4 SpringBoot微服务的监控与运维
5.4.1 推还是拉,这一直是个问题
5.4.2 从局部性触发式报警到系统性智能化报警
5.5 SpringBoot微服务的安全与防护
5.6 SpringBoot微服务体系的脊梁:发布与部署平台
5.7 本章小结
第6章 SpringBoot与Scala
6.1 使用Maven构建和发布基于SpringBoot的Scala应用
6.1.1 进一步简化基于Maven的Scala项目创建
6.1.2 进一步简化基于Scala的Web API开发
6.2 使用SBT构建和发布基于SpringBoot的Scala应用
6.2.1 探索基于SBT的SpringBoot应用开发模式
6.2.2 探索基于SBT的SpringBoot应用发布策略
6.3 本章小结
第7章 SpringBoot总结与展望

相关文章
|
14天前
|
运维 监控 Java
为何内存不够用?微服务改造启动多个Spring Boot的陷阱与解决方案
本文记录并复盘了生产环境中Spring Boot应用内存占用过高的问题及解决过程。系统上线初期运行正常,但随着业务量上升,多个Spring Boot应用共占用了64G内存中的大部分,导致应用假死。通过jps和jmap工具排查发现,原因是运维人员未设置JVM参数,导致默认配置下每个应用占用近12G内存。最终通过调整JVM参数、优化堆内存大小等措施解决了问题。建议在生产环境中合理设置JVM参数,避免资源浪费和性能问题。
37 3
|
2月前
|
弹性计算 持续交付 API
构建高效后端服务:微服务架构的深度解析与实践
在当今快速发展的软件行业中,构建高效、可扩展且易于维护的后端服务是每个技术团队的追求。本文将深入探讨微服务架构的核心概念、设计原则及其在实际项目中的应用,通过具体案例分析,展示如何利用微服务架构解决传统单体应用面临的挑战,提升系统的灵活性和响应速度。我们将从微服务的拆分策略、通信机制、服务发现、配置管理、以及持续集成/持续部署(CI/CD)等方面进行全面剖析,旨在为读者提供一套实用的微服务实施指南。
|
1月前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
131 5
|
1月前
|
监控 安全 持续交付
构建高效微服务架构:策略与实践####
在数字化转型的浪潮中,微服务架构凭借其高度解耦、灵活扩展和易于维护的特点,成为现代企业应用开发的首选。本文深入探讨了构建高效微服务架构的关键策略与实战经验,从服务拆分的艺术到通信机制的选择,再到容器化部署与持续集成/持续部署(CI/CD)的实践,旨在为开发者提供一套全面的微服务设计与实现指南。通过具体案例分析,揭示如何避免常见陷阱,优化系统性能,确保系统的高可用性与可扩展性,助力企业在复杂多变的市场环境中保持竞争力。 ####
45 2
|
1月前
|
弹性计算 Kubernetes API
构建高效后端服务:微服务架构的深度剖析与实践####
本文深入探讨了微服务架构的核心理念、设计原则及实现策略,旨在为开发者提供一套系统化的方法论,助力其构建灵活、可扩展且易于维护的后端服务体系。通过案例分析与实战经验分享,揭示了微服务在提升开发效率、优化资源利用及增强系统稳定性方面的关键作用。文章首先概述了微服务架构的基本概念,随后详细阐述了其在后端开发中的应用优势与面临的挑战,最后结合具体实例,展示了如何从零开始规划并实施一个基于微服务的后端项目。 ####
|
2月前
|
监控 持续交付 API
深入理解微服务架构:构建高效、可扩展的系统
深入理解微服务架构:构建高效、可扩展的系统
53 3
|
2月前
|
消息中间件 监控 安全
构建高效微服务架构:最佳实践与挑战
在现代软件开发中,微服务架构因其高度的可扩展性、灵活性和敏捷性而受到青睐。本文深入探讨了构建高效微服务架构的关键策略,包括服务的划分、通信机制、数据管理、部署与监控等方面的最佳实践。同时,文章也分析了在实施过程中可能遇到的挑战,如服务间的依赖管理、数据一致性问题、安全考量及性能优化等,并提出了相应的解决方案。通过实际案例分析,本文旨在为开发者提供一套实用的指南,帮助他们在构建微服务系统时能够有效规避风险,提升系统的健壮性和用户体验。
|
2月前
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
57 1
|
2月前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
148 6
|
2月前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
56 1