System Architecture
文章平均质量分 92
学习、记录、分享、优化。
Q.E.D.
放弃亦是坚持,坚持亦是放弃。
展开
-
如何实现大文件断点续传、秒传
将大文件拆分成小文件,将小文件上传\下载,最后再将小文件组装成大文件;:在文件分块的基础上,将每个小文件采用单独的线程进行上传\下载,如果碰到网络故障,可以从已经上传\下载的部分开始继续上传\下载未完成的部分,而没有必要从头开始上传\下载;:资源服务器中已经存在该文件,其他人上传时直接返回该文件的URI。原创 2023-03-08 22:00:00 · 9458 阅读 · 1 评论 -
SpringCloud Gateway API接口安全设计(加密 、签名)
1、防止数据抓包窃取1.1、风险简述简述:当用户登录时,恶意攻击者可以用抓包工具可以拿到用户提交的表单信息,可以获取用户的账号密码,进而可以恶意访问网站。1.2、RSA非对称加密1.2.1、RSA简介RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就.转载 2022-05-26 16:25:02 · 63934 阅读 · 0 评论 -
VO,DTO,DO,PO的概念、区别和用处
1、概念VO(View Object):视图层,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。PO(Pers转载 2022-05-12 17:40:41 · 69332 阅读 · 0 评论 -
WebSocket 集群解决方案
1、问题起因最近做项目时遇到了需要多用户之间通信的问题,涉及到了WebSocket握手请求,以及集群中WebSocket Session共享的问题。期间我经过了几天的研究,总结出了几个实现分布式WebSocket集群的办法,从zuul到spring cloud gateway的不同尝试,总结出了这篇文章,希望能帮助到某些人,并且能一起分享这方面的想法与研究。以下是我的场景描述 资源:4台服务器。其中只有一台服务器具备ssl认证域名,一台redis+mysql服务器,两台应用服务器(集群)转载 2021-11-10 23:49:39 · 180507 阅读 · 0 评论 -
mybatis-plus 官方神器,一个依赖解决数据权限。
简介mybatis-mate 为 mp 企业级模块,支持分库分表,数据审计、数据敏感词过滤(AC算法),字段加密,字典回写(数据绑定),数据权限,表结构自动生成 SQL 维护等,旨在更敏捷优雅处理数据。1、主要功能 字典绑定 字段加密 数据脱敏 表结构动态维护 数据审计记录 数据范围(数据权限) 数据库分库分表、动态据源、读写分离、数据库健康检查自动切换。 2、使用2.1、依赖导入Spring Boot 引入自动依赖注解包转载 2021-11-09 23:47:53 · 181836 阅读 · 2 评论 -
对比7种分布式事务方案,还是偏爱阿里开源的Seata,真香。(原理+实战)
前言这篇文章主要介绍一些目前主流的几种分布式解决方案以及阿里开源的一站式分布式解决方案Seata。文章有点长,耐心看完,看完你还不懂分布式事务,欢迎来捶我......文章目录如下:1、什么是分布式事务?分布式对应的是单体架构,互联网早起单体架构是非常流行的,好像是一个家族企业,大家在一个家里劳作,单体架构如下图:但是随着业务的复杂度提高,大家族人手不够,此时不得不招人,这样逐渐演变出了分布式服务,互相协作,每个服务负责不同的业务,架构如下图:分布式架构因此需要服务.转载 2021-11-09 23:35:04 · 183354 阅读 · 0 评论 -
如何让Spring Boot 的配置 “动” 起来?
前言对于微服务而言配置本地化是个很大的鸡肋,不可能每次需要改个配置都要重新把服务重新启动一遍,因此最终的解决方案都是将配置外部化,托管在一个平台上达到不用重启服务即可一次修改多处生效的目的。但是对于单体应用的Spring Boot项目而言,动态刷新显然是有点多余,反正就一个服务,改下重启不就行了?然而在某些特殊的场景下还是必须用到动态刷新的,如下: 添加数据源:对接某个第三方平台的时候,你不可能每次添加一个数据源都要重启下服务 固化的对接:大量的固定对接方式,只是其中的某个固定的转载 2021-11-01 23:26:51 · 188518 阅读 · 0 评论 -
Spring Boot+Redis 扛住,瞬间千次重复提交
前言:在实际的开发项目中,一个对外暴露的接口往往会面临,瞬间大量的重复的请求提交,如果想过滤掉重复请求造成对业务的伤害,那就需要实现幂等!幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理。如何保证幂等性:数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据 token机制,每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证,如果验证通过转载 2021-10-27 23:24:16 · 193246 阅读 · 2 评论 -
API 接口应该如何设计、如何保证安全、如何签名、如何防重
在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢?下面我们就来讨论下常用的一些API设计的安全方法,可能不一定是最好的,有更牛逼的实现方式,但是这篇是我自己的经验分享.1、token 简介Token:访问令牌access token, 用于接口中, 用于标识接口调用者的身份、凭证,减少用户名和密码的传输次数。一般情况下客户端(接口调用方)需要先向服务器端申请一个接转载 2021-10-27 22:48:35 · 193633 阅读 · 0 评论