Java微服务架构实战 PDF 高清版

  • 更新时间:
  • 3615人关注
  • 点击下载

Java微服务架构实战》是一本关于Java相关的电子书资源,介绍了关于Java、微服务架构方面的内容,本书是由清华大学出版社出版,格式为PDF,资源大小56 MB,李兴华编写,目前豆瓣、亚马逊、当当、京东等综合评分为:9.1分,我们还提供了样章在线阅读,一起来看下具体内容。

资源详情相关推荐
《Java微服务架构实战》封面
  • 在线阅读
  • 出版社:清华大学出版社
  • 作者:李兴华
  • 大小:56 MB
  • 类别:Java
  • 热度:902
  • Java微服务实战
  • Java微服务
  • 《名师讲坛——Java微服务架构实战(SpringBoot SpringCloud Docker RabbitMQ)》内容特色如下。

    (1)资深Java讲师进行技术剖析,全面把握学习命脉,问题分析一针见血。
    (2)140个课程案例,完美演示微服务的方方面面。
    (3)基于Maven实现项目管理,与真实项目完美衔接。
    (4)丰富的架构图示说明,轻松掌握微架构设计方案。
    (5)手把手步骤学习法,轻松掌握微架构开发。
    (6)OAuth使用分析与代码实现,掌握企业级RPC认证与授权解决方案。
    (7)微服务与Docker虚拟化技术结合使用,轻松实现云服务。

    内容简介

    《名师讲坛——Java微服务架构实战(SpringBoot SpringCloud Docker RabbitMQ)》一共15章,核心内容为SpringBoot、SpringCloud、Docker、RabbitMQ消息组件。其中,SpringBoot是SpringMVC技术的延伸,使用它进行程序开发会更简单,服务整合也会更容易。SpringCloud是当前微架构的核心技术方案,属于SpringBoot的技术延伸,它可以整合云服务,基于RabbitMQ和GITHUB进行微服务管理。除此以外,本书还重点分析了OAuth统一认证服务的应用。

    作者简介

    李兴华,著名软件技术讲师,系统架构师,有多年的软件教学经验,技术研究与讲解的主要方向为数据库、编程语言、Web开发、框架服务、系统架构、手机移动开发、大数据等。从2008年开始进行图书创作,出版过Oracle、Android、Java、Python、Web编程等10多本畅销书籍,总销量近50万册,受到广大读者的一致好评。

    目录

    • 第一部分 SpringBoot篇
    • 第1章 SpringBoot编程起步 3
    • 1.1 传统开发中痛的领悟 3
    • 1.2 SpringBoot简介 4
    • 1.3 SpringBoot编程起步 4
    • 1.4 本章小结 8
    • 第2章 SpringBoot程序开发 9
    • 2.1 建立统一父pom管理 9
    • 2.2 SpringBoot程序测试 12
    • 2.3 SpringBoot注解分析 13
    • 2.4 配置访问路径 14
    • 2.5 SpringBoot调试 16
    • 2.6 使用内置对象 16
    • 2.7 使用Jetty容器 18
    • 2.8 配置环境属性 18
    • 2.9 读取资源文件 20
    • 2.10 整合Spring配置 21
    • 2.11 SpringBoot项目打包发布 24
    • 2.12 profile配置 25
    • 2.13 本章小结 27
    • 第3章 Thymeleaf模板渲染 28
    • 3.1 Thymeleaf简介 28
    • 3.2 Thymeleaf编程起步 29
    • 3.3 Thyemeleaf静态资源 31
    • 3.4 读取资源文件 32
    • 3.5 路径处理 33
    • 3.6 内置对象操作支持 35
    • 3.7 对象输出 36
    • 3.8 页面逻辑处理 38
    • 3.9 数据迭代处理 39
    • 3.10 包含指令 42
    • 3.11 Thymeleaf数据处理 43
    • 3.12 本章小结 45
    • 第4章 SpringBoot与Web应用 46
    • 4.1 配置Tomcat运行 46
    • 4.2 https安全访问 48
    • 4.3 数据验证 50
    • 4.4 配置错误页 53
    • 4.5 全局异常处理 54
    • 4.6 文件上传 56
    • 4.6.1 基础上传 56
    • 4.6.2 上传文件限制 58
    • 4.6.3 上传多个文件 59
    • 4.7 拦截器 61
    • 4.8 AOP拦截器 62
    • 4.9 本章小结 64
    • 第5章 SpringBoot服务整合 65
    • 5.1 SpringBoot整合数据源 65
    • 5.1.1 SpringBoot整合C3P0数据库连接池 65
    • 5.1.2 SpringBoot整合Druid数据库连接池 68
    • 5.2 SpringBoot整合ORM开发框架 69
    • 5.2.1 SpringBoot整合MyBatis开发框架 69
    • 5.2.2 SpringBoot整合JPA开发框架 72
    • 5.2.3 事务处理 75
    • 5.3 SpringBoot整合消息服务组件 77
    • 5.3.1 SpringBoot整合ActiveMQ消息组件 77
    • 5.3.2 SpringBoot整合RabbitMQ消息组件 79
    • 5.3.3 SpringBoot整合Kafka消息组件 82
    • 5.4 SpringBoot整合Redis数据库 84
    • 5.4.1 SpringBoot整合RedisTemplate操作Redis 85
    • 5.4.2 Redis对象序列化操作 86
    • 5.4.3 配置多个RedisTemplate 88
    • 5.5 SpringBoot整合安全框架 92
    • 5.5.1 SpringBoot整合Shiro开发框架 93
    • 5.5.2 SpringBoot基于Shiro整合OAuth统一认证 98
    • 5.6 SpringBoot整合邮件服务器 103
    • 5.7 定时调度 105
    • 5.8 Actuator监控 107
    • 5.9 本章小结 110
    • 第二部分 SpringCloud篇
    • 第6章 SpringCloud简介 113
    • 6.1 RPC分布式开发技术 113
    • 6.2 RPC实现技术 114
    • 6.3 SpringCloud技术架构 117
    • 6.4 本章小结 120
    • 第7章 SpringCloud与Restful 121
    • 7.1 搭建SpringCloud项目开发环境 121
    • 7.2 Restful基础实现 122
    • 7.2.1 建立公共API模块:mldncloud-api 124
    • 7.2.2 建立部门微服务:mldncloud-dept- service-8001 125
    • 7.2.3 建立Web消费端:mldncloud- consumer-resttemplate 129
    • 7.3 Restful接口描述 132
    • 7.4 SpringSecurity安全访问 134
    • 7.4.1 微服务安全验证 135
    • 7.4.2 消费端安全访问 136
    • 7.4.3 StatelessSession 137
    • 7.4.4 安全配置模块 138
    • 7.5 本章小结 140
    • 第8章 Eureka注册服务 141
    • 8.1 Eureka简介 141
    • 8.2 定义Eureka服务端 142
    • 8.3 向Eureka中注册微服务 144
    • 8.4 Eureka服务信息 145
    • 8.5 Eureka发现管理 147
    • 8.6 Eureka安全配置 149
    • 8.7 Eureka-HA机制 150
    • 8.8 Eureka服务发布 153
    • 8.9 本章小结 155
    • 第9章 SpringCloud服务组件 156
    • 9.1 Ribbon负载均衡组件 156
    • 9.1.1 Ribbon基本使用 156
    • 9.1.2 Ribbon负载均衡 158
    • 9.1.3 Ribbon负载均衡策略 161
    • 9.2 Feign远程接口映射 163
    • 9.2.1 Feign接口转换 163
    • 9.2.2 Feign相关配置 166
    • 9.3 Hystrix熔断机制 167
    • 9.3.1 Hystrix基本使用 168
    • 9.3.2 失败回退 169
    • 9.3.3 HystrixDashboard 172
    • 9.3.4 Turbine聚合监控 174
    • 9.4 Zuul路由网关 176
    • 9.4.1 Zuul整合微服务 177
    • 9.4.2 Zuul访问过滤 179
    • 9.4.3 Zuul路由配置 181
    • 9.4.4 Zuul服务降级 183
    • 9.4.5 上传微服务 185
    • 9.5 本章小结 190
    • 第10章 SpringCloudConfig 191
    • 10.1 SpringCloudConfig简介 191
    • 10.2 配置SpringCloudConfig服务端 192
    • 10.3 SpringCloudConfig客户端抓取配置信息 195
    • 10.4 单仓库目录匹配 197
    • 10.5 多仓库自动匹配 199
    • 10.6 仓库匹配模式 200
    • 10.7 密钥加密处理 200
    • 10.8 KeyStore加密处理 201
    • 10.9 SpringCloudConfig高可用 203
    • 10.10 SpringCloudBus服务总线 205
    • 10.11 本章小结 210
    • 第11章 SpringCloudStream 211
    • 11.1 SpringCloudStream简介 211
    • 11.2 Stream生产者 212
    • 11.3 Stream消费者 215
    • 11.4 自定义消息通道 216
    • 11.5 分组与持久化 218
    • 11.6 RoutingKey 219
    • 11.7 本章小结 220
    • 第12章 SpringCloudSleuth 221
    • 12.1 SpringCloudSleuth简介 221
    • 12.2 搭建SpringCloudSleuth微服务 222
    • 12.3 Sleuth数据采集 224
    • 12.4 本章小结 229
    • 第13章 OAuth认证管理 230
    • 13.1 SpringCloud与OAuth 230
    • 13.2 搭建OAuth基础服务 232
    • 13.3 使用数据库保存客户信息 235
    • 13.4 使用数据库保存微服务认证信息 240
    • 13.5 建立访问资源 245
    • 13.6 使用Redis保存token令牌 246
    • 13.7 SpringCloud整合OAuth 248
    • 13.8 本章小结 252
    • 第三部分 微服务辅助篇
    • 第14章 RabbitMQ消息组件 255
    • 14.1 RabbitMQ简介 255
    • 14.2 配置Erlang开发环境 257
    • 14.3 安装并配置RabbitMQ 258
    • 14.4 使用Java访问RabbitMQ 259
    • 14.4.1 创建消息生产者 261
    • 14.4.2 创建消息消费者 262
    • 14.4.3 消息持久化 264
    • 14.4.4 虚拟主机 264
    • 14.5 发布订阅模式 265
    • 14.5.1 广播模式 265
    • 14.5.2 直连模式 267
    • 14.5.3 主题模式 269
    • 14.6 Spring整合RabbitMQ 270
    • 14.7 镜像队列 273
    • 14.8 本章小结 276
    • 第15章 Docker虚拟化容器 277
    • 15.1 Docker简介 277
    • 15.2 Docker安装 279
    • 15.3 Docker配置与使用 280
    • 15.3.1 获取并使用Docker镜像 280
    • 15.3.2 Docker镜像 281
    • 15.3.3 Docker容器 282
    • 15.4 Docker镜像管理 284
    • 15.4.1 通过文件保存Docker镜像 284
    • 15.4.2 DockerHub 285
    • 15.4.3 构建Docker镜像 286
    • 15.5 微服务与Docker 287
    • 15.5.1 使用Docker发布微服务 287
    • 15.5.2 使用DockerCompose编排顺序 291
    • 15.6 本章小结 293
    展开阅读
    精选笔记1:java微服务架构雪崩效应详解

    23小时32分钟前回答

    前言

    微服务化产品线,每一个服务专心于自己的业务逻辑,并对外提供相应的接口,看上去似乎很明了,其实还有很多的东西需要考虑,比如:服务的自动扩充,熔断和限流等,随着业务的扩展,服务的数量也会随之增多,逻辑会更加复杂,一个服务的某个逻辑需要依赖多个其他服务才能完成。

    一但一个依赖不能提供服务很可能会产生雪崩效应,最后导致整个服务不可访问。

    微服务之间进行rpc或者http调用时,我们一般都会设置调用超时,失败重试等机制来确保服务的成功执行,看上去很美,如果不考虑服务的熔断和限流,就是雪崩的源头。

    假设我们有两个访问量比较大的服务A和B,这两个服务分别依赖C和D,C和D服务都依赖E服务

    了解java架构之微服务架构—雪崩效应

    A和B不断的调用C,D处理客户请求和返回需要的数据。当E服务不能供服务的时候,C和D的超时和重试机制会被执行

    了解java架构之微服务架构—雪崩效应

    由于新的调用不断的产生,会导致C和D对E服务的调用大量的积压,产生大量的调用等待和重试调用,慢慢会耗尽C和D的资源比如内存或CPU,然后也down掉。

    了解java架构之微服务架构—雪崩效应

    A和B服务会重复C和D的操作,资源耗尽,然后down掉,最终整个服务都不可访问。

    了解java架构之微服务架构—雪崩效应

    常见的导致雪崩的情况有以下几种:

    • 程序bug导致服务不可用,或者运行缓慢
    • 缓存击穿,导致调用全部访问某服务,导致down掉
    • 访问量的突然激增。
    • 硬件问题,这感觉只能说是点背了⊙︿⊙。

    虽然雪崩效应的产生千万条,保证服务的不挂机,和流畅运行是我们不可推卸的责任,对应雪崩效应还是有很多保护方案的。

    服务的横向扩充

    现在我们可以利用很多工具来保证服务不会挂掉,然后流量比较大的时候,可以横向扩充服务来保证业务的流畅。比如我们最常使用k8s,能保证服务的运行状态,也可以让服务自动的横向扩充。对于用户访问量的激增情况这样处理还是很不错的,但是,横向扩充也是有尽头的,如果在一定环境下E服务的响应时间过长,依然有可能导致雪崩效应的产生。

    限流

    限制客户端的调用来达到限流的做法是很常见的,比如,我们限制每秒最大处理200个请求,超过个数量直接拒绝请求。常见的算法如令牌桶算法

    以一定的速度在桶里放令牌,当客户端请求服务的时候,要先从桶里得到令牌,才能被处理,如果桶里的令牌用完了,则拒绝访问。

    了解java架构之微服务架构—雪崩效应

    熔断

    在客户端控制对依赖的访问,如果调用的依赖不可用时,则不再调用,直接返回错误,或者降级处理。开源的库比如hystrix-go,也是我接下来要写的源码分析的一个库。很好的实现了熔断和降级的功能。他的主要思想是,设置一些阀值,比如,最大并发数,错误率百分比,熔断尝试恢复时间等。能过这些阀值来转换熔断器的状态:

    • 关闭状态,允许调用依赖
    • 打开状态,不允许调用依赖,直接返回错误,或者调用fallback
    • 半开状态,根据熔断尝试恢复时间来开启,允许调用依赖,如果调用成功则关闭失败则继续打开

    了解java架构之微服务架构—雪崩效应

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

    展开阅读

    Java相关资源

    • Java高并发编程详解:多线程与架构设计

      Java高并发编程详解:多线程与架构设计

      《Java高并发编程详解》立足于线程源码剖析,从基础入手,逐层渐进深入,环环紧扣,针对技术细节进行了细致归纳,在解读源码的时候又引入了优秀的架构设计。

      大小:120.77 MBJava

      立即下载
    • 企业级Java EE架构设计精深实践

      企业级Java EE架构设计精深实践

      本书全面、深入介绍了企业级Java EE设计的相关内容,内容涵盖了Java EE架构设计的常见问题。语言简洁,思路清晰,示例丰富、完整,适合具有一定Java基础的读者阅读,尤其适合从事企业级Java EE软件架构和设计的人员阅读

      大小:84.3 MBJava

      立即下载
    • Java高手真经系统架构卷:Java Web系统设计与架构

      Java高手真经系统架构卷:Java Web系统设计与架构

      Java高手真经:JavaWeb系统设计与架构(系统架构卷UML建模+设计模式+面向服务架构) 作者:刘中兵编著 出版时间:2009-12-1 【图书简介】 本书讲解JavaWeb系统设计与架构,包括Java与UML建模技术、Java设计模式、面向服务架构SOA、面向资源架构ROA、面向云架构COA,这5部分内容层层递进,涵盖了JavaEE开发中的各种设计与架构技术。讲解的主要内容包括如下。Java与UML建模:讲解UML建模的5类10种图,包括用例图、静态图(类图、对象图、包图)、实现图(组件图、

      大小:252.34MBJava

      立即下载

    学习笔记

    5小时44分钟前回答

    java学生信息管理系统MVC架构详解

    本文实例为大家分享了java学生信息管理系统MVC架构,供大家参考,具体内容如下 一、项目结构 学生信息管理系统分三层进行实现。student.java主要提供数据,cotroller.java的功能是绑定试图和计算数据。Stuview.java用于单一的用来显示数据。 二、源码 1.1、Student 类 /* * @FileName: Student.class * @version:1.0 * @author:nazi * 描述:模型层 * */ import java.io.Serializable; /* * Summary: Student类实现序列化接口,用于对象的保存 * @author:nazi * @version:1.0 * */ public class Student implements Serializable { //序列化id private static final long serialVersionUID = 9088453456517873574L; int num; String name; String sex; int age; float grade; public Student(int num ,String nameString,String se……

    16小时35分钟前回答

    java程序员就是java架构师吗

    所谓java架构师,其实就是精通框架的开发能手。这个职位题主一看有java限定就应该明白,这是一个开发职位。而且再结合有些单位把框架混说成架构。所以,你一开始就应该明白这根本不是一个让你做架构设计的岗位,这就是一个开发岗位。java架构面向的是java框架,类,对象,使用的设计模式,是对java程序的设计,包括web程序和后台程序。系统架构师涉及的面更加宏观一些,面向的服务(java程序,c程序),中间件(apache,memcache,数据库),操作系统,硬件设备,网络环境等,使用的是分布式,并行计算,集群,高可用,ha,负载(网络负载,应用负载)。 1、软件工程师一般指从事软件开发职业……

    16小时40分钟前回答

    java架构师要学算法吗

    java架构师需要学算法,根据不同的角色,你需要掌握各方面的知识,初步统计,Java架构师学习路线中应该包括这些内容: 1、jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池; 2、Java反射技术,Java多线程同步异步,Java各种集合对象的实现原理; 3、熟练使用各种数据结构和算法,数组、哈希、链表、排序树;熟练使用linux操作系统,熟悉tcp协议; 4、分布式存储系统nfs、fastdfs、tfs、Hadoop,分布式缓存技术memcached、redis,以及数据库的设计能力。 想成为架构师不是懂了一大堆技术就可以了,这些是解决问题的基础、是工具,不懂这些怎么去提解决方案呢?这是成……