0%

序言

高并发的核心目标有两点

  • 支持高吞吐
  • 程序逻辑要准确(数据准确)

实际生产中,实现高并发的方案只有一种 分而治之,下面我会详细的分析,到底是如何分而治之。

不考虑带宽等因素的话, 单机支持的TPS肯定有有限的;实际生产中,必然是分布式架构才能支持高并发量。

分而治之

  • 业务系统拆分
  • 分布式架构的分
  • 业务链路拆分
  • 服务对象拆分
  • 入口拆分

如果要支持10w的TPS/QPS,必然是分布式架构(刨开超算除外),既然是分布式架构必然是多个子系统以及每个子系统的多个实例共同协作完成既定的技术指标。

阅读全文 »

序言

系统设计是作为一个架构师最基本的素质和能力要求;本人对于过往的工作经历来关于系统设计总结(方法论);

Tips:
系统设计的范畴要比软件工程小;系统设计对于软件工程占据着最重要的位置。

系统设计流程

  1. 需求分析
  2. 资源评估
  3. 定义目标
  4. 领域设计
  5. 技术设计
  6. 数据库设计
  7. 代码实现
  8. 交付测试&上线
阅读全文 »

背景

在公司从事CRM系统设计的时候,产品设计之初有个功能需求就是需要导出合同文件(PDF)以及提供预览功能。其中合同包括单次广告合同,DSP合同,框架合同以及认刊书等等,每种合同的内容和格式都不相同。

思考

无论什么合同,从主题内容上来看,都包括静态部分和动态部分;(所谓静态即内容针对与所有的合同都是一样的,而动态内容则需要不同的数据来渲染成不同的格式 )。为此,想到了dubbo官网中关于api与spi的分离的设计

技术上,选用的itext7的技术实现。 如果编码去写合同的cell肯定不现实,而且后期的可维护性和可拓展性太差。比如实时变更合同上的条款内容, 需要重新发版,代价高。所以选择html+freemarker+itext的实现方案。

阅读全文 »

面试的时候,总会被面试官问道 “在职业生涯中,你印象最深的bug是什么?”; 有时候, 如果紧张,真滴会不知道该说些啥。
这个系列就是为了解决下面两个问题

  • 复盘之前的错误,方便回顾并总结
  • 更加高效的面试此类问题
阅读全文 »

Apache Spark™ is a unified analytics engine for large-scale data processing.

编译环境

类型 说明
OS macOS Big Sur(v11.0.1)
Java JDK8
Scala 2.12
Spark 3.1.1

假设:
本文读者已经了解spark的用途以及其生态中的几大组件(spark-core, sparksql, mllib graphx)等

阅读全文 »