艺术
文章平均质量分 86
这里是艺术思想的世界
Listen-Y
学无止境
展开
-
艺术~如何设计一套优秀的API响应体
文章目录前言参考HTTP状态码优秀的设计进行分段处理个性化Message额外的好处前言客户端请求API,通常需要通过返回码来判断API返回的结果是否符合预期,以及该如何处理返回的内容等.有的API用返回码是int类型,有的是string类型,有的用0表示成功,又有的用1表示成功,还有用“true”表示成功,碰上这种事情,只能说:沟通起来真头疼。API返回码的设计还是要认真对待,毕竟好的返回码设计可以降低沟通成本以及程序的维护成本。参考HTTP状态码以HTTP状态码为例,为了更加清晰的表述和区分状原创 2022-01-26 11:55:18 · 698 阅读 · 0 评论 -
艺术~对走向前后端分离的理解
文章目录前言前端MVVM架构对开发人员而言对于后端工程师对于前端工程师不分离时耦合的痛点前言截止目前,所有的新项目都优先推荐使用前后端分离的架构,在前端使用MVVM模式,后端使用分布式部署或者使用简单的MVC单体架构。所以前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。核原创 2022-01-15 22:56:24 · 1794 阅读 · 0 评论 -
艺术~为减少字符设计的短URL服务
设计原因之前需要写一个告警服务,告警需要一短信的方式通知对方,并且在短信中要给到监控报告的URL地址, 但是发送短信需要调用三大运营商的接口,短信息有字数限制的,发送一条短信最多七十个字,160个英文或数字字符,或者70个中文字符,也就说,你每次发信息,你发送超过70字的短信是按2条记费的,超过140个字按3条记费,依次类推。设计好处减少短信内容,为公司降低开销好看。 比起一大堆不知所以的参数,短链接更加简洁友好。安全。 不暴露访问参数。核心原理其实本质就是把长的url做一个映射, 变成原创 2021-07-17 13:28:13 · 181 阅读 · 0 评论 -
艺术~在单机和分布式环境下的限流算法(漏桶算法、令牌桶算法)
文章目录前言限流算法滑动窗口限流漏桶算法令牌桶算法单机限流和分布式限流限流组件前言今天总结学习一下限流的相关内容,包括常见的限流算法、单机限流场景、分布式限流场景以及一些常见限流组件。那就引来第一个问题,什么是限流?为什么要限流?首先来解释下什么是限流?在日常生活中限流很常见,例如去有些景区玩,每天售卖的门票数是有限的,例如 2000 张,即每天最多只有 2000 个人能进去游玩。这就是一个限流,那么再来回答第二个问题为什么要限流?依旧刚刚那个例子,如果不限流会怎么样,就会把景区挤爆。那换在原创 2021-03-30 10:10:22 · 680 阅读 · 0 评论 -
艺术~安全至上(SQL注入、CSRF攻击、DDoS攻击)
文章目录前言SQL 注入前言处于现在这个互联网时代,一些在web开发中常见的漏洞我也必须重视起来,比如下面我介绍的第一个问题sql注入问题。如果这个问题我们不注意,那我们的数据可能是有风险全部暴露出去的,而且导致这个问题还很简单,只需要在select上增加一个or 1=1 即可。SQL 注入...原创 2021-03-23 23:46:00 · 1598 阅读 · 7 评论 -
艺术~如何保证数据100%发送、幂等设计方案
文章目录如何保证数据100%发送前言常见幂等与非幂等产生原因什么时候需要幂等的不足解决方案页面重定向乐观锁分布式锁token令牌如何保证数据100%发送(1)订单服务投递消息给MQ中间件(2)物流服务监听MQ中间件消息,从而进行消费以RabbitMQ举例。下边说一个场景,如果MQ服务器突然宕机了会出现什么情况?是不是我们订单服务发过去的消息全部没有了吗?是的,一般MQ中间件为了提高系统的吞吐量会把消息保存在内存中,如果不作其他处理,MQ服务器一旦宕机,消息将全部丢失。这个是业务不允许的,造成很原创 2021-03-22 10:05:32 · 190 阅读 · 4 评论 -
艺术~延迟双删保证Redis和Mysql数据一致性
文章目录延迟双删总结流程设置缓存过期时间延迟双删这个问题是涉及到缓存redis和主从mysql的数据更新,在高并发中,是很容易出现缓存和数据库之间数据不一致问题的。如果出现不一致的情况是很危险的,比如我们常见的限量抢购,它既要响应快,又要数据可靠。我什么说是双删呢?首先我们知道redis中缓存的数据是用来读取的,写数据一般都是要写入mysql中。如果先删了缓存,还没有来得及写MySQL,另一个线程就来读,发现缓存空,则去数据库读取数据写入缓存,此时缓存中为脏数据。如果先写库,在删除缓存前,写库原创 2021-03-21 21:15:42 · 1285 阅读 · 3 评论 -
艺术~分布式事务CAP和BASE理论、2PC、3PC、TCC模型
文章目录前言CAP理论一致性Consistency可用性Availability分区容错性PartitionToleranceBASE思想基本可用BasicallyAvailiable软状态SoftState最终一致性EventualConsistency对比总结强一致性解决方案2PC2PC的延迟问题。3PC最终一致性解决方案补偿模式关键点解决方案TCC模式TCC总结前言传统的串行式系统设计或者使用mvc风格的系统设计保证数据一致性都是使用关系型数据库,好处是使用ACID事务特性,保证数据一致性只需要开原创 2021-03-21 11:30:16 · 1599 阅读 · 3 评论 -
艺术~常见的不可逆加密、对称加密、非对称加密
文章目录前言数字签名不可逆加密MD5SHA1算法对称加密DES算法3DES算法AES算法(重点)非对称加密RSA算法ECC算法对称算法与非对称加密算法前言加密是我们保证数据安全的一个很重要的手段,尤其是现在广泛的token使用上,加密手段有着举足轻重的地位。一个好的加密算法主要体现在俩点:不易被破解加密解密的效率要好加密在就比如我现在的工作, 主要会用在一些数字签名的生成上或者一些数据的验证上,来进行数据安全的保护和数据完整性的保护。数字签名数字签名,简单来说就是通过提供 可鉴别 的 数原创 2021-03-19 13:34:01 · 984 阅读 · 2 评论 -
艺术~几种唯一ID的生成的方案
文章目录前言方案特性ID的生成方案1. UUID2. 数据库自增ID3.Twitter的snowflake算法(雪花算法)7. 美团Leaf解决时钟问题前言ID有着很重要的作用,就如同我们的身份证ID,是标明唯一的一个号码,尤其在大数据时代,数据成千上万,如果我们还想通过ID来标明身份就会有一定的困难,会有ID冲突的风险。特别是在复杂的分布式系统业务场景中如果ID冲突,将会面临很大的业务问题。我们在设计ID生成方案的时候往往考虑一下几个特点方案特性唯一性:确保生成的ID是全网唯一的。有序递增性原创 2021-03-18 20:06:10 · 682 阅读 · 0 评论