随笔分类 -  A1--系统设计与架构

系统设计:推送通知/消息
摘要:相关内容 通知模板、用户信息、通知设置、设备信息。 推送的类型 推送的类型,比如:通知、邮件、短信等 推送通知的服务商 极光推送(‌JPush)‌ 推送流程 后端服务 --> 第三方推送服务(极光) > app 通知模板 需要制定一个通知模板,发送给用户的通知,是什么格式的,包括 唯一key、标题、 阅读全文

posted @ 2024-08-14 23:31 乐之者v 阅读(53) 评论(0) 推荐(0) 编辑

常见的系统设计
摘要:存储 一般用 mysql。数据量达到两千万以上的考虑分库分表。 高并发场景,考虑加入缓存。 缓存 使用缓存时,要注意: https://blog.csdn.net/sinat_32502451/article/details/139545057 逻辑执行失败,如何处理? 补偿 当业务逻辑执行失败时, 阅读全文

posted @ 2024-07-10 19:57 乐之者v 阅读(7) 评论(0) 推荐(0) 编辑

记一次接口超时
摘要:近期,收到线上告警,某个接口在中午12点时,突然超时了。 Skywalking/ Arthas 查看接口的耗时 Skywalking/ Arthas 都可以查看接口内各个方法的耗时。 一般情况下,查看到耗时的方法, 看下sql 语句,查看执行计划EXPLAIN ,有没有加索引,有没有慢sql。 看下 阅读全文

posted @ 2024-07-07 00:14 乐之者v 阅读(22) 评论(0) 推荐(0) 编辑

接口异步回调
摘要:接口异步回调 有些接口,内部逻辑非常复杂,非常耗时。 可以通过接口异步回调来实现,避免超时。 比如 , 系统A 的 A1接口调用 系统B 的 B1接口, 系统B在完成功能后,系统B 回调系统A 的 另一个接口 A2。 小心第三方系统不回调 一定要做主动查询 。如果第三方系统不回调,也能通过主动查询, 阅读全文

posted @ 2024-06-21 23:48 乐之者v 阅读(28) 评论(0) 推荐(0) 编辑

系统稳定性概览
摘要:系统稳定性 系统稳定性,包括:监控、 告警、性能优化、慢sql、耗时接口等。 系统的稳定性的治理,可以围绕这几方面展开。 监控 Prometheus 监控并收集数据。监控 qps,tps, rt , cpu使用率,cpu load,gc次数 。。 Grafana从数据源(如Prometheus ) 阅读全文

posted @ 2024-05-30 22:28 乐之者v 阅读(30) 评论(0) 推荐(0) 编辑

限流及限流算法
摘要:使用场景 限流是高并发的处理方法之一。 高并发处理方案: 缓存:缓存的目的是提升系统访问速度和增大系统处理容量。 降级:降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开。 限流:限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统 阅读全文

posted @ 2024-05-27 00:14 乐之者v 阅读(10) 评论(0) 推荐(0) 编辑

系统之间的一致性问题 -- 支付成功显示未支付
摘要:系统之间的一致性问题 -- 支付成功显示未支付: 接入第三方系统的支付接口,支付成功后,却显示未支付。 支付成功显示未支付,有些用户会重复支付,有些用户会取消订单,后果非常严重。 问题分析: 先查看第三方系统的支付状态。 如果第三方系统的支付状态也是未支付,那么说明第三方系统的状态有问题。 如果第三 阅读全文

posted @ 2024-04-28 12:41 乐之者v 阅读(117) 评论(0) 推荐(0) 编辑

