“我骑着我心爱的小摩托,他又在这里翻车了,mybatisdao 接口工作原理
![](https://static001.geekbang.org/infoq/11/1150b535f91b8f3b62f6d1716f2079fe.png)
![](https://static001.geekbang.org/infoq/ba/bae4cb9c0101a3c3e0237abf24f2510a.png)
第 3 章从服务注册与发现说起在微服务中,消费者为了完成一次服务请求,需要知道具体服务的详细地址(IP 和端口)。传统应用都运行在物理服务器上,服务实例的网络位置都是相对固定的。怎样从一个经常变更的配置中读取网络位置尤为重要。
![](https://static001.geekbang.org/infoq/50/503b94cf837315b66571e795da57a808.png)
![](https://static001.geekbang.org/infoq/50/5081047d34373a88c381c8a6959a8396.png)
第 4 章服务提供者与服务消费者的关系什么是服务提供者和服务消费者?服务提供者是指服务的被调用方,即为其他服务提供服务的服务;服务消费者是指服务的调用方,即依赖其他服务的服务。
![](https://static001.geekbang.org/infoq/6c/6c631742c3840e4c71d36a90c6805bf2.png)
![](https://static001.geekbang.org/infoq/05/05a77ea2ccd7bbccdfb8ce575e4d1c1c.png)
第 5 章模板引擎模板引擎是为了使用户页面和业务数据相互分离而衍生出来的,它将从后台返回的数据生成特定格式的文档,用户页面通过模板引擎根据特定的格式渲染页面。
![](https://static001.geekbang.org/infoq/44/440250e2dd419378d1e9a21a1772a56a.png)
![](https://static001.geekbang.org/infoq/b2/b211d151945c78be76721195d8328405.png)
第 6 章服务的雪崩与熔断典型的分布式系统由许多协作在一起的服务组成,这些服务容易出现故障或延迟响应。如果服务失败,可能会影响性能的其他服务,并可能使应用程序的其他部分无法访问,或者在最坏的情况下会导致整个应用程序崩溃。
![](https://static001.geekbang.org/infoq/72/7234de8953987bd6fdff3e6b5d79bef6.png)
![](https://static001.geekbang.org/infoq/2b/2b15160acc675a054a98215d2289e9e1.png)
第 7 章分布式配置中心随着服务/业务越来越多,配置文件更是眼花缭乱,每次不知道因为部署/安装问题浪费多少时间,更不知道因为配置问题出现过多少问题。如果采用分布式的开发模式,需要的配置文件随着服务增加而不断增多。
某一个基础服务信息变更,都会引起一系列的更新和重启,运维苦不堪言,也容易出错。配置中心是解决此类问题的灵丹妙药。
![](https://static001.geekbang.org/infoq/ff/ffbeafafa5ac3369a3d6ce169108fecd.png)
![](https://static001.geekbang.org/infoq/9c/9cc74277183a6eb936c75d7e6ba3cc83.png)
第 8 章 API 网关 API 网关是微服务架构中很重要的一部分,是发起每个请求的入口,可以在网关上做协议转换、权限控制、请求统计和限流等工作。
![](https://static001.geekbang.org/infoq/58/58ae914428a796bd8e1a3e27c4871e9c.png)
![](https://static001.geekbang.org/infoq/4c/4cd179db4eb9d6eb751da062e0e0623b.png)
第 9 章 Cloud FoundryCloud Foundry 是一个开源平台即服务
(PaaS),提供云、开发人员框架和应用程序服务。它是开源的,由 Cloud Foundry Foundation 管理。Cloud Foundry 最初由 VMware 开发,目前由 GE、EMC 和 VMware 的合资公司 Pivotal 管理。
现在,由于 Cloud Foundry 是开源产品,许多流行组织目前单独提供此平台。下面是当前认证提供商的列表。Pivotal Cloud Foundryo
IBM Bluemix。
HPE Helion Stackato 4.0。
Atos Canopyo
CenturyLink App Fogo
GE Predix。
Huawei FusionStageo
SAPCloud Platform。
Swisscom Application Cloud。
![](https://static001.geekbang.org/infoq/5e/5ee1cae270b81bbc28be3b8eab03c0b7.png)
![](https://static001.geekbang.org/infoq/80/80a21ab9ab66f429b6b71fbd9259bdd5.png)
第 10 章消息驱动 Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的架构,为一些供应商的消息中间件产品提供个性化的自动化配置实现,并且引入了发布—订阅、消费组以及分区这三个核心概念。通过使用 Spring Cloud Stream,可以有效简化开发人员对消息中间件的使用复杂度,让系统开发人员可以有更多的精力关注核心业务逻辑的处理,如图 10.1 所示。
![](https://static001.geekbang.org/infoq/23/236f1208bf5cbcf41c06ae4c1167adef.png)
![](https://static001.geekbang.org/infoq/25/255a0edd95eaa60b64b5f1299c33c08d.png)
![](https://static001.geekbang.org/infoq/b9/b94df0e6cd75b72667bcdfc8983951f0.png)
第 11 章单点登录单点登录(Single Sign On,SSO)是把多个系统的登录验证整合在一起,这样,无论用户登录任何一个应用,都可以直接以登录过的身份访问其他应用,不必每次先访问其他系统,再去登录。
![](https://static001.geekbang.org/infoq/9b/9b35e3d3454d5d74313e75848519ee13.png)
![](https://static001.geekbang.org/infoq/d0/d09aa1c9138fcccdf3e7ce415e4a1cc2.png)
第 12 章 Activity 工作流 Activity 实现了工作流程的自动化,改善了企业资源利用,提高了企业运营效率、企业运作的灵活性和适应性、量化考核业务处理的效率,减少了浪费。
流程图就像流水线一样,张三请完假,李四就会收到任务去审批张三的请假,若通过,则流程结束;若不通过,就会通知到张三,张三可以再次发起申请。
![](https://static001.geekbang.org/infoq/af/afb4b50e941f65667fe49a6a150a49b8.png)
![](https://static001.geekbang.org/infoq/24/248b8f0a6bf5646fe557cf2ec716f0bd.png)
第 13 章 ElastioSearchElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful Web 接口。ElasticSearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索、稳定、可靠、快速,且安装使用方便。
![](https://static001.geekbang.org/infoq/1b/1bc8275ebe251d1e6bfd9300aa7c14c9.png)
![](https://static001.geekbang.org/infoq/0d/0d06729f2f88530d29de7e66094883b7.png)
第 14 章 ELK Stack 通过使用微服务,我们已经能够克服许多遗留问题,并且它允许我们创建稳定的分布式应用程序,并对代码、团队规模、维护、发布周期、云计算等进行所需的控制。但它也引入了一些挑战,如分布式日志管理、查看在许多服务中分布的完整事务的日志与一般的分布式调试的能力。ElasticSearch、Logstash 和 Kibana 一起称为 ELK Stack。它们用于实时搜索、分析和可视化日志数据。
![](https://static001.geekbang.org/infoq/36/36d0226ce470c162e0b68af4896b903f.png)
![](https://static001.geekbang.org/infoq/9c/9c4350162dfc621e145a2773786a36e6.png)
第 15 章多线程多线程是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。单线程如同一根水管配一个花洒,意味着同一时刻只能一个人洗澡。
多线程如同一根水管配两个花洒,意味着同一时刻可以两个人洗澡,如果为多核机器,甚至可以做到两根水管 4 个花洒同时供 4 个人使用。单线程处理能力低。例如,一个人搬砖与多个人搬砖,一个人只能搬一车砖,但是多个人可以一起搬多车砖。
在 Java 里实现线程的方式有 Thread、Runnable、Callable。
使用线程可以获得更大的吞吐量,但是开销很大,如线程栈空间的大小、切换线程需要的时间等,所以用到线程池进行重复利用。当线程使用完毕之后,就放回线程池,避免创建与销毁的开销。
![](https://static001.geekbang.org/infoq/21/21fbebe4b06f9bb19445c9091c5f1337.png)
![](https://static001.geekbang.org/infoq/87/87c2410960a010bb886c803272074c5b.png)
评论