![]()
编辑推荐 "适读人群 :具备一定Java基础的开发人员、对微服务架构和Spring Cloud技术及容器编排技术感兴趣的读者 新版本:针对Spring Cloud Hoxton + Spring Boot 2.2.x版本
专注实践:实战项目贯穿全书,体验单体应用到微服务架构的升级过程
技术全面:Spring Boot、Spring Cloud Netflix/阿里巴巴、Docker、Kubernetes和Service Mesh核心技术全覆盖
低门槛:通过实战项目学练结合,初学者也能轻松上手
深入剖析:通过实战案例展示业界主流的微服务架构很好实践" 内容推荐 本书源码以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 Alibaba两大组件库的核心组件,在项目实战环节,将Spring Cloud微服务技术应用到优惠券项目中,让读者亲身体验从单体应用升级为微服务架构的过程。第三部分,深入讲解Docker容器技术和Kubernetes容器编排技术的核心功能,并对优惠券项目做容器化改造。本书紧扣实战、学练结合,适合具备一定Java基础的开发人员、对微服务架构和Spring Cloud技术及容器编排技术感兴趣的读者。对处在微服务架构转型期的团队来说,本书具有很大的实践指导价值。 目录 章热身运动1 1.1准备工作1 1.1.1安装JDK2 1.1.2安装IDE4 1.1.3安装Maven5 1.1.4安装Postman6 1.2JavaWeb开发的进化史6 1.2.1应用服务器8 1.2.2青铜Servlet11 1.2.3铂金SpringMVC18 1.2.4王者SpringBoot22 第2章SpringBoot介绍26 2.1SpringBoot的前尘往事26 2.1.1SpringFramework27 2.1.2SpringBoot32 2.2SpringBoot的设计理念34 2.3SpringBoot的核心功能34 2.3.1易于使用的依赖管理Starter35 2.3.2约定大于配置的AutoConfiguration39 2.3.3优雅灵活的配置管理Properties45 2.3.4简单明了的管理工具Actuator51 2.3.5方便快捷的内置容器EmbeddedContainer57 第3章SpringBoot实战63 3.1创建SpringBoot项目63 3.1.1利用SpringInitializr创建项目63 3.1.2项目结构64 3.1.3在项目中添加Starter65 3.1.4偷懒神器lombok68 3.2项目运行打包70 3.2.1SpringBoot项目编译打包70 3.2.2运行SpringBoot项目72 3.3SpringBoot管理日志74 3.3.1日志框架74 3.3.2Log4J275 3.3.3Logback77 3.3.4Slf4j79 3.4数据访问80 3.4.1访问关系型数据库80 3.4.2实现优惠券模板模块DAO层131 3.4.3实现用户领券模块DAO层133 3.4.4使用key-valuestore实现缓存135 3.5消息系统143 3.5.1消息系统的作用143 3.5.2消息系统的两种模式144 3.5.3集成RabbitMQ150 3.5.4集成Kafka157 3.6应用安全管理162 3.6.1Authentication用户身份鉴定163 3.6.2Authorization用户鉴权165 3.6.3OAuth2.0166 3.6.4SpringSecurity168 3.7定时任务173 3.7.1Quartz174 3.7.2SpringBatch178 3.8SpringBoot项目测试186 第4章微服务与SpringCloud189 4.1什么是微服务架构189 4.1.1微服务架构的特点189 4.1.2一线大厂为什么采用微服务架构190 4.1.3微服务架构对系统运维的挑战191 4.2微服务的拆分规范192 4.2.1领域模型192 4.2.2计算密集型业务和I/O密集型业务192 4.2.3区分高频、低频业务场景和突发流量192 4.2.4规划业务主链路193 4.3大厂微服务架构的服务治理方案193 4.3.1业界主流服务治理框架一览193 4.3.2微服务框架的选型建议195 4.4了解SpringCloud196 4.4.1SpringCloud简介196 4.4.2SpringCloud和SpringBoot的关系197 4.5了解SpringCloud组件库198 4.5.1SpringCloud的整体架构198 4.5.2SpringCloud的子项目199 4.5.3Netflix组件库201 4.5.4Alibaba组件库202 4.6实战项目技术选型203 4.6.1技术架构选型203 4.6.2SpringCloud组件选型与版本204 第5章使用Eureka实现服务治理205 5.1什么是服务治理205 5.2SpringCloud中常用的注册中心207 5.3分布式系统理论209 5.3.1了解CAP定理209 5.3.2高并发应用在CAP中的偏向性210 5.4Eureka核心概念211 5.4.1服务注册211 5.4.2服务发现212 5.4.3服务续约和服务下线212 5.4.4服务剔除212 5.4.5服务自保213 5.5优惠券项目改造――高可用注册中心213 5.5.1创建项目结构213 5.5.2修改host文件213 5.5.3引入Maven依赖项214 5.5.4创建项目启动类215 5.5.5为注册中心添加配置215 5.6coupon-template-service微服务架构升级218 5.6.1添加依赖项218 5.6.2创建启动类218 5.6.3添加配置项219 5.6.4运行项目220 5.7改造coupon-calculator221 5.8改造coupon-user-service服务222 5.8.1添加依赖项和配置项222 5.8.2声明RestTemplate222 5.8.3改造findCoupon()方法――RestTemplate.exchange函数的用法223 5.8.4改造requestCoupon()方法――getForObject函数的用法225 5.8.5改造placeOrder()方法226 5.8.6启动项目并验证服务注册227 5.9Eureka中的其他配置参数227 第6章使用Nacos实现服务治理229 6.1什么是Nacos229 6.2Nacos的核心功能230 6.2.1服务注册、服务发现与健康检测231 6.2.2配置管理231 6.3Nacos下载与安装232 6.4Nacos实战234 6.4.1Nacos与SpringCloud的集成234 6.4.2Nacos控制台234 6.4.3Nacos实现配置管理237 6.4.4Nacos实现服务注册与服务发现243 第7章使用Ribbon实现负载均衡247 7.1什么是负载均衡247 7.2了解Ribbon248 7.3了解Ribbon的负载均衡器249 7.3.1Ribbon内置的负载均衡策略249 7.3.2各个负载均衡器适用的业务场景250 7.3.3Ribbon的IRule扩展接口250 7.4IPing机制251 7.4.1了解IPing机制251 7.4.2Ribbon内置的IPing策略类252 7.5微服务项目架构升级252 7.5.1添加Ribbon依赖项252 7.5.2添加@LoadBalancer注解253 7.5.3修改getUrl()方法253 7.5.4配置Ribbon负载均衡策略254 第8章使用OpenFeign实现服务间调用256 8.1Feign256 8.1.1什么是Feign256 8.1.2Feign的工作流程257 8.1.3Feign对请求和响应的压缩258 8.2微服务架构升级――使用Feign代理接口调用258 8.2.1添加依赖项258 8.2.2开启Feign注解支持258 8.2.3定义Feign接口259 8.2.4替换RestTemplate261 8.2.5Feign与Ribbon的超时与重试配置263 8.2.6Feign的日志配置265 8.2.7配置请求和响应的压缩参数266 第9章使用Hystrix实现服务间容错267 9.1Hystrix267 9.1.1什么是Hystrix267 9.1.2服务雪崩268 9.1.3服务雪崩的解决方案269 9.2Hystrix的核心概念269 9.2.1服务降级269 9.2.2服务熔断270 9.2.3Hystrix如何切换断路器的开关271 9.3微服务架构升级――配置熔断和降级271 9.3.1添加依赖项和配置项271 9.3.2在Feign接口上指定降级类272 9.3.3为特定方法指定降级逻辑274 9.3.4设置全局熔断参数274 9.3.5为指定方法设置超时时间276 9.3.6隔离机制的配置项277 9.3.7使用@CacheResult缓存注解279 9.3.8开放Actuator端点279 9.4微服务架构升级――利用Turbine收集Hystrix信息281 9.4.1什么是Turbine281 9.4.2添加Turbine子项目281 9.4.3创建启动类282 9.4.4指定需要监控的服务名称283 9.5微服务架构升级――利用HystrixDashboard观察服务健康度284 9.5.1什么是HystrixDashboard284 9.5.2添加HystrixDashboard项目284 9.5.3创建配置项和启动类286 9.6启用HystrixDashboard观察服务状态286 0章使用Sentinel实现限流控制290 10.1服务容错290 10.2Sentinel简介291 10.2.1什么是Sentinel291 10.2.2Sentinel的核心功能292 10.3Sentinel控制台296 10.4Sentinel与SpringCloud的集成297 10.5使用Sentinel实现降级控制298 10.6使用Sentinel实现限流控制302 10.7Sentinel的日志307 1章使用SpringCloudConfig和Bus搭建配置中心310 11.1配置中心在微服务中的应用310 11.1.1环境隔离311 11.1.2业务配置项动态推送311 11.1.3中心化的配置管理312 11.2了解SpringCloudConfig和Bus313 11.2.1SpringCloudConfig+Bus架构图313 11.2.2保存配置的几种方式315 11.3准备工作――创建GitHub文件315 11.3.1创建GitHubRepo315 11.3.2添加YML配置文件316 11.4微服务架构升级――搭建高可用的配置中心316 11.4.1创建高可用的config-server项目316 11.4.2添加依赖项和启动类317 11.4.3添加配置――设置GitHub地址,借助Eureka实现高可用319 11.4.4从多个GitHubRepo中读取配置321 11.5GitHub配置文件命名规则322 11.5.1Application、Profile和Branch322 11.5.2路径匹配规则322 11.6对GitHub中的配置项进行加解密324 11.6.1更新JDK中的JCE组件324 11.6.2使用对称密钥对配置项加解密324 11.6.3使用非对称密钥对配置项加解密327 11.7微服务架构升级――从配置中心读取配置项328 11.7.1添加SpringCloudConfig和Bus的依赖项328 11.7.2为配置中心添加service-id328 11.7.3对数据库访问密码进行加密存储330 11.7.4配置@RefreshScope注解330 11.7.5从客户端触发配置刷新332 11.7.6使用Bus批量刷新配置项333 2章使用SpringCloudGateway搭建服务网关334 12.1了解微服务网关334 12.1.1服务网关的用途335 12.1.2SpringCloud中的网关组件336 12.2SpringCloudGateway的核心概念――路由、谓词和过滤器337 12.3路由功能339 12.3.1通过配置文件设置简单路由339 12.3.2通过Java代码配置路由340 12.3.3谓词工厂340 12.3.4Gateway常用谓词341 12.3.5过滤器342 12.4微服务架构改造――搭建网关模块343 12.4.1添加Gateway的依赖项和启动类343 12.4.2将Gateway连接到注册中心344 12.4.3在Java文件中设置路由规则345 12.4.4添加网关层跨域过滤器347 12.5微服务架构升级――使用Redis+Lua做流控348 12.5.1Redis和Lua的限流算法348 12.5.2设置限流规则350 12.5.3通过Actuator端点查看路由351 3章使用Sleuth进行调用链路追踪354 13.1为什么微服务架构需要链路追踪354 13.2链路追踪技术介绍356 13.2.1Sleuth356 13.2.2Zipkin357 13.2.3ELK358 13.3Sleuth基本数据结构359 13.4微服务架构升级――集成Sleuth实现链路追踪361 13.4.1添加依赖项361 13.4.2配置Sleuth采样率361 13.5微服务架构升级――搭建Zipkin服务器362 13.5.1添加Zipkin依赖362 13.5.2创建Zipkin启动类363 13.5.3通过RabbitMQ接收日志文件363 13.5.4应用程序集成Zipkin365 13.6微服务架构升级――搭建ELK环境368 13.6.1下载ELK的Docker镜像368 13.6.2在镜像内配置ELK属性368 13.6.3将应用日志输送到Logstash370 13.6.4在Kibana中搜索日志372 4章使用Stream集成消息队列375 14.1了解Stream375 14.2消息队列在微服务架构中的应用376 14.3消息队列的概念380 14.3.1发布订阅380 14.3.2消费组381 14.3.3消息分区381 14.4微服务架构升级――异步分发优惠券382 14.4.1添加Stream依赖项和消息信道382 14.4.2创建消息生产者383 14.4.3创建消息消费者并添加启动注解384 14.4.4添加Stream配置385 14.5微服务架构升级――Stream异常处理387 14.5.1本机重试387 14.5.2消息重新入队387 14.5.3自定义异常处理――添加降级逻辑388 14.5.4死信队列388 14.6Stream实现延迟消息391 14.6.1延迟消息的使用场景391 14.6.2安装延迟消息插件393 14.6.3实现延迟消息394 5章使用Seata实现分布式事务396 15.1为什么需要分布式事务396 15.2分布式事务的替代方案397 15.3传统的XA分布式事务解决方案398 15.4Seata框架介绍400 15.5Seata的AT模式402 15.5.1AT模式原理402 15.5.2AT模式下的写隔离404 15.5.3AT模式下的读隔离405 15.5.4TCC模式407 15.5.5Saga模式409 15.5.6XA模式410 15.6微服务架构升级――搭建Seata服务器410 15.6.1下载Seata服务器410 15.6.2修改file.conf文件411 15.6.3修改registry.conf文件412 15.6.4添加服务器JDBC驱动413 15.6.5创建数据库表413 15.7微服务架构升级――应用改造416 15.7.1添加Seata依赖项和配置项416 15.7.2实现业务逻辑417 15.7.3添加数据源代理419 6章走进容器化的世界420 16.1微服务落地的难点420 16.1.1微服务的兴起与容器的顺势而为420 16.1.2业务的高内聚和低耦合421 16.1.3摆脱软硬件异构的困境423 16.1.4遵循云原生12因素425 16.1.5满足康威定律429 16.1.6一线大厂为什么采用容器技术430 16.2容器技术的演进432 16.2.1容器技术的前世今生432 16.2.2主流容器技术介绍433 16.2.3容器技术生态圈对比434 16.2.4未来展望436 16.3容器编排技术先睹为快436 16.3.1资源统一管理和容器编排协作436 16.3.2Swarm437 16.3.3Mesos437 16.3.4Kubernetes438 16.3.5Rancher439 16.3.6各大容器编排框架对比440 7章Docker容器技术442 17.1从HelloWorld起步442 17.1.1容器实战基本思路442 17.1.25分钟Docker安装443 17.1.31分钟HelloWorld443 17.1.4Docker感受分享444 17.2Docker架构445 17.2.1整体架构445 17.2.2客户端446 17.2.3Docker宿主机449 17.2.4仓库450 17.2.5镜像451 17.2.6容器451 17.2.7各个组件用途归纳451 17.3Docker镜像452 17.3.1镜像结构452 17.3.2镜像制作453 17.3.3Dockerfile常用指令455 17.3.4Dockerfile排疑解惑458 17.3.5镜像管理思路461 17.4Docker容器464 17.4.1容器的运行原理464 17.4.2隔离特性464 17.4.3限制特性468 17.4.4容器的起承转合469 17.4.5容器的管理思路472 17.5Docker存储473 17.5.1存储管理的目标473 17.5.2系统卷473 17.5.3数据卷474 17.5.4数据卷容器479 17.5.5存储模式总结480 17.6Docker网络481 17.6.1网络技术分类481 17.6.2none网络482 17.6.3host网络482 17.6.4bridge网络483 17.6.5自定义网络486 17.6.6第三方网络486 17.6.7网络技术选型487 17.7进一步感受Docker的魅力488 17.7.1Nginx反向代理部署488 17.7.2Redis缓存部署489 17.7.3MySQL数据库部署491 17.7.4MongoDB文档数据库部署493 17.7.5RabbitMQ消息队列部署494 17.7.6Kafka集群部署495 17.7.7ELK监控部署497 17.7.8Docker感受新体验498 17.8镜像仓库499 17.8.1搭建私有仓库499 17.8.2上传镜像500 17.8.3下载镜像500 17.8.4仓库的扩展501 17.9【优惠券项目落地】――Docker容器化502 17.9.1容器化总体思路502 17.9.2无状态应用模块容器化503 17.9.3无状态中间件容器化506 17.9.4有状态中间件容器化508 17.9.5容器间网络互通509 17.9.6后续改造规划512 8章Kubernetes基础513 18.1了解容器编排513 18.1.1容器编排的意义和使命513 18.1.2容器编排的难点514 18.2了解Kubernetes514 18.2.1Kubernetes整体架构514 18.2.2KubernetesMaster节点515 18.2.3KubernetesNode节点516 18.3Kubernetes基本概念516 18.3.1Pod概念516 18.3.2Controller概念517 18.3.3Label资源锁定518 18.3.4Namespace逻辑隔离519 18.3.5Kubernetes的功能理解导图519 18.4Kubernetes集群搭建520 18.4.1基础软件安装520 18.4.2在Master节点创建集群521 18.4.3网络选择和初始化525 18.4.4Node节点加入集群525 18.5Pod管理526 18.5.1Pod原理和实现526 18.5.2Pod生命周期管理528 18.5.3资源限制和调度选择532 18.5.4健康检查537 18.6Controller管理540 18.6.1Controller原理540 18.6.2Deployment541 18.6.3滚动升级547 18.6.4后台应用DaemonSet552 18.6.5任务Job554 18.6.6控制器选择思路560 18.7【优惠券项目落地】――Kubernetes容器化管理560 18.7.1应用Pod划分总体思路560 18.7.2应用Controller选择561 18.7.3Node资源分配561 18.7.4Liveness健康检查562 9章Kubernetes网络互联564 19.1跨节点网络565 19.1.1网络互联总体思路565 19.1.2Flannel网络的Kubernetes实现565 19.1.3Canal网络的Kubernetes实现565 19.1.4网络选型566 19.2服务发现与负载均衡566 19.2.1Pod访问方式566 19.2.2ClusterIP方式568 19.2.3NodePort方式571 19.2.4LoadBalancer方式574 19.2.5Ingress方式575 19.2.6服务发现总体思路577 19.3【优惠券项目落地】――服务发现和互联577 19.3.1有状态服务搭建577 19.3.2无状态服务搭建581 19.3.3微服务网络互联和服务发现583 第20章Kubernetes数据存储585 20.1Volume卷586 20.1.1磁盘管理整体思路586 20.1.2emptyDir方式587 20.1.3hostPath方式588 20.1.4云存储方式589 20.1.5PV-PVC方式590 20.1.6StorageClass方式593 20.2ConfigMap和Secret594 20.2.1ConfigMap和Secret的定位594 20.2.2创建方式595 20.2.3数据传递方式599 20.3【优惠券项目落地】――配置和磁盘管理603 20.3.1应用环境变量加载603 20.3.2有状态应用磁盘挂载603 第21章Kubernetes不错功能606 21.1容器化的非功能性需求607 21.1.1架构设计的非功能性考量607 21.1.2Kubernetes容器方案的架构特性607 21.2安全性608 21.2.1安全性整体思路608 21.2.2认证和授权609 21.2.3Pod安全策略612 21.2.4网络访问策略612 21.3可用性613 21.3.1高可用架构整体思路613 21.3.2Node节点高可用614 21.3.3etcd高可用615 21.3.4Master节点高可用615 21.4扩展性616 21.4.1水平还是垂直扩展616 21.4.2手动扩缩容616 21.4.3HPA自动扩缩容619 21.4.4Serverless扩缩容621 21.5易用性622 21.5.1易用性的考量要素622 21.5.2Helm应用包管理623 21.5.3CI/CD流水线627 21.6可观察性629 21.6.1集群观察要点629 21.6.2Dashboard629 21.6.3PrometheusGrafana630 21.6.4ElasticsearchFluentdKibana633 21.7【优惠券项目落地】――Kubernetes容器架构终态637 21.7.1实现服务高可用637 21.7.2容器水平扩展643 21.7.3设置性能监控告警643 21.7.4设置日志监控搜索645 21.7.5微服务容器化落地的思考646 第22章ServiceMesh647 22.1ServiceMesh在微服务中的应用648 22.1.1ServiceMesh引领微服务新时代648 22.1.2Istio的诞生和兴起649 22.1.3ServiceMesh在大厂中的应用650 22.2从BoofInfo样例起步650 22.2.1异构应用的网络互通650 22.2.2应用拓扑监控653 22.2.3应用蓝绿发布656 22.2.4ServiceMesh感受分享657 22.3了解Istio架构657 22.3.1Istio工作原理和整体架构657 22.3.2Proxy模块658 22.3.3Istiod模块659 22.4服务治理659 22.4.1服务治理的整体思路659 22.4.2灰度发布660 22.4.3故障注入663 22.4.4数据流镜像666 22.4.5服务熔断668 22.4.6服务网关669 22.5服务安全671 22.5.1服务安全整体思路671 22.5.2mTLS双向认证加密672 22.5.3基于mTLS的用户授权673 22.5.4用户认证授权675 22.6服务监控677 22.6.1服务监控整体思路677 22.6.2Prometheus+Grafana性能监控677 22.6.3Jaeger服务追踪679 22.7【优惠券项目落地】――非侵入式容器进阶态680 22.7.1激活ServiceMesh680 22.7.2透明授权验证682 22.7.3无埋点应用拓扑管理685 22.7.4优惠券项目容器化落地思考685 书评(媒体评论) "专家力荐
I worked directly with the three authors of this book successfully transforming monolithic legacy technology to modernized, containerized Spring Cloud microservices.These three gentlemen are practical experts at these topics, and their examples are very effective at sharing and teaching their experience. Modernization can be a vague and hard to achieve or understand technology concept, but these three architects make it real.This book will walk you through the hands on and practical experience of splitting, transforming, managing, and deploying microservices, and provide strong foundational experience on the Spring Cloud and Kubernetes frameworks that they found instrumental.I am looking forward to an English translation of this book to share with my new team, and I hope the Chinese developer community can continue to gain from and add to the experience of these three great architects.
-Austin Sheppard, CTO and VP Engineering, Booking.com Trips, and former CTO, StubHub (10 year China software engineering executive veteran)
我与本书三位作者共事,曾亲历过从单体应用成功转型到现代化、容器化技术所支撑的Spring Cloud微服务。三位作者是书中所涉及各章节话题的实战演练专家,本书样例有三位作者的亲历佐证,实测有效。现代化技术概念较为模糊,不易实现和理解,但这三位架构师抽丝剥茧,娓娓道来。
本书从作者在项目中亲历的微服务拆分、改造、治理和部署方式说起,结合不可或缺的Spring Cloud和Kubernetes基础,循序渐进,指引读者。我期待能早日看到本书的英译版,可以分享给我的新团队。我希望在华的程序员群体能从书中获益,汲取经验,与三位架构师作者共勉前行。
——Austin Sheppard,Booking首席技术官兼副总裁,StubHub前首席技术官, 在中国有10年软件工程领域的管理经验
我与张昕相识于十几年前传统IT时代的IBM,很近听说他写了一本关于微服务的书,市面上有很多介绍Spring Boot/Cloud的书,也有很多介绍Docker的书,但是能够从微服务的本质入手,完美地融合开发和运维,把两者结合在一起,并且写得很具实操性的书却很少,而本书很好好地实现了这些需求。
本书不仅仅介绍了微服务和相关的技术框架及工具,还很好好地融入了很多场景化的实践。比如,在互联网应用中经常遇到的流量控制、全链路追踪、容器编排等。
这是一本适合所有热爱微服务和DevOps技术的从业者阅读的书,是我看过的具有实操性的微服务技术书,相信它能解答大家心中的很多疑惑。
我也曾有写书的冲动,但却从未施行,因为写书并不容易,是一件需要有很强的公益心态才能完成的事。写一本好书更是难上加难,特别钦佩张昕的勇气和付出,谢谢他能带给我们一本微服务技术好书。
——肖凯 神州数码云业务集团副总裁,阿里云MVP
在这个微服务技术异常炙热、微服务的技术专家依然奇缺的年代,如何快速培养微服务技术工程师,越来越成为一个迫切的问题。此方面好的相关图书更是寥寥可数。
本书内容全面,而且有重点、有深入,注重实战,结合实例循序渐进,娓娓道来,尤其对技术的重点和难点解释得很详细、很透彻,是一本值得借鉴参考的好书。
——赵琨 StubHub中国研发中心总经理
随着业务复杂性的不断提升,从单体应用到微服务架构的演进是大势所趋。
微服务架构是一个复杂的命题,而Spring Cloud是业界很常用的微服务框架。本书手把手教你如何基于Spring Boot构建微服务项目,如何在此框架之上完成服务发现、服务降级、熔断及限流,并完成API网关和链路追踪等配置。
在理解微服务架构的基础之上,本书进一步讲解了如何将微服务容器化,并在容器云平台Kubernetes及服务网格管理框架Istio上构建和管理微服务。本书涵盖了微服务管理的方方面面,有理论有实践,对需要入门微服务管理的读者来说是一本难得的好书。
——孟凡杰 eBay资深架构师,《Kubernetes生产化实践之路》作者" |