- 博客(7)
- 收藏
- 关注
原创 微服务面试问题小结( 微服务、分布式、MQ、网关、zookeeper、nginx)
微服务架构缺点:架构复杂,维护成本高,会带来很多微服务架构的问题,比如说事务问题、网络问题优点:性能高、服务之间耦合度低,服务可以并行开发,开发周期短。
2023-08-05 10:09:26
121
原创 用AOP切片+Redis防接口幂等性重复提交
再后端通过自定义注解,将这个注解作为切点,再在需要防幂等接口上添加注解,在执行方法之前在切片当中进行判断是否是重复提交。这样减少了和业务的耦合。具体的是在切点当中获取用户的token、user_id、url用于作为redis的唯一key,因为redis有自动过期机制,所以只要给这个key设置过期时间,就可以让这个用户在这个key还没过期之前无法重复调用这个接口。例:在支付的时候,如果用户以为没支付成功(实际成功了),再次点击按钮导致被扣了两次钱,这是无法接收的问题,所以这个给问题是一定要解决的。
2023-08-05 09:56:29
67
原创 redis缓存穿透、缓存击穿和雪崩的原因和解决方法
key所对应的数据再数据源中并不存在,所以在缓存当中一直命中不了,则会进入到数据库当中进行查找。而设置缓存就是为了减少数据库压力,而这样的数据查找并不能实现缓存的意义。可能出现的问题:网络攻击者频繁的使用这样的key去进行查询可能会压垮数据库。想要解决缓存穿透,就必须想办法,能够识别出,哪些请求的数据,是数据库没有的,然后,对这些请求的查询,进行过滤。而redis为我们提供了一个工具来解决这个问题“布隆过滤器”。是redis提供的一种数据结构,它可以在海量数据当中来判断当前值存不存在。
2023-08-05 09:46:38
81
原创 阿里巴巴代码规约整理(强制)
1、不允许使用魔法值(未经预先定义的常量)直接出现在代码当中if (age < 18) { console.log(“未成年”);//此时18就是魔法值,将其变为下面形式,if (age < MINOR_AGE) { console.log(“未成年”);//魔法值会降低代码的可读性与可维护性,因为它们含义不清晰,可能会导致错误或者混淆。//所以要避免魔法值,使用常量代替魔法值2、在 long 或者 Long 赋值时,数值后使用大写字母 L,不能是小写字母 l,小写容易跟数字混淆,造成误解。
2023-08-05 09:39:01
170
原创 git的版本控制流程,特性分支之间怎么切换
2.我们项目是多人开发,所以需要把远程master上的代码pull下来。3.然后我们把dev分支的代码合并到master上。1、首先切换到master分支上。然后查看状态及执行提交命令。
2023-08-05 09:06:52
73
原创 Mysql数据库设计规范(三大范式)
在符合第一范式的基础上,还要满足表中的每一条数据都是唯一的、可标识的,即可以根据主键查询到任意一条唯一数据。并且非主键字段属性都必需完全依赖主键,即不能部分依赖主键。要确切的查询到某一条数据中的某个字段数据,需要知道这条数据主键的全部数据,不能根据主键中某一字段就能查询到。这个原子性是主观的,有些属性是不需要拆开写的,这样会提高效率。再符合第二范式的基础上,还要满足非主属性字段(不包含在任何候选键的字段)不能对其他非主属性字段产生依赖,即不能根据非主属性字段就能查询到想要得到的某个数据。
2023-08-05 08:53:12
70
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人