Category: Design Patterns

[转]如何用Zipkin做好分布式追踪? 0

[转]如何用Zipkin做好分布式追踪?

  现代微服务架构由于业务系统模型日趋复杂,分布式系统中需要一套链路追踪系统来帮助我们理解系统行为,明确服务间调用。最近作者请到了 Zipkin 项目的主要开发维护人员 Adrian Cole 来介绍有关 Zipkin 项目的细节内容,可以让大家了解到如何在分布式追踪系统中用好 Zipkin。Adrian 一直在从事云计算相关开源项目的开发,是开源项目 Apache jclouds 和 OpenFeign 的创始人。最近几年,他专注于分布式跟踪领域,是 OpenZipkin 项目的主要开发维护人员。Adrian 目前在 Pivotal Spring Cloud OSS 团队工作。在加入 Pivotal 之前,他还在 Twitter,Square,Netflix 工作过。 Please follow and like us:0

0

[转]基于CQRS的架构在答题PK小游戏中的实践案例

1. 前言 领域驱动设计(Domain-Driven Design,下文简称 DDD)在微服务时代成为了风口话题,而在 DDD 领域,我们常常看到命令查询与职责分离(Command and Query Responsibility Segregation,下文简称 CQRS)架构的身影。CQRS 架构由于本身只是一个读写分离的思想,实现方式多种多样。比如数据存储不分离,仅仅只是代码层面读写分离,也是 CQRS 的体现;然后数据存储的读写分离,Command 端负责数据存储,Query 端负责数据查询,Query 端的数据通过 Command 端产生的 Event 来同步,这种也是 CQRS 架构的一种实现。本文介绍的是后者这种实现方式的 CQRS 架构在研发实时答题 PK 系统中的实践,此外,我们还会引入事件溯源(Event Sourcing)模式,本文认为结合事件溯源模式,可以更好发挥 CQRS 架构的价值。 Please follow and...

[总结]日志格式 0

[总结]日志格式

概述 统一日志服务使用了分布式跟踪技术来收集和存储分散在各个应用或接口服务的日志,这些日志可用于后续的运维、监控和统计分析。 分布式跟踪技术把每次请求的整个调用链记录下来,可以方便的查看一次请求从客户端到应用服务器到数据库等每个阶段的执行情况,详细参考OpenTracing。 Please follow and like us:0

[转]最佳日志实践 v2.0 0

[转]最佳日志实践 v2.0

0. 缘起 大约在三年前,我曾经写过一篇 最佳日志实践,还被码农周刊选为那年的 最受欢迎技术干货 之一。当时我任职于网易杭州研究院的存储平台组,主要做网易对象存储(NOS)的开发和部分运维工作。由于网易云音乐,易信等几个重要产品陆续上线,业务压力剧增,我们的系统在前前后后大约半年的时间里,出现了大大小小各种事故。通过不断总结事故原因、不断地优化代码、进化部署架构,才使整个系统逐渐稳定下来。那个时候组里人常常开玩笑说,我们采用的是TDD的开发模式,只是这个TDD不是测试驱动开发(Test Driven Development),而是悲剧驱动开发(Tragedy Driven Development)。 Please follow and like us:0

[转]最佳日志实践 v1.0 0

[转]最佳日志实践 v1.0

前言 日志用来记录用户操作、系统运行状态等,是一个系统的重要组成部分。然而由于日志并非系统核心功能,通常情况下并不受团队的重视。在出现问题需要通过日志来定位时,才发现日志还存在很多问题。 日志记录的好坏直接关系到系统出现问题时定位的速度,同时可以通过对日志的观察和分析,提前发现系统可能的风险,避免线上事故的发生。 我们在开发和运维NOS(网易对象存储,Netease Object Storage)的过程中,对整个系统的日志进行了分析优化,积累出一些经验,归纳如下。 Please follow and like us:0

0

[转]微服务架构设计模式

如今,微服务架构已经成为了现代应用开发的首选。虽然它能够解决大部分的程序问题,但是它并非一颗百试不爽的“银弹”。 在采用这种架构之前,我们应当事先了解可能出现的各种问题及其共性,预先为这些问题准备好可重用的解决方案。 那么,在开始深入讨论微服务的不同设计模式之前,让我们先了解一下微服务架构的一些构建原则: 可扩展性 可用性 弹性 独立、自主性 去中心化治理 故障隔离 自动调配 通过 DevOps 实现持续交付 在遵循上述各条原则的同时,我们难免会碰到一些挑战。下面我们来具体讨论可能出现的各种问题、及其解决方案。 Please follow and like us:0