奇迹小说
微服务从小白到专家——Spring Cloud和Kubernet

微服务从小白到专家——Spring Cloud和Kubernet

作者: 姚秋辰,张昕,卿睿

32.20万13人 正在读

已完结现代当代当代文学
作品简介

《微服务从小白到专家——Spring Cloud和Kubernetes实战》源码以Spring Boot 2.2.x、Spring Cloud Hoxton和Kubernetes 1.19.2为基础,从Spring Boot单体应用的搭建,到Spring Cloud微服务架构升级,再到使用Docker和Kubernetes容器编排技术做容器化改造,由浅入深、逐步讲解,使读者全面掌握主流微服务架构和容器编排方案。本书共22章,分为三个部分。第一部分,讲解Spring Boot的核心功能和底层原理,手把手带读者搭建一个基于Spring Boot的优惠券平台单体应用系统。第二部分,讲解Spring Cloud微服务技术的应用,涵盖了Spring Cloud Netflix和Spring Cloud阿里巴巴两大组件库的核心组件,在项目实战环节,将Spring Cloud微服务技术应用到优惠券项目中,让读者亲身体验从单体应用升级为微服务架构的过程。第三部分,深入讲解Docker容器技术和Kubernetes容器编排技术的核心功能,并对优惠券项目做容器化改造。本书紧扣实战、学练结合,适合具备一定J

