![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微服务架构
天涯兰的博客
技术专家、IT技术图书作译家
展开
-
微服务架构与现有系统并存的主要技术
在现实场景中,从零打造一个微服务架构机会很少,更多的是从一个现有系统出发逐步转型到微服务架构。对于那些已经处于架构腐化边缘的现有系统而言,往往正在寻找一种可以替代的架构风格,微服务架构可以是一种潜在的选择。与构建一个新系统相比,从现有系统向微服务架构转型具有一些显著的特点: 业务模型 对于现有系统而言,我们已经具备明确的业务模型。尤其是那些寻找变革的架构,对于业务模型的理解通常很深刻...原创 2020-03-20 11:53:54 · 992 阅读 · 0 评论 -
微服务架构中服务集成的主要技术
在微服务架构中,服务之间势必需要集成,而这种集成关系远比简单的API调用要复杂。在本文中,我们将系统分析服务集成的方式以及在微服务架构中的表现形式。关于服务之间的集成存在一些通用的模式,我们也将在梳理这些模式的同时给出实现过程中的最佳实践。业界关于系统集成存在一些主流的模式和工程实践,包括文件传输(FileTransfer)、共享数据库(Shared Database)、远程过程调用(R...原创 2020-03-19 11:01:52 · 4797 阅读 · 0 评论 -
微服务拆分的维度和策略
关于服务拆分的切入点,我们先从MartinL.Abbott所著《架构即未来》中所介绍的AKF扩展立方体出发寻找一些灵感,然后给出本文中关于服务拆分的两大维度。1. AKF扩展立方体AKF扩展立方体(Scalability Cube)是一种可扩展模型,这个立方体有三个轴线,每个轴线描述扩展性的一个维度(见下图),分别是:X轴代表无差别的克隆服务和数据,工作可以很均匀的分散在不同的服务实...原创 2019-07-31 23:55:28 · 1881 阅读 · 0 评论 -
管理服务的数据
数据对于微服务架构而言同样也可以认为是一种依赖关系,因为任何业务都需要使用某个数据容器作为持久化的机制或者数据处理的媒介,这里的数据容器不仅仅是指关系型数据库,而是泛指包括消息队列、搜索引擎索引以及各种Nosql在内的数据媒介。微服务架构中存在一种说法,即我们需要将所有微服务所用的资源全部嵌入到该服务中,从而确保微服务的独立性。但从数据管理角度出发,想要完整实现这种资源嵌入并不容易,因为长久以来,...原创 2019-08-17 17:48:10 · 357 阅读 · 0 评论 -
管理服务之间的依赖关系
在系统的各种组件之间,尤其是类、包、模块以及服务之间都可能存在依赖关系。依赖在某种程度上不可避免,但是过多的依赖势必会增加系统复杂性和降低代码维护性,从而成为团队开发的阻碍。在微服务架构中存在众多服务,服务之间需要管理相互之间的依赖关系。1. 构建无环依赖架构依赖关系有三种基本的表现形式,其中类似Service1依赖于Service2这种直接依赖最容易识别和管理(见下图a);间接依赖即直接...原创 2019-08-16 15:29:14 · 6410 阅读 · 0 评论 -
构建微服务架构的系统方法
构建微服务架构所需要做的不仅仅是构建服务本身。一个微服务系统的构建过程代表的是一种组织级别的活动,包括组织的人员架构、研发过程、技术体系和协作文化等多个因素。同样,微服务的运行时环境、错误处理机制和运维实践也是我们需要考虑的内容。本文中我们将针对如何构建微服务架构给出一套完整的系统方法。下图给出了构建微服务架构的系统方法,这套系统方法有助于把所需要做的工作进行分解并形成切入点。我们可以看到整个...原创 2019-08-10 14:26:49 · 652 阅读 · 0 评论 -
调整微服务代码结构的一些常见技术
在微服务大行其到的当下,究竟哪些代码应该放在具体的某一个微服务中一直是一个值得探讨的话题。本文不对这个主题展开讨论,而是关注于助于调整现有微服务架构中代码结构的相关技术,包括共享库、共享服务、代码转移、代码冗余、提取新服务和重写服务。这些对于如何重构现有的服务体系有一定的参考意义。1. 共享库如果两个服务想要共用一些代码,那么这些代码就可以被提取并放到一个共享库中。共享库体现的是一种代码复...原创 2020-03-18 09:29:19 · 1056 阅读 · 0 评论