摘要:
一、简介 生产环境偶尔会出现一些异常问题,WinDbg 或 GDB 就是解决此类问题的利器。调试工具 WinDbg 如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具,Dump 文件类似于飞机的黑匣子,记录着生产环境程序运行的状态。 本文主要介绍了调试工具 WinDbg 和抓包工具 ProcDu 阅读全文
摘要:
一、写在前面 应用分层这件事情看起来很简单,但每个程序员都有自己的一套,哪怕是初学者。如何让一家公司的几百个应用采用统一的分层结构,并得到大部分程序员的认同呢?这可不是件简单的事情,接下来以我们真实案例与大家一起探讨,先问大家两个技术问题: 服务的调用代码你觉得放到哪一层好呢? A 表现层 B 业务 阅读全文
摘要:
企业总体架构是什么?有什么用?具体怎么做?以我曾任职的公司为案例,一起来探讨这个问题。 这家公司当时有 200 位研发人员和 200 多台服务器,我刚进这家公司时,系统已经玩不下去了,总是出现各种问题,例如日常发布系统时或访问量稍微过大时,系统就会出现很多故障,而且找不到故障发生的根本原因。 我进公 阅读全文
摘要:
一、Jenkins 简介 当每月发布次数变得越来越多时,如超过 200 次,发布工作人员的工作量会翻倍,此时由人工发布操作失误引起的风险会变得越来越大。为了提高项目的发布效率,也为了降低由人工操作失误带来的风险,需要引进持续集成工具。 Jenkins 是一个用 Java 语言编写的开源持续集成工具, 阅读全文
摘要:
一、ORM 工具 1.1、Dapper.NET 简介 Dapper.NET 是个开源的轻型 ORM。它扩展了 IDbConnection 接口的功能,所以只要某类实现 IDbConnection 接口,那么该类对象就能调用到 Dapper.NET 中的方法。提供的 Dapper.dll,支持.NET 阅读全文
摘要:
一、ZooKeeper 是什么 Apache ZooKeeper 由 Apache Hadoop 的子项目发展而来,于 2010 年 11 月正式成为了 Apache 的顶级项目。 ZooKeeper 是一个开放源代码的分布式协调服务。它具有高性能、高可用的特点,同时也具有严格的顺序访问控制能力(主 阅读全文
摘要:
一、Solr 是什么 Apache Solr 是一个开源的搜索服务器,Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。 Apache Lucene 是一个高效的、基于 Java 的全文检索库。 二、为什么要用 Solr 在公司后台历史订单查询的应用中,模 阅读全文
摘要:
一、MSA 简介 1.1、MSA 是什么 微服务架构 MSA 是 Microservice Architect 的简称,它是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相通讯、互相配合,为用户提供最终价值。它与 SOA 之间的区别如下: 1.2、我们的 MSA 框架 我们的微服务 阅读全文
摘要:
一、Metrics 简介 应用监控系统 Metrics 由 Metrics.NET+InfluxDB+Grafana 组合而成,通过客户端 Metrics.NET 在业务代码中埋点,Metrics.NET 会把收集到的数据存储在 InfluxDB 数据库中,然后通过 Grafana 来展示监控数据。 阅读全文
摘要:
一、Job 简介 Job 类似于数据库中的作业,多用于实现定时执行任务。适用场景主要包括定时轮询数据库同步、定时处理数据、定时邮件通知等。 我们的 Job 分为操作系统级别定时任务 WinJob 和 HttpJob,其中,WinJob 使用开源的任务调度框架 Quartz.NET+ ZooKeepe 阅读全文
摘要:
一、集中式日志 日志可分为系统日志、应用日志以及业务日志,系统日志给运维人员使用,应用日志给研发人员使用,业务日志给业务操作人员使用。我们这里主要讲解应用日志,通过应用日志来了解应用的信息和状态,以及分析应用错误发生的原因等。 随着系统的日益复杂,大数据时代的来临,需要几十甚至上百台的服务器是常有的 阅读全文
摘要:
一、写在前面 使用过分布式中间件的人都知道,程序员使用起来并不复杂,常用的客户端 API 就那么几个,比我们日常编写程序时用到的 API 要少得多。但是分布式中间件在中小研发团队中使用得并不多,为什么会这样呢? 原因是中间件的职责相对单一,客户端的使用虽然简单,但整个环境搭起来却不容易。所以对于系列 阅读全文
摘要:
Redis的使用难吗?不难,Redis用好容易吗?不容易。Redis的使用虽然不难,但与业务结合的应用场景特别多、特别紧,用好并不容易。我们希望通过一篇文章及Demo,即可轻松、快速入门并学会应用。 一、Redis 简介 Redis是一个开源的Key-Value存储,但又不仅仅是Key-Value存 阅读全文
摘要:
中小型研发团队很多,而社区在中小型研发团队架构实践方面的探讨却很少。中小型研发团队特别是 50 至 200 人的研发团队,在早期的业务探索阶段,更多关注业务逻辑,快速迭代以验证商业模式,很少去关注技术架构。 这时如果继续按照原有的架构及研发模式,会出现大量的问题,再也无法玩下去了。能不能有一套可直接 阅读全文