目录 (444章)
倒序
正文
第1章热身运动1.1准备工作1.1.1安装JDK1.1.2安装IDE1.1.3安装Maven1.1.4安装Postman1.2JavaWeb开发的进化史1.2.1应用服务器1.2.2青铜Servlet1.2.3铂金SpringMVC1.2.4王者SpringBoot第2章SpringBoot介绍2.1SpringBoot的前尘往事2.1.1SpringFramework(1)2.1.1SpringFramework(2)2.1.2SpringBoot2.2SpringBoot的设计理念2.3SpringBoot的核心功能2.3.1易于使用的依赖管理Starter2.3.2约定大于配置的AutoConfiguration2.3.3优雅灵活的配置管理Properties2.3.4简单明了的管理工具Actuator2.3.5方便快捷的内置容器EmbeddedContainer第3章SpringBoot实战3.1.1利用SpringInitializr创建项目3.1.2项目结构3.1.3在项目中添加Starter3.1.4偷懒神器lombok3.2.1SpringBoot项目编译打包3.2.2运行SpringBoot项目3.3.1日志框架3.3.2Log4J23.3.3Logback3.3.4Slf4j3.4数据访问3.4.1访问关系型数据库(1)3.4.1访问关系型数据库(2)3.4.1访问关系型数据库(3)3.4.1访问关系型数据库(4)3.4.1访问关系型数据库(5)3.4.1访问关系型数据库(6)3.4.1访问关系型数据库(7)3.4.2实现优惠券模板模块DAO层3.4.3实现用户领券模块DAO层3.4.4使用key-valuestore实现缓存3.5.1消息系统的作用3.5.2消息系统的两种模式3.5.3集成RabbitMQ3.5.4集成Kafka3.6应用安全管理3.6.1Authentication用户身份鉴定3.6.2Authorization用户鉴权3.6.3OAuth2.03.6.4SpringSecurity3.7定时任务3.7.1Quartz3.7.2SpringBatch3.8SpringBoot项目测试第4章微服务与SpringCloud4.1.1微服务架构的特点4.1.2一线大厂为什么采用微服务架构4.1.3微服务架构对系统运维的挑战4.2.1领域模型4.2.2计算密集型业务和I/O密集型业务4.2.3区分高频、低频业务场景和突发流量4.2.4规划业务主链路4.3.1业界主流服务治理框架一览4.3.2微服务框架的选型建议4.4.1SpringCloud简介4.4.2SpringCloud和SpringBoot的关系4.5.1SpringCloud的整体架构4.5.2SpringCloud的子项目4.5.3Netflix组件库4.5.4Alibaba组件库4.6.1技术架构选型4.6.2SpringCloud组件选型与版本第5章使用Eureka实现服务治理5.1什么是服务治理5.2SpringCloud中常用的注册中心5.3.1了解CAP定理5.3.2高并发应用在CAP中的偏向性5.4.1服务注册5.4.2服务发现5.4.3服务续约和服务下线5.4.4服务剔除5.4.5服务自保5.5.1创建项目结构5.5.2修改host文件5.5.3引入Maven依赖项5.5.4创建项目启动类5.5.5为注册中心添加配置5.6coupon-template-service微服务架构升级5.6.1添加依赖项5.6.2创建启动类5.6.3添加配置项5.6.4运行项目5.7改造coupon-calculator5.8.1添加依赖项和配置项5.8.2声明RestTemplate5.8.3改造findCoupon()方法——RestTemplate.exchange函数的用法5.8.4改造requestCoupon()方法——getForObject函数的用法5.8.5改造placeOrder()方法5.8.6启动项目并验证服务注册5.9Eureka中的其他配置参数6.1什么是Nacos6.2Nacos的核心功能6.2.1服务注册、服务发现与健康检测6.2.2配置管理6.3Nacos下载与安装6.4.1Nacos与SpringCloud的集成6.4.2Nacos控制台6.4.3Nacos实现配置管理6.4.4Nacos实现服务注册与服务发现第7章使用Ribbon实现负载均衡7.1什么是负载均衡7.2了解Ribbon7.3.1Ribbon内置的负载均衡策略7.3.2各个负载均衡器适用的业务场景7.3.3Ribbon的IRule扩展接口7.4IPing机制7.4.1了解IPing机制7.4.2Ribbon内置的IPing策略类7.5微服务项目架构升级7.5.1添加Ribbon依赖项7.5.2添加@LoadBalancer注解7.5.3修改getUrl()方法7.5.4配置Ribbon负载均衡策略第8章使用OpenFeign实现服务间调用8.1.1什么是Feign8.1.2Feign的工作流程8.1.3Feign对请求和响应的压缩8.2.1添加依赖项8.2.2开启Feign注解支持8.2.3定义Feign接口8.2.4替换RestTemplate8.2.5Feign与Ribbon的超时与重试配置8.2.6Feign的日志配置8.2.7配置请求和响应的压缩参数第9章使用Hystrix实现服务间容错9.1.1什么是Hystrix9.1.2服务雪崩9.1.3服务雪崩的解决方案9.2.1服务降级9.2.2服务熔断9.2.3Hystrix如何切换断路器的开关9.3.1添加依赖项和配置项9.3.2在Feign接口上指定降级类9.3.3为特定方法指定降级逻辑9.3.4设置全局熔断参数9.3.5为指定方法设置超时时间9.3.6隔离机制的配置项9.3.7使用@CacheResult缓存注解9.3.8开放Actuator端点9.4.1什么是Turbine9.4.2添加Turbine子项目9.4.3创建启动类9.4.4指定需要监控的服务名称9.5.1什么是HystrixDashboard9.5.2添加HystrixDashboard项目9.5.3创建配置项和启动类9.6启用HystrixDashboard观察服务状态10.1服务容错10.2.1什么是Sentinel10.2.2Sentinel的核心功能10.3Sentinel控制台10.4Sentinel与SpringCloud的集成10.5使用Sentinel实现降级控制10.6使用Sentinel实现限流控制10.7Sentinel的日志第11章使用SpringCloudConfig和Bus搭建配置中心11.1配置中心在微服务中的应用11.1.1环境隔离11.1.2业务配置项动态推送11.1.3中心化的配置管理11.2了解SpringCloudConfig和Bus11.2.1SpringCloudConfig+Bus架构图11.2.2保存配置的几种方式11.3.1创建GitHubRepo11.3.2添加YML配置文件11.4.1创建高可用的config-server项目11.4.2添加依赖项和启动类11.4.3添加配置——设置GitHub地址,借助Eureka实现高可用11.4.4从多个GitHubRepo中读取配置11.5.1Application、Profile和Label11.5.2路径匹配规则11.6对GitHub中的配置项进行加解密11.6.1更新JDK中的JCE组件11.6.2使用对称密钥对配置项加解密11.6.3使用非对称密钥对配置项加解密11.7.1添加SpringCloudConfig和Bus的依赖项11.7.2为配置中心添加service-id11.7.3对数据库访问密码进行加密存储11.7.4配置@RefreshScope注解11.7.5从客户端触发配置刷新11.7.6使用Bus批量刷新配置项第12章使用SpringCloudGateway搭建服务网关12.1了解微服务网关12.1.1服务网关的用途12.1.2SpringCloud中的网关组件12.2SpringCloudGateway的核心概念——路由、谓词和过滤器12.3路由功能12.3.1通过配置文件设置简单路由12.3.2通过Java代码配置路由12.3.3谓词工厂12.3.4Gateway常用谓词12.3.5过滤器12.4.1添加Gateway的依赖项和启动类12.4.2将Gateway连接到注册中心12.4.3在Java文件中设置路由规则12.4.4添加网关层跨域过滤器12.5.1Redis和Lua的限流算法12.5.2设置限流规则12.5.3通过Actuator端点查看路由第13章使用Sleuth进行调用链路追踪13.1为什么微服务架构需要链路追踪13.2.1Sleuth13.2.2Zipkin13.2.3ELK13.3Sleuth基本数据结构13.4.1添加依赖项13.4.2配置Sleuth采样率13.5.1添加Zipkin依赖13.5.2创建Zipkin启动类13.5.3通过RabbitMQ接收日志文件13.6.1下载ELK的Docker镜像13.6.2在镜像内配置ELK属性13.6.3将应用日志输送到Logstash13.6.4在Kibana中搜索日志第14章使用Stream集成消息队列14.1了解Stream14.2消息队列在微服务架构中的应用14.3.1发布订阅14.3.2消费组14.3.3消息分区14.4.1添加Stream依赖项和消息信道14.4.2创建消息生产者14.4.3创建消息消费者并添加启动注解14.4.4添加Stream配置14.5.1本机重试14.5.2消息重新入队14.5.3自定义异常处理——添加降级逻辑14.5.4死信队列14.6.1延迟消息的使用场景14.6.2安装延迟消息插件14.6.3实现延迟消息第15章使用Seata实现分布式事务15.1为什么需要分布式事务15.2分布式事务的替代方案15.3传统的XA分布式事务解决方案15.4Seata框架介绍15.5.1AT模式原理15.5.2AT模式下的写隔离15.5.3AT模式下的读隔离15.5.4TCC模式15.5.5Saga模式15.5.6XA模式15.6.1下载Seata服务器15.6.2修改file.conf文件15.6.3修改registry.conf文件15.6.4添加服务器JDBC驱动15.6.5创建数据库表15.7.1添加Seata依赖项和配置项15.7.2实现业务逻辑15.7.3添加数据源代理第16章走进容器化的世界16.1.1微服务的兴起与容器的顺势而为16.1.2业务的高内聚和低耦合16.1.3摆脱软硬件异构的困境16.1.4遵循云原生12因素16.1.5满足康威定律16.1.6一线大厂为什么采用容器技术16.2.1容器技术的前世今生16.2.2主流容器技术介绍16.2.3容器技术生态圈对比16.2.4未来展望16.3.1资源统一管理和容器编排协作16.3.2Swarm16.3.3Mesos16.3.4Kubernetes16.3.5Rancher16.3.6各大容器编排框架对比第17章Docker容器技术17.1.1容器实战基本思路17.1.25分钟Docker安装17.1.31分钟HelloWorld17.1.4Docker感受分享17.2.1整体架构17.2.2客户端17.2.3Docker宿主机17.2.4仓库17.2.5镜像17.2.6容器17.2.7各个组件用途归纳17.3.1镜像结构17.3.2镜像制作17.3.3Dockerfile常用指令17.3.4Dockerfile排疑解惑17.3.5镜像管理思路17.4.1容器的运行原理17.4.2隔离特性17.4.3限制特性17.4.4容器的起承转合17.4.5容器的管理思路17.5.1存储管理的目标17.5.2系统卷17.5.3数据卷17.5.4数据卷容器17.5.5存储模式总结17.6.1网络技术分类17.6.2none网络17.6.3host网络17.6.4bridge网络17.6.5自定义网络17.6.6第三方网络17.6.7网络技术选型17.7.1Nginx反向代理部署17.7.2Redis缓存部署17.7.3MySQL数据库部署17.7.4MongoDB文档数据库部署17.7.5RabbitMQ消息队列部署17.7.6Kafka集群部署17.7.7ELK监控部署17.7.8Docker感受新体验17.8.1搭建私有仓库17.8.2上传镜像17.8.3下载镜像17.8.4仓库的扩展17.9.1容器化总体思路17.9.2无状态应用模块容器化17.9.3无状态中间件容器化17.9.4有状态中间件容器化17.9.5容器间网络互通17.9.6后续改造规划第18章Kubernetes基础18.1.1容器编排的意义和使命18.1.2容器编排的难点18.2.1Kubernetes整体架构18.2.2KubernetesMaster节点18.2.3KubernetesNode节点18.3.1Pod概念18.3.2Controller概念18.3.3Label资源锁定18.3.4Namespace逻辑隔离18.3.5Kubernetes的功能理解导图18.4.1基础软件安装18.4.2在Master节点创建集群18.4.3网络选择和初始化18.4.4Node节点加入集群18.5.1Pod原理和实现18.5.2Pod生命周期管理18.5.3资源限制和调度选择18.5.4健康检查18.6.1Controller原理18.6.2Deployment18.6.3滚动升级18.6.4后台应用DaemonSet18.6.5任务Job18.6.6控制器选择思路18.7.1应用Pod划分总体思路18.7.2应用Controller选择18.7.3Node资源分配18.7.4Liveness健康检查第19章Kubernetes网络互联19.1.1网络互联总体思路19.1.2Flannel网络的Kubernetes实现19.1.3Canal网络的Kubernetes实现19.1.4网络选型19.2.1Pod访问方式19.2.2ClusterIP方式19.2.3NodePort方式19.2.4LoadBalancer方式19.2.5Ingress方式19.2.6服务发现总体思路19.3.1有状态服务搭建19.3.2无状态服务搭建19.3.3微服务网络互联和服务发现第20章Kubernetes数据存储20.1Volume卷20.1.1磁盘管理整体思路20.1.2emptyDir方式20.1.3hostPath方式20.1.4云存储方式20.1.5PV-PVC方式20.1.6StorageClass方式20.2.1ConfigMap和Secret的定位20.2.2创建方式20.2.3数据传递方式20.3.1应用环境变量加载20.3.2有状态应用磁盘挂载第21章Kubernetes高级功能21.1.1架构设计的非功能性考量21.1.2Kubernetes容器方案的架构特性21.2.1安全性整体思路21.2.2认证和授权21.2.3Pod安全策略21.2.4网络访问策略21.3.1高可用架构整体思路21.3.2Node节点高可用21.3.3etcd高可用21.3.4Master节点高可用21.4.1水平还是垂直扩展21.4.2手动扩缩容21.4.3HPA自动扩缩容21.4.4Serverless扩缩容21.5.1易用性的考量要素21.5.2Helm应用包管理21.5.3CI/CD流水线21.6.1集群观察要点21.6.2Dashboard21.6.3PrometheusGrafana21.6.4ElasticsearchFluentdKibana21.7.1实现服务高可用21.7.2容器水平扩展21.7.3设置性能监控告警21.7.4设置日志监控搜索21.7.5微服务容器化落地的思考第22章ServiceMesh22.1.1ServiceMesh引领微服务新时代22.1.2Istio的诞生和兴起22.1.3ServiceMesh在大厂中的应用22.2.1异构应用的网络互通22.2.2应用拓扑监控22.2.3应用蓝绿发布22.2.4ServiceMesh感受分享22.3.1Istio工作原理和整体架构22.3.2Proxy模块22.3.3Istiod模块22.4.1服务治理的整体思路22.4.2灰度发布22.4.3故障注入22.4.4数据流镜像22.4.5服务熔断22.4.6服务网关22.5.1服务安全整体思路22.5.2mTLS双向认证加密22.5.3基于mTLS的用户授权22.5.4JWT用户认证授权22.6.1服务监控整体思路22.6.2Prometheus+Grafana性能监控22.6.3Jaeger服务追踪22.7.1激活ServiceMesh22.7.2透明授权验证22.7.3无埋点应用拓扑管理22.7.4优惠券项目容器化落地思考
精选推荐
领导力法则

