From 5718c1c7ff5d51b9b697d9dfddbef5c409d7c9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=82=85=E5=93=A5?= <184172133@qq.com> Date: Thu, 8 Jul 2021 10:57:54 +0800 Subject: [PATCH] Update README.md --- .../README.md" | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git "a/notes/\350\257\273\350\200\205\346\217\220\351\227\256/README.md" "b/notes/\350\257\273\350\200\205\346\217\220\351\227\256/README.md" index 0632063..857bc12 100644 --- "a/notes/\350\257\273\350\200\205\346\217\220\351\227\256/README.md" +++ "b/notes/\350\257\273\350\200\205\346\217\220\351\227\256/README.md" @@ -105,3 +105,22 @@ AQS: 第三阶段:学习 Spring 源码,学习完成后尝试结合 Spring 写一些中间件,比如数据库路由组件、ES查询引擎组件,这些在我写的《SpringBoot中间件设计和开发》中都有例子。 第四阶段:补充对 MQ、SpringCloud、ES 等框架类的深入学习,要学习它的设计架构、核心源码、技术目的、使用场景。 第五阶段:完成较难度项目的开发,比如实现一个分布式架构下的活动抽奖系统,如何设计其中的秒杀、抽奖算法、奖品发放,这个项目可以模拟小程序中一些抽奖的设计去实现。 + +--- + +设计一个系统,应该要考虑/着重要关注的点在那些?以及设计一个系统的流程顺序应该是怎么样的? 比如我需要设计一个消息中心/通知中心这样的东西 谢谢啦 + +除了通用的设计规范:高可用、高并发、易扩展外,还会根据具体的业务系统场景做具体的设计,比如你说的消息通知中心; +1. 你的系统要满足多少用户访问,面向的群体是什么样,通知触达消息、通知手机push、是否需要发送短信,是否和一些外部的触达系统对接等等 +2. 这个系统需要用到哪些技术栈,整体的技术架构是什么样,这些技术点团队里是否都有过使用经验,对于新技术是否有过技术调研和评审 +3. 在系统的流程设计上,一般包括:产品PRD评审、架构整体设计、研发技术设计、研发技术评审、进入开发阶段、日会进度风险汇报、研发完成提测、提测报告(含文档和单元测试等)、测试通过、研发通知上线。 +4. 如果是电商系统,还会考虑下单、支付、发货流程,中间还会有是否有秒杀场景、系统设计中是否有分布式锁的优化等等,所以在设计的大框架之外,还有因为不同项目的具体设计情况,这部分也是一种经验的总结。 + +--- + +大佬你好,话说分库分表排序怎么处理呢?? + +一般是以用户维度的分库分表,所以: +1. 通常对个人信息的排序直接从库里去就可以,不涉及夸库。 +2. 如果排序数据不多,一般也可以加入到redis中。 +3. 如果是夸库涉及到排序,需要把分库分表数据通过数据库 binlog 日志,使用 otter 工具,把数据同步到ES,在从ES查询使用。 -- GitLab