Java微服务与分布式的书,微服务分布式架构基础与实战(基于Spring Boot+Spring Cloud...)
前言
目前,Spring Boot+Spring Cloud架构已经成为Java程序员的必备技能之一,刚开始学习时看到琳琅满目的Spring全家桶,可能会感到无从下手。如果只了解微服务中的各知识点,而忽略了以微服务分布式架构的方式学习系统的架构顺序,初学者可能就不知道如何使用微服务构建分布式系统。为了使读……
第1章 微服务分布式架构设计原理
本章按照微服务分布式架构的顺序对其进行讲解,并以实例形式介绍如何编写分布式微服务的代码。每个微服务的架构都先从微服务的注册、微服务间的通信开始,然后编写每个微服务的持久化、缓存等内容。1.1 Java Web应用程序的发展历史Java Web应用程序的发展历史经历了以下几个过程。1.Servl……
【Java微服务与分布式的书,微服务分布式架构基础与实战(基于Spring Boot+Spring Cloud...)】第2章 分布式的注册中心
1.3节创建了第一个微服务程序,从1.1节中Dubbo+Zookeeper分布式服务框架可以看出,无论分布式服务架构还是分布式微服务架构,都需要注册中心来管理众多服务/微服务。当多个服务/微服务把自身的响应地址、服务内容等相关信息注册在注册中心上时,服务/微服务+注册中心所组成的架构就是分布式架构……
第3章 分布式的通信
2.4节中的实例已经获得了注册中心内其他服务的信息,此时可以直接通过HTTP使用HttpClient、OKHttp、CXF、UrlOpenConnection 等方式对接口进行调用。但当服务数目增多后,如果使用上述方式调用接口,调用接口部分的代码将过于频繁与烦琐,而调用接口的前期步骤是几乎相同的代码……
第4章 分布式的客户端负载均衡
第3章使用Spring Cloud Feign进行分布式之间的通信,不过一旦出现并发过高的情况,Feign就无法正常返回,需使用Fallback降级回退,将回退内容返回调用方。超时的熔断和降级回退可以解决无法正常返回的问题,但不能增加程序的并发负载能力,Spring Cloud使用Ribbon工具……
第5章 分布式的断路器
在第2章和第3章的实例中已经初步搭建了微服务的一个分布式程序,通过分布式的注册中心进行关联,并使用Feign工具进行通信,3.6节与3.7节使用Feign内置的Hystrix进行降级回退处理。但由于Feign内置的Hystrix给予用户的功能较少,所以需要整合Hystrix断路器完善分布式系统的保护……
第6章 微服务的异步线程池
5.8节通过Hystrix将请求的线程进行合并,简单介绍了Future线程返回类,本章详细介绍线程池与线程池返回之间的时间与关系。6.1 异步线程池在代码自上而下执行的过程中,若其中有一个动作是异步的,则可以不用关心异步线程中所处理的逻辑,代码会继续执行,但是异步线程池中的代码会单独执行。通常情……
第7章 微服务整合持久化数据源
经过前几章的介绍,已经可以初步搭建一套Spring Cloud+Spring Boot的分布式架构程序,主要包括分布式的注册中心、分布式的通信、分布式的断路器。虽然此时还没有深入分布式其他内容,但在分布式架构初具雏形时,可先使微服务整合数据源,以方便日后分布式程序的不断完善。在分布式架构初具雏形时……
第8章 微服务事务
当前事务中所有增删改查都执行成功后,事务会进行提交,所改动的数据生效。当前事务中所有增删改查的数据任意一条没有正常修改,当前事务会进行回滚,其他修改过的数据都不再生效,将会改成修改前的数据。微服务事务主要依靠7.4.9节中提到的@Transactional注解,本章将详细介绍。8.1 @Tran……
第9章 微服务的缓存与分布式的消息通信
第7章通过Spring Boot整合MySQL达到增删改查关系型数据库的目的,通过第8章对增删改查进行事务管理。但是关系型数据库在被大量并发调用时,性能堪忧。本章通过Redis 缓存与分布式通信解决高并发场景和大量数据的预读能力问题,总体提高了微服务的性能。9.1 RedisRedis 是一个开……
第10章 微服务的任务调度与分布式的任务调度
任务调度是指使程序在某个时间点做某件事,或者每隔某个时间点做某件事。例如,银行工作中有一个“跑批任务”,银行核心系统每天六点会与金融理财系统进行对账,双方各提交一份txt文件并查询两份文件是否有不一致之处,该业务要求的时间点为每天六点,即是靠任务调度来实现的。10.1 【实例】微服务整合任务调度……
第11章 微服务的文件上传与分布式文件管理
文件上传是一套应用程序开发的基本功能,本章将通过 Spring Boot 实现文件上传功能,从本地将文件上传至指定位置。本章还将通过FastDFS方案将文件分离到单独服务器进行统一管理,达到分布式文件管理的目的。11.1 文件上传/下载原理文件上传是指将文件转化成二进制数据,通过HTTP请求将二……
第12章 扩展与部署
微服务分布式架构的过程与本书的章节顺序基本相同,即先构建一个简易的微服务,然后将该微服务注册到注册中心上,再分别在该微服务上集成通信、断路器、负载均衡等基础功能,在微服务上进行持久化、缓存等操作,最后通过任务调度、异步线程、分布式通信、文件上传/下载等完善程序。本章对微服务分布式架构进行扩展与总结……
参考文献
[1] 汪云飞.Java EE开发的颠覆者Spring Boot实战[M].北京:电子工业出版社,2016.[2] 翟永超.Spring Cloud微服务实战[M].北京:电子工业出版社 2017.[3] 杨恩雄.疯狂Spring Cloud微服务架构实战[M].北京:电子工业出版社 2018.……
反侵权盗版声明
电子工业出版社依法对本作品享有专有出版权。任何未经权利人书面许可,复制、销售或通过信息网络传播本作品的行为;歪曲、篡改、剽窃本作品的行为,均违反《中华人民共和国著作权法》,其行为人应承担相应的民事责任和行政责任,构成犯罪的,将被依法追究刑事责任。为了维护市场秩序,保护权利人的合法权益,我社将依法查……
推荐阅读
- java|《深入理解Spring Cloud与微服务构建》第1章 微服务简介
- k8s|Kubernetes服务质量保证之配置容器资源limits和requests
- #|一、【SpringCloud】微服务与分布式架构
- K8s 上轻松搭建百万连接的 MQTT 服务
- iscsi设备的部署,使用2台服务器进行挂载测试(1/3)
- JAVA SQL注入测试
- 基于ansible在远程centos服务器docker环境安装kafka
- 90天Java---mybatis与mybatis plus-1
- 面试官灵魂三问(什么是SOA(什么是微服务?SOA和微服务有什么区别?))
- Java使用FreeMarker模版技术动态生成word实践