分布式系统
Evan_Gu
专注大数据可视化和可视分析相关的理论、方法与技术,探索行业中最佳实践与应用。
展开
-
【推荐】深入理解分布式事务(一)
深入理解分布式事务一、引言分布式事务是指在网络中一个或多个主机上的数据库事务的调用[1]^{[1]}[1],即一个分布式事务包括一个或多个,独立或一组操作,用于更新两个或更多不同分布式数据库节点上的数据[2]^{[2]}[2]。分布式事务相对单节点数据库事务而言,在分布式数据库中,确保数据的执行与单节点数据库事务执行的效果一致,满足ACID (atomicity, consistency,...原创 2020-02-24 22:43:24 · 814 阅读 · 0 评论 -
【微服务架构】9 管理和运维
9 管理和运维微服务与单块应用的运行方式有几方面不一样。在微服务中,但应用可以变成一个分布式系统,由多个相关关联的微服务组成。因此,我们必须管理高度分离的系统,以及每个服务之间的通信。运行中的服务比单块应用中的服务运行更高。当加载的特征变化后,一个微服务应用应该快速调整多个运行的服务进行响应。因此,我们必须自动化的部署新的、移除就的服务实例,来确保所有的应用运行合适的状态。在每个生产系统中,...原创 2019-05-26 19:03:38 · 1746 阅读 · 0 评论 -
【微服务架构】 8 部署与配置
8 从开发环境到生产环境本节讨论如何构建微服务、部署微服务。通过这节内容,促进开发环境到生产环境的平滑移动:一个微服务必须独立部署一个新版本的微服务应该在一分钟内部署完毕,而不是一个小时一个微服务应该具有容错能力,能够避免雪崩式的失败一个微服务可以不改变代码就部署到不同目标环境微服务架构需要很好的自动部署工具,帮助管理部署、测试和提升服务跨目标环境。本章主要包括以下几个主题:...原创 2019-05-18 22:10:01 · 1230 阅读 · 0 评论 -
【微服务体系】6 应用安全
6 应用安全安全作为应用重要部分,必须要考虑。本章讨论在云原生的微服务架构下的安全要求。6.1 微服务架构安全微服务架构动态的本质,改变了安全的方式。安全与如何定义应用或服务边界相关。如下图所示,表示单块应用和微服务应用的请求流程图。单块应用和微服务应用两者最大的区别,单块应用的组成是固定的,而微服务的组成经常发生变化。微服务独立更新。安全边界永远不够。如何以一种有机的方式保护这种快速变...原创 2019-04-30 16:57:50 · 594 阅读 · 0 评论 -
【微服务架构】5 数据处理
5 数据处理5.1 微服务中数据特征定义微服务中的存储数据有一种方法,即从上到下方法。有业务级开始设计数据模型。如何定义数据、如何处理数据、如何与其他微服务的数据存储进行共享。领域驱动设计实体根据领域驱动设计,我们将会有以下几类对象:实体 Entity一个不是由它的属性进行定义的对象,而是根据线程定义的。Value Object一个对象包含属性,但是没有概念的定义,可以被认为是不...原创 2019-04-29 21:54:04 · 602 阅读 · 0 评论 -
【微服务架构】7 微服务测试
7 测试微服务应用在建造的时候应该考虑到测试。好的测试能够让代码更加友好,正向影响持续提交流程。根据应用组件的生命周期,可以分为以下几类测试:单服务测试由分离的团队实行测试临时环境在临时环境执行测试,微服务组成一个特别的应用部署到一个临时环境中,用于测试。生产环境运行在生产环境的测试测试应该作为构建(build)、发行版(release)、运行(run)流程中自动执行的部分。...原创 2019-05-04 20:17:59 · 1912 阅读 · 0 评论 -
【微服务架构】4 微服务间通信
4 微服务间通信在分布式系统中,服务内部的通信很重要的。组成应用的微服务需要一起无缝的工作,向客户端提供服务。不同服务之间的通信有两种形式,同步和异步调用。4.1 同步和异步同步通信,即请求后立马获得响应。异步通信,是一种消息,不需要响应。高度分布式系统中使用异步事件或消息就是强有力的应用场景。对于任何一种调用风格,开放的API需要提供文档说明。事件或消息负载也需要提供文档说明。事件订阅...原创 2019-04-28 20:31:18 · 922 阅读 · 1 评论 -
【微服务架构】3 服务注册与发现
服务注册与发现微服务被设计成能够容易水平扩展,需要一种方法来解决多个服务实例如何定位,并且对多个服务的调用如何负载均衡。服务定位包括以下三个部分内容:1.服务注册2.服务调用3.API网关服务注册服务注册是一个持久化的存储,用于记录当前可用的微服务列表,以及访问他们的路由信息。微服务之间通信需要注册服务,主要因为以下几个原因:1.注册当一个服务成功的部署后,微服务需要通过服务注册进...原创 2019-04-27 18:07:19 · 486 阅读 · 0 评论 -
【微服务架构】创建微服务
1 创建微服务1.1 定义服务采用领域驱动设计原则在领域驱动设计中,一个domain表示一个特定的知识领域或活动。一个model代表领域某个重要方面的抽象,用于理解领域的变化。这个模型用于构建解决方案,跨团队交流。Bounded Context允许领域被分为多个独立的子系统。每个Bounded Context可以拥有自己的模型来表示Domain中的概念。将领域元素转换为服务应用和服务结...原创 2019-04-26 18:14:18 · 708 阅读 · 0 评论 -
【微服务架构】微服务简介
微服务简介(MicroServices)微服务是一种架构风格,一个或多个小的微服务组成一个复杂、庞大的软件应用。每个微服务集中在完成一个较小业务能力的任务。这些微服务可以用任意语言开发。Martin Fowler’s 定义的微服务,微服务用于组成复杂的应用,微服务够小,独立、进程可替代、微服务之间使用轻量级的API, 并且微服务不依赖统一的开发语言更多信息参考:Martin Fowler的论...原创 2019-04-25 21:09:56 · 350 阅读 · 0 评论 -
中间件术语
前言最近跟同事谈到中间件技术,突然发现,不知道如何定义中间件,于是找到了国标下述内容根据国标/推荐 GB/T 33847-2017 描述信息技术 中间件术语Information technology—Middleware terminology中间件(middleware) 位于系统软件之上,用于支持分布式应用软件,连接不同软件实体的支持软件。事务处理中间件(transaction...原创 2019-01-31 15:40:08 · 1153 阅读 · 0 评论 -
【分布式系统】两段式提交2PC
2PC(two-phase commit protocol) 在事务过程,数据库和计算网络,两阶段提交协议,是一原子提交协议类型ACP(atomic commitment protocol). 它是一个分布式算法,用于协调分布式原子事务是否需要“提交”或“取消”。无论系统中出现何种失败(进程、网络节点、通讯),该协议都会成功。两阶段提交具体方案,在多个服务中,一个服务节点作为协调器Coor...原创 2018-04-27 10:03:27 · 1229 阅读 · 0 评论