首页 > 其他分享 >经验总结

经验总结

时间:2023-11-20 14:14:01浏览次数:35  
标签:架构 系统 业务 故障 计件 电商 经验总结

总结

项目

  • "防御性编程"的思维。
  • 对于api、dao、service各自独立为一个模块
  • 将计算密集型与IO/存储密集型分割开来,提高资源利用率
  • 数据冗余Coupon表多了一个shop_id字段。通过打破范式,应对高并发的场景,你必须尽可能提高系统的吞吐量和性能,以空间换时间

业务

  • Long来表示“金额”。对于境内电商行业来说,金额往往是以分为单位的,这样我们可以直接使用Long类型参与金额的计算,比如100就代表100分,也就是一块钱比使用Double到处转换BigDecimal省了很多事儿。
  • 电商领域中,商品的数量通常不能以Integer整数来表示,这是因为只有标品才能以整数计件。对于像蔬菜、肉类等非标品来说,它们的计件单位并不是“个”。所以在实际项目中,尤其是零售行业的业务系统里,计件单位要允许小数位的存在。

代码

  • 模板模式是一种基于抽象类的设计模式,它的思想很简单,就是将共性的算法骨架部分上升到抽象层,将个性部分延迟到子类中去实现
  • 尽可能对上层业务屏蔽其底层业务复杂度,底层具体业务逻辑的修改对上层是无感知的,这其实也是开闭原则的思想。

架构

  • 做系统架构的时候,首要目标就是保障系统的高可用性。不管你的系统架构多么精妙,用的技术多么先进,如果系统的可用性无法得到保障,那么你做什么都是白忙活。像我们的人生一样,事业、家庭、地位都是0,健康才是一串0前面的那个1,没有1则一切皆无。所以,系统的高可用性,就是系统架构层面的那个1。
    • 避免单点故障:在做系统架构的时候,你应该假设任何服务器都有可能挂掉。如果某项任务依赖单一服务资源,那么这就会成为一个“单点”,一旦这个服务资源挂掉就表示整个功能变为不可用。所以你要尽可能消灭一切“单点”;
    • 故障机器状态恢复:尽快将故障机器返回到故障前的状态。对于像Nacos这类中心化注册中心来说,因故障而下线的机器在重新上线后,应该有能力从某个地方获取故障发生前的服务注册列表。

标签:架构,系统,业务,故障,计件,电商,经验总结
From: https://www.cnblogs.com/wftop1/p/17843803.html

相关文章

  • 【django开发】知识经验总结共50页md文档。今日分享:django配置和数据库操作详解
    Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原......
  • android studio 编译Telegram源码经验总结(2023-11-05)
    前言Telegram是一款强大的端到端加密IM,专注于安全性和速度,支持Android/IOS/Windows/macOS等平台,功能丰富,运行流畅,免费开源,代码具有学习和研究意义。一、androidtelegram源码下载地址:github:https://github.com/DrKLO/Telegram.git二、编译环境的选择:Windows版本:1064位;Andro......
  • 【django开发】知识经验总结共50页md文档。今日分享:django项目搭建
    Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原......
  • 多年学习django知识经验总结,从基础到高手,markdown笔记,共计50页,10大模块。 第(2)期
    Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原......
  • 根据实际工作经验总结一下个人.Net高并发处理做法
    场景描述1.用户下单,商品库存已经不足了,但还是扣减了2.医生开方,药品不足了,但还是被开了出去···类似场景解决思路思路1:预扣库存用户下单时,系统先进行预扣库存操作,然后后将“下单业务”发布到MQ(消息队列)进行处理,成功通知,失败回滚预扣库存操作对于预扣库存时可能出现的“......
  • 【大数据OLAP技术新书推荐】 字节跳动、阿里巴巴大厂资深架构师程序员多年实践经验总
    ClickHouse领域集大成之作-ClickHouse入门进阶实战的标准参考书-日常工作案头必备!目录《ClickHouse入门、实战与进阶》简介图书评价作者简介内容简介为何写作本书本书主要特点如何阅读本书致谢全书目录目录《ClickHouse入门、实战与进阶》内容简介为何写作本书本书主要特点......
  • Git使用经验总结2-配置用户名邮箱
    可以使用gitconfig指令来配置一些设置,比如配置用户名邮箱。在开发团队要求成员配置用户名和邮箱是很有用的,可以配合工具区分成员的代码,以及将代码中的问题发送给成员的邮箱中。查看当前Git的用户名及邮箱的指令:gitconfiguser.namegitconfiguser.email修改Git用户名及邮......
  • Linux日志管理经验总结(crontab+logrotate)
    Linux系统-部署-运维系列导航 日志管理目标日志的管理,一般包括两大部分日志内容,合理的日志内容(日志锚点,内容格式,等)可以为应用服务的执行记录、问题排查提供最有力的帮助日志存档规则,包括日志分割方式(按日期、按文件大小,等),日志存档数量,如只保存最近一个月,等对于自行开发的......
  • 构建高效远程团队协作网络的最佳实践分享与经验总结
    随着全球化和科技发展的推进,越来越多的企业开始采用远程办公模式。构建高效远程团队协作网络成为了提高工作效率和团队凝聚力的关键。本文将分享一些构建高效远程团队协作网络的最佳实践和经验总结,帮助团队更好地远程协作。1.选择合适的协作工具选择适合团队需求的协作工具是构......
  • java线上应用故障性异常处理,经验总结
    一、摘要由于硬件问题、系统资源紧缺或者程序本身的BUG,Java服务在线上不可避免地会出现一些“系统性”故障,比如:服务性能明显下降、部分(或所有)接口超时或卡死等。其中部分故障隐藏颇深,对运维和开发造成长期困扰。笔者根据自己的学习和实践,总结出一套行之有效的“逐步排除”的方......