个人简介

Echo Blog


江湖无名 安心练剑
  • Git 学习汇总-目录
    为什么要学习这个系列 使用 git 已经很久了,但是仅仅停留在使用的层面。 遇到问题就跑去查一下,没有完整的学习历程。 当然只是系统的学习一遍,还是会很快就忘记。所以记录成博客,便于以后查阅。 希望系统学习一遍之后,遇到问题知道怎么排查。 chat Q1-详细介绍一下 git Git是一个分布式版本控制系统,用于跟踪和管理项目代码的变化。 它是由Linus Torvalds于...
    2019-01-17 01:34:35 | Git
  • 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