个人简介

Echo Blog


江湖无名 安心练剑
  • Trace 系统设计
    Trace 系统 开发过稍微大一点的soa服务系统的程序员都听说过trace系统(但真正从零开始设计的人,我个人认为很少)。为什么需要trace呢?原因是调用soa服务的调用链路太复杂(什么是调用链路,下面解释),trace的目的是为了定位系统的调用过程的一切一切。 理论依据 Google 的 Dapper: a Large-Scale Distributed Systems Trac...
    2019-01-16 01:42:23 | Devops
  • Metrics
    Metrics Metrics 是一个Java库,可以让您无比深入地了解代码在生产中的作用。 度量标准提供了一个强大的工具包,用于衡量生产环境中关键组件的行为。 借助Jetty,Logback,Log4j,Apache HttpClient,Ehcache,JDBI,Jersey等公共库的模块以及Ganglia和Graphite等报告后端,Metrics为您提供全栈可见性。 快速开始 ...
    2019-01-16 01:42:23 | Devops
  • Jersey
    Jersey 如果没有一个好的工具包,开发RESTful Web服务可以无缝地支持在各种表示媒体类型中公开您的数据,并抽象出客户端 - 服务器通信的低级细节并非易事。 为了简化RESTful Web服务及其Java客户端的开发,设计了标准的可移植JAX-RS API。 Jersey RESTful Web Services框架是开源的,生产质量的框架,用于开发Java中的RESTful...
    2019-01-16 01:42:23 | Web
  • Google Dapper
    概述 当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具。 Dapper–Google生产环境下的分布式跟踪系统,应运而生。那么我们就来介绍一个大规模集群的跟踪...
    2019-01-16 01:42:23 | Devops
  • SQL 笛卡尔积处理
    笛卡尔积 实际问题 查询 A 表,关联 B 表。但是 B 表的记录可能存在多条。 原始 SELECT count(a.ID) FROM A a LEFT JOIN B b ON a.order_no=b.order_no WHERE .... GROUP BY ... Having... 修正 可以将 B 查询关联中用到的数据做一个子查询。 可以如下处理: SELECT...
    2019-01-14 10:40:37 | SQL
  • MySQL 日志常见问题 redo log binlog undolog
    mysql 日志 MySQL 里有两个日志,即:重做日志(redo log)和归档日志(binlog)。 其中,binlog 可以给备库使用,也可以保存起来用于恢复数据库历史数据。它是实现在 server 层的,所有引擎可以共用。redo log 是 InnoDB 特有的日志,用来支持 crash-safe 能力。 你一定听过 MySQL 事务的两阶段提交,指的就是在事务提交的时候,分...
    2019-01-14 10:29:09 | SQL
  • 负载均衡
    DNS 负载均衡 开始呢,我们的应用只有一台web-server。那么你希望: 输入guduyan.com就能定位该server! 那很简单,只要在DNS里配上域名和你的server映射关系,就能访问到啦! 好,现在呢,多了一台web-server,你就可以通过在DNS里加一条配置,以DNS轮询方式进行负载均衡。 Nginx+DNS 现在假设,我们多了一些需求啊。你的系统按照功能模...
    2019-01-14 10:29:09 | Distributed
  • Redis 是什么?redis 的应用场景有哪些?
    Redis 是什么? Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。 它支持数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志和半径查询的地理空间索引。 中文官网 Redis 使用场景 分布式锁 Redis 分布式锁设计 计数器(string) 如知乎每个问题的被浏览器次数 set key 0 in...
    2019-01-14 10:29:09 | Cache