随笔分类 - [20]DesignAnalysis设计分析
-
API 接口的安全设计
摘要:API 接口的安全设计验证:ticket,签名,时间戳 一.背景 1.与前端对接的API接口,如果被第三方抓包并进行恶意篡改参数,可能会导致数据泄露,甚至会被篡改数据 2.与第三方公司的接口对接,第三方如果得到你的接口文档,但是接口确没安全校验,是十分不安全的 我主要围绕时间戳,token,签名三个 阅读全文
-
Event Sourcing(事件溯源)
摘要:Event Sourcing(事件溯源) MASA Framework - EventBus设计 概述 利用发布订阅模式来解耦不同架构层级,亦可用于解决隔离业务之间的交互 优点: 松耦合 横切关注点 可测试性 事件驱动 发布订阅模式 发布者通过调度中心将消息发送给订阅者。调度中心解决发布与订阅者之间 阅读全文
-
接口幂等
摘要:【工作篇】接口幂等问题探究 【工作篇】接口幂等问题探究 前言 最近遇到一些问题,表单重复提交,导致插入重复数据到数据库,这里查询一些通用的方案,自己都实践一下,以后好回顾。 实践代码项目 Github: https://github.com/h-dj/Spring-Learning/tree/mas 阅读全文
-
开关编程很有用
摘要:开关编程很有用 上线稳定性如何保证?开关编程很有用 大家好,我是架构摆渡人。这是实践经验系列的第一篇文章,这个系列会给大家分享很多在实际工作中有用的经验,如果有收获,还请分享给更多的朋友。 在日常工作中,无论是一周一个迭代,还是两周一个迭代,都避免不了上线的环节。唯一的区别就是上线的频次不同而已。那 阅读全文
-
设计模式的分类和六大原则
摘要:设计模式的分类和六大原则 设计模式的分类 总的来说,设计模式分位三大类: 创建型模式(5种)工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式 结构型模式(7种)适配器模式、装饰器模式、代理模式、外观模式(门面模式)、桥接模式、组合模式、享元模式 行为型模式(11种)策略模式、模板方法模式、 阅读全文
-
设计系统(Design System)
摘要:设计系统(Design System) 设计系统(Design System),设计和开发之间的“DevOps” 最近,我们网站的上新增了几个新功能,比如通过导航栏的QR Code可以下载App;通过Carousel的方式,显示多条信息。 以往这样的功能可能需要2-3个Sprints完成,但是现在这 阅读全文
-
CURD系统
摘要:CURD系统怎么做出技术含量--怎样引导面试 引子 很多朋友可能会因为自己做的工作不是特别核心或者业务简单而引起面试中没有自信。但是很多公司面试的时候是可以接受面试者之前岗位的并发量、交易量低一些的。比如我们要招聘和我们交易量同等级或者以上的出来的人才,业界本来就没有多少,但我们还是要招人的。所以很 阅读全文
-
什么要做分库分表?
摘要:我们为什么要做分库分表? 图设计工具:https://excalidraw.com/ 前言 在高并发系统当中,分库分表是必不可少的技术手段之一,同时也是BAT等大厂面试时,经常考的热门考题。 你知道我们为什么要做分库分表吗? 这个问题要从两条线说起:垂直方向 和 水平方向。 1 垂直方向 垂直方向主 阅读全文
-
Consul是一个分布式高可用的系统
摘要:Consul 使用手册(感觉比较全了) 使用consul 介绍 Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性: 服务发现 Consul的客户端可用提供一个服务,比如 api 或者mysql ,另外一些客户端可用使用Consul去发现一个指 阅读全文
-
UML(UnifiedModelingLanguage)统一建模语言
摘要:UML2.0最新版入门图解 一、UML概述 UML(UnifiedModelingLanguage)统一建模语言,是面向对象软件的标准化建模语言。由于面向对象软件开发需要经过OOA(面向对象分析),OOD(面向对象设计),OOP(面向对象编程)三个阶段,每个阶段都需要统一的符号设计描述和交流,而UM 阅读全文
-
介绍Postman的Mock Server和Easy Mock
摘要:Postman Mock Server 为了不影响前端开发的进度,一般后端都是先定数据结构,然后写个假接口让前端调用,这样前端就不必等着后端接口开发完成以后再开始了。届时,前后端以及UI和测试就可以并行,待双方都把各自的逻辑写好了,便可以联调了。如果我们自己用写代码的方式造数据,那效率就太低了,最简 阅读全文
-
分布式事务 - TCC- 2PC、3PC
摘要:在微服务体系下,我们的应用被分割成多个服务,每个服务都配置一个数据库。如果我们的服务划分的不够完美,那么为了完成业务会出现非常多的跨库事务。即使按照 DDD 的原则来切分服务还是免不了有的业务场景需要多个业务同时提交成功或者同时回滚的场景。比如会员使用积分下订单这个场景,那么会员服务的积分扣减需要跟 阅读全文
-
接口的幂等性
摘要:如何保证接口的幂等性? 今天我们来聊聊关于接口的幂等性问题。 什么是幂等性 所谓幂等,就是任意多次执行所产生的影响均与一次执行的影响相同。 在 restful 规范中,常见的请求方式和接口幂等性关系如下: 请求方式操作是否幂等 GET 查询数据 是 POST 新增数据 否 PUT 更新数据 直接更新 阅读全文
-
Row Level Security行级数据安全,简称RLS。
摘要:数据权限筛选(RLS)的两种实现介绍 在应用程序中,尤其是在统计的时候, 需要使用数据权限来筛选数据行。 简单的说,张三看张三部门的数据, 李四看李四部门的数据;或者员工只能看自己的数据, 经理可以看部门的数据。这个在微软的文档中叫Row Level Security,字面翻译叫行级数据安全,简称R 阅读全文
-
优化5亿数据量
摘要:转载入职第一天,老板竟让我优化5亿数据量,要凉凉? >jsoncat:https://github.com/Snailclimb/jsoncat (仿 Spring Boot 但不同于 Spring Boot 的一个轻量级的 HTTP 框架) 前段时间hellohello-tom离职了,因为个人原因 阅读全文
-
高并发下接口防重设计和幂等设计
摘要:前言 接口幂等性问题,对于开发人员来说,是一个跟语言无关的公共问题。本文分享了一些解决这类问题非常实用的办法,绝大部分内容我在项目中实践过的,给有需要的小伙伴一个参考。 不知道你有没有遇到过这些场景: 有时我们在填写某些form表单时,保存按钮不小心快速点了两次,表中竟然产生了两条重复的数据,只是i 阅读全文
-
领域建模
摘要:转载 再谈领域驱动设计 目录 为什么需要领域驱动设计共享领域知识的重要性通过业务事件来理解问题域把问题域划分为问题子域使用限界上下文创建解决方案创建统一语言领域建模领域建模中的其他概念领域模型的持久化领域事件及事件溯源微服务和领域驱动设计微服务的交互和集成HATEOAS和领域模型结束语 再谈领域驱动 阅读全文
-
解决重复提交问题方案
摘要:1.什么是幂等 在我们编程中常见幂等 select查询天然幂等 delete删除也是幂等,删除同一个多次效果一样 update直接更新某个值的,幂等 update更新累加操作的,非幂等 insert非幂等操作,每次新增一条 2.产生原因 由于重复点击或者网络重发 eg: 点击提交按钮两次; 点击刷新 阅读全文
-
抽象类和接口
摘要:抽象类和接口的区别: 相同: 1、都可以被继承 2、都不能直接被实例化 3、都可以包含方法声明且都没有实现 4、派生类必须实现未实现的成员 不同点: 1、接口可以被多重实现,抽象类只能被单一继承。 2、接口可以用于支持回调,继承并不具备这个特点。 3、抽象类可以定义字段、方法、属性、事件、索引器的实 阅读全文
-
如何解决重复下单的问题?(下单防重,重放攻击)
摘要:如何解决重复下单的问题?(下单防重,重放攻击) 问题来源: 近日发现某些用户对一些商品进行多次下单,而且比较频繁,而且下单时间都在同一秒内,怀疑产生重复请求 问题描述: 用户在商品页面,多次点击下单按钮,后台怎么知道是用户对一个商品进行多次下单,还是人工误操作或者客户端异常进行重复请求下单了呢? 解 阅读全文