荐书丨探险架构领域,助你避坑

百家 作者:程序人生 2017-09-01 09:54:20


2017年,微服务三岁了。我们一直期盼它能快速长大,希望微服务技术社区能推出更多框架与工具,可以帮助我们更好地落地微服务,并从中获得微服务给我们带来的甜头,但实际情况却让我们感到有些失望。我们至今还在寻找适合自身技术需求的微服务架构,甚至仍然觉得微服务离自己有些距离。


因此我们更多的是在观望,希望看到有成功实践微服务的企业能够将自己的技术分享出来,以供更多的企业来使用,但实际情况仍然让我们感到失望。我们不得不选择Spring Cloud这样的“全家桶”式的微服务框架来实现微服务架构,此时我们就需要基于Spring Boot来开发微服务,Spring Cloud提供的大量基础设施虽然可与Spring Boot进行无缝整合,但这样的架构给微服务的技术选型带来了一定的局限性。此外,Spring Cloud包含了大量的Spring官方所提供的开源项目,目前不同的版本在兼容性方面也存在一些不稳定现象。


我们认为,微服务是一个灵活的技术架构,它不能绑定在特定的技术平台上,微服务不应该存在任何的局限性,同时还要确保有较强的兼容性。比如,虽然我们也使用Spring Boot开发微服务,但也允许使用其他更适合的开发框架或编程语言来实现微服务。再比如,我们目前通过ZooKeeper来实现服务注册,但也能轻松地切换为其他技术选型,对于整个应用程序而言,这些都是无感知的。微服务所提倡的理念就是,用最合适的技术以最高效的方式来解决实际应用中的问题。


经过两年多的实践过程,我们找到了一款能让微服务架构快速且稳定落地的解决方案,并将此方案的核心内容汇集成本书,希望该方案能给微服务世界带一点新的能量。


本书将重点关注微服务基础设施方面,其中大部分内容涉及微服务运维相关技术。全书以实践的角度进行编写,读者首先将学习轻量级微服务架构的全景视图,随后的各个章节将围绕微服务的日志、监控、通信、解耦、测试、配置六大方面进行展开。读者可亲自动手,从零开始搭建轻量级微服务架构,充分享受架构探险的乐趣。


作者:黄勇



本书的主要内容

第1章:轻量级的微服务。

本章将从宏观上描述轻量级微服务架构。首先我们将从架构与架构师开始讲起,简单回顾架构演进的过程与微服务的发展趋势。随后我们将探讨在搭建微服务架构之前需要准备的工作,认识微服务架构的“冰山模型”,介绍切分微服务边界的方法和技巧。最后我们将从部署与运行两个角度来观察微服务架构,并以一幅架构全景图来结束本章。

第2章:微服务日志。

本章将关注点放在微服务日志上。首先我们将从Spring Boot日志框架入手,使应用日志可以输出到Docker容器外部,以便我们可随时查看日志文件。随后我们将学习Docker日志驱动,使日志信息输出到Linux的Syslog中。最后我们将Syslog与ELK技术栈整合,搭建一款微服务的日志中心。

第3章:微服务监控。

本章将视角放在微服务监控方面。首先我们将学习Spring Boot应用程序自带的监控特性,接着将介绍Spring Boot Admin开源监控系统的使用方法。随后我们将集成InfluxDB、cAdvisor、Grafana等开源工具,搭建一款微服务的监控中心。最后我们将学习Zipkin工具的使用方法,将其用于微服务的追踪中心。

第4章:微服务通信。

本章将围绕微服务之间的通信来展开。首先我们将在Spring Boot应用程序中实现基于HTTP的同步调用,同时我们也会对比Spring RestTemplate、OkHttp、Retrofit等工具的使用方法。随后我们将使用gRPC框架实现基于RPC的同步调用,并将gRPC与Spring Boot进行整合。最后我们将亲自动手,搭建一款轻量级分布式RPC框架。

第5章:微服务解耦。

本章将使用消息队列的异步方式来解耦微服务调用问题。首先我们将对比ActiveMQ与RabbitMQ,它们是两款经典的开源消息队列。随后我们将使用RabbitMQ来实现请求应答模式,并通过RabbitMQ来实现RPC同步调用。最后我们将使用Event-Sourcing与MQ相结合,巧妙地解决分布式事务问题。

第6章:微服务测试。

本章将聚焦在微服务测试方面。首先我们将以Spring Boot应用程序为例,分别针对Service层与REST API进行单元测试。随后我们将使用Postman来充当REST API的测试工具,并结合Jenkins与Newman搭建一款REST API的自动化测试框架。最后我们将分别使用Swagger与apiDoc工具来自动生成REST API文档,并比较这两款工具的优缺点。

