随笔分类 -  spring boot

摘要:一,为什么需要生成唯一id(发号器)? 1,在分布式和微服务系统中, 生成唯一id相对困难, 常用的方式: uuid不具备可读性,作为主键存储时性能也不够好, mysql的主键,在分库时使用不够方便,高并发时性能没有保障 所以在这里我们演示使用redis+lua生成唯一id 2,使用redis性能虽 阅读全文
posted @ 2020-06-22 17:26 刘宏缔的架构森林 阅读(2482) 评论(0) 推荐(0) 编辑
摘要:一,为什么要使用分布式锁? 如果在并发时锁定代码的执行,java中用synchronized锁保证了线程的原子性和可见性 但java锁只在单机上有效,如果是多台服务器上的并发访问,则需要使用分布式锁, 例如:两台机器上同时各有一个进程查询同一件商品的库存,此时商品库存数为1, 数据库给两台机器返回的 阅读全文
posted @ 2020-06-16 12:53 刘宏缔的架构森林 阅读(1373) 评论(0) 推荐(0) 编辑
摘要:一,秒杀需要具备的功能: 秒杀通常是电商中用到的吸引流量的促销活动方式 搭建秒杀系统,需要具备以下几点: 1,限制每个用户购买的商品数量,(秒杀价格为吸引流量一般会订的很低,不能让一个用户全部抢购到手) 2,处理速度要快,避免在高并发的情况下发生堵塞 3,高并发情况下,不能出现库存超卖的情况 因为r 阅读全文
posted @ 2020-06-11 19:03 刘宏缔的架构森林 阅读(1465) 评论(1) 推荐(1) 编辑
摘要:一,限流有哪些环节? 1,为什么要限流? 目的:通过对并发请求进行限速或者一个时间单位内的的请求进行限速,目的是保护系统可正常提供服务,避免被压力太大无法响应服务. 如果达到限制速率则可以采取预定的处理: 例如: 拒绝服务(定向到错误页面或返回错误提示信息) 排队或等待(秒杀/评论/下单) 降级(只 阅读全文
posted @ 2020-06-03 19:36 刘宏缔的架构森林 阅读(2044) 评论(0) 推荐(0) 编辑
摘要:一,什么是幂等性? 1,幂等: 幂等操作:不管执行多少次,所产生的影响都和一次执行的影响相同。 幂等函数或幂等方法:可以使用相同的参数重复执行,并能获得相同的结果的函数/方法。 这些函数/方法不用担心重复执行会对系统造成改变。 2,幂等操作的一些例子: 前端重复提交相同的数据,后台只产生对应这个数据 阅读全文
posted @ 2020-06-03 10:44 刘宏缔的架构森林 阅读(1170) 评论(0) 推荐(0) 编辑