领导力法则

[中国纺织出版社]

陆禹萌

已完结当代文学

销售心理学

销售心理学

[中国纺织出版社]

兰华

已完结当代文学

销售就是玩转情商

销售就是玩转情商

[中国纺织出版社]

王威

已完结当代文学

销售员情商实战训练

销售员情商实战训练

成功的销售需要高智商,更需要高情商。一个销售员的销售业绩,往往与他的情商成正比。本书从十个方面详细讲述了有效运用情商,提高销售业绩的方法和技巧。通过实际销售案例和销售心理学理论指导,以及实战点拨和情商拓展训练,帮助读者全方位、快速提高情商。故事性、多版块、碎片化的内容设置,有效降低读者阅读疲劳,提高阅读兴趣,不论是奔波在路上的销售小白,还是带领团队奋勇向前的销售经理,都能从中找到适合自己的销售软技巧。

刘军

已完结当代文学

让未来的你,感谢现在勇敢的自己

让未来的你,感谢现在勇敢的自己

[中国纺织出版社]

王介威

已完结当代文学

行为心理学:华生的实用心理学课

行为心理学:华生的实用心理学课

[中国纺织出版社]

(美)约翰·华生著.倪彩

已完结当代文学

行为心理学入门(完全图解版)

行为心理学入门(完全图解版)

行为心理学入门(完全图解版)是以作者多来年的心理辅导和咨询数据为素材,对现实生活中的行为心理学应用进行了形象、深入、全面的论述和解读。本书与日本心理学图解书形式相同,浅显易读,有趣又益。

武莉

已完结当代文学

自卑与超越

自卑与超越

《自卑与(全译插图典藏版)》是个体心理学研究领域的著作,也是人本主义心理学先驱阿尔弗雷德·阿德勒的很好著作。阿德勒的学说以“自卑感”与“创造性自我”为中心,并强调“社会意识”。全书立足个人心理学的观点,从教育、家庭、婚姻、伦理、社交等多个领域,以大量的实例为论述基础,阐明了人生意义的真谛,帮助人们克服自卑、不断超自己,正确对待职业,正确理解社会与性。本书直接促进了亲子教育、人格培养、婚姻与爱情、职业生涯、家庭建设、人际关系等诸多领域的长足发展,成为人们了解心理学的经典读物。

(奥)阿尔弗雷德·阿德勒

已完结当代文学

自制力:道理我都懂,为什么就是过不好人生

自制力:道理我都懂,为什么就是过不好人生

[中国纺织出版社]

邱开杰

已完结当代文学