第7章:微服务配置。

本章将解决微服务的配置参数问题。首先我们将通过一些实例,快速学习Ansible自动化运维工具的使用方法。随后将Ansible作为微服务的配置中心,并将Jenkins与Ansible相结合,可用于优化我们现有的微服务部署框架。最后我们将使用Registrator所提供的自注册特性,实现微服务的平滑升级目标。


本期荐书推荐理由

随着移动互联网的崛起,Web网关越来越重要,本书从Web网关的视角带领大家学习微服务架构。通过本书可以学习到如何使用Spring Boot与Docker等技术构建Web型微服务架构,值得Web开发人员学习。

—— 张开涛,“开涛的博客”博主,《亿级流量网站架构核心技术》作者

 

SOA 从企业级应用到互联网领域火了很多年,曾经是我招聘架构师的必考题目之一,但 SOA 在大型系统的落地从来都是高难度动作,令许多架构师欲仙欲死。如今又兴起了微服务架构,要把 SOA 进行到底,实现彻底的服务化,从此世间再无系统切分,只有微服务小而美好。那么到底如何实现微服务呢?黄老师这本书教我们轻松上手,一步步把理想变成现实,体现出多年实战派的底蕴,是一本不可多得的武功秘籍。

——史海峰,饿了么北京研发中心总经理

 

微服务架构,虽然诞生时间不长,却已成为软件架构领域讨论的热点。微服务的概念看似简单,但涉及诸多方法论和实践积累,这就是为什么有人说它非常好, 但就是“玩不起”。随着微服务生态系统的日趋完善,微服务架构的讨论也从 API 接口、服务间通信、接口测试、基础设施自动化等,逐渐扩展到了API网关、微服务的注册与发现、Docker 封装与部署、持续交付以及运维体系的优化等多方面。本书结合作者过去多年的实战经验,深入浅出地梳理了微服务构建过程中遇到的诸多挑战,并给出了切实可行的解决方案(如何使用 Spring Boot 构建服务、使用 ZooKeeper 注册服务,如何结合 Docker 封装服务和发布服务等),是一本能帮助读者立刻动手、落地微服务的好书。同时,作者从开发和运维两个角度入手,详细地剖析了微服务实施过程中,如何有效解决“最后一公里”的部署以及运维难题。纵览全书,条理清楚,图文并茂,理论结合实际,是一本非常用心,又注重实操的好书,对企业的微服务架构实施,具有很大的参考意义,相信企业的架构师、软件开发人员、运维人员读完这本书一定会受益匪浅。

——王磊,DevOps教练,《微服务架构与实践》作者


图书作者


黄勇

现任上海特赞科技CTO,曾任阿里巴巴公司系统架构师。具有丰富的互联网产品架构经验与技术管理经验,擅长敏捷开发模式,推崇“轻量级”系统架构。国内开源软件推动者,Smart开源框架创始人,图书《架构探险:从零开始写Java Web框架》作者。技术大会讲师、培训师、咨询师。热爱技术交流,乐于分享自己的成长经验。

评论有奖规则


  • 如果你对本书感兴趣,可在本文下方留言,说出自己的申请理由,小编会放出有价值的评论,且根据用户评论点赞数+申请理由挑选出 3 位参与荐书的小伙伴。

  • 获奖名单会在下周荐书文章中公布。


如果有迫不及待想要即刻阅读这本书的宝宝们,可长按识别下方二维码,即可订购~


预售地址

扫描二维码购买《架构探险:轻量级微服务架构(下册)》


上期“荐书”获奖名单公布

获奖的3名同学

请在评论里留下你的姓名,联系方式和地址哦

「程序人生」交流群

这是一个只面向程序猿(媛)的「微信交流群」,如果你是一名程序猿(媛),欢迎加小编微信,入群和大家一起探讨和程序员相关的公事,私事,天下事~或许还能在这里找到你的另一半^_^

小编微信ID:druidlost  为保证该群的健康环境,加微信时请署名「程序员」字样,并在加了小编后回答3个问题才会拉你入群。

P.S.需提前说明一点「禁止任何形式的广告!」违者必踢。




更多精彩

王小波程序员我会编程七夕表白程序员最高殊荣程序猿(媛)CP祭天Python歌词特斯拉程序媛直播鄙视链敲代码404结婚Facebook怎么进BAT女友日记高逼格指南计算机专业技能干货九寨沟地震编程习惯陆奇演讲自救指南周鸿祎谈创业


扫码关注CSDN程序人生

程序猿(媛)的专属公号




公众号ID

coder_life

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接