app跳转小程序免登录
摘要:app跳转小程序二次登录: app跳转小程序,第一种做法是 点击 app 页面 --> 跳转到对应小程序的路径 --> 登录小程序 --> 使用功能。 这种做法,在 app跳转小程序后,需要二次登录,用户体验不是很好。 app跳转小程序免登录: (1) 点击 app 页面 (2) 跳转到中间页(可以 阅读全文

posted @ 2024-01-13 00:54 乐之者v 阅读(235) 评论(0) 推荐(0) 编辑

接口设计-增删改查
摘要:关于增删改查的 接口设计,比较简单,有一些固定的做法可以使用。 查询列表 查询列表的接口,带上分页的入参: pageNo,pageSize,非必选,并设置默认值。 入参为 dto,根据 dto 从数据库查出实体对象 entity 后,转换为展示层 vo。 entity 对象转换为 vo,可以用 Be 阅读全文

posted @ 2023-11-05 00:05 乐之者v 阅读(145) 评论(0) 推荐(0) 编辑

如何提高系统的可用性/高可用/高并发
摘要:提高系统可用性常用的一些方法,有缓存、异步、重试、幂等、补偿、熔断、降级、限流。 缓存 缓存的速度,比数据库快很多,添加缓存是简单有效的做法。 注意缓存与数据库的一致性,数据表记录变更时记得处理缓存。 Redis缓存的示例,详情见:https://blog.csdn.net/sinat_325024 阅读全文

posted @ 2023-10-25 20:20 乐之者v 阅读(107) 评论(0) 推荐(0) 编辑

如何写好一个接口
摘要:接口设计 接口要注意拓展性,设计得灵活一些,应对业务的变化。 字段尽量不要耦合在一起。 接口尽量通用。能调用一次完成的,不用调用两次。网络IO是很慢的。 接口的字段,尽量少一些,字段越多,越混乱,越难联调。 能批量处理,尽量批量处理。 如果不存在依赖关系,能异步处理,尽量异步处理。 状态变量,尽量不 阅读全文

posted @ 2023-03-21 22:14 乐之者v 阅读(84) 评论(0) 推荐(0) 编辑

审批流程的设计
摘要:应用场景 在项目开发中,有时会遇到一些审批流程的需求,流程大同小异,可以根据需求进行设计开发。 表结构示例 CREATE TABLE `tt_audit` ( `id` int(10) NOT NULL COMMENT '流水号', `submit_date` date NOT NULL COMME 阅读全文

posted @ 2023-02-22 00:04 乐之者v 阅读(334) 评论(0) 推荐(0) 编辑

导入导出的系统设计
摘要:导入 导入在系统中属于比较常见的功能。 新增数据时,每次只新增一条数据,会比较慢。 可以通过导入excel文件,进行批量导入。 导入的主要流程 (1)用户点击下载excel导入模板 (2)用户填写模板数据后,点击上传文件,选中文件进行上传 (3)解析导入文件 (4)校验字段,并给出提示 数据全部校验 阅读全文

posted @ 2022-08-27 23:56 乐之者v 阅读(440) 评论(0) 推荐(0) 编辑

java系统设计 面试题
摘要:系统设计 面试题 高可用、高并发、高性能。 可用性、一致性。 分布式、高并发场景 遇到高并发场景,可以使用Redis缓存、Redis限流、MQ异步、MQ削峰等。 Q:在实践中,遇到过哪些并发的业务场景? 秒杀。比如抢商品,抢红包。 秒杀 Q:如何设计一个秒杀/抢券系统? 可以通过队列配合异步处理实现 阅读全文

posted @ 2022-08-19 22:43 乐之者v 阅读(594) 评论(0) 推荐(0) 编辑

java快速熟悉新项目
摘要:java快速熟悉新项目 首先要会用整个系统。亲自用几遍,才能了解业务。 理解项目的架构,多看架构图。 哪些是底层服务?哪些是中间层?哪些是服务提供者,哪些服务消费者? 可以看一下哪些项目调用了哪些服务?比如Rpc包的服务有哪些。 多观察上层服务调用了哪些底层的服务。 可以画流程图,搞清楚业务流程,以 阅读全文

posted @ 2021-06-01 11:54 乐之者v 阅读(125) 评论(0) 推荐(0) 编辑

支付功能设计及实现思路
摘要:支付功能设计 主要包括:订单表,订单日志表,订单队列,定时任务。 主要考虑:事务性、幂等性、安全性。 表结构设计 订单表: 订单表,最主要的就是订单号、支付状态。 CREATE TABLE `t_order` ( `fid` int(11) NOT NULL AUTO_INCREMENT COMME 阅读全文

posted @ 2020-05-11 09:49 乐之者v 阅读(5243) 评论(1) 推荐(1) 编辑

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示