- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 提升 RocketMQ 顺序消费性能
例如,消息发送者向主题为 ORDER_TOPIC 的 4 个队列共发送 12 条消息,RocketMQ 可以保证 1、4、8 这 三条按顺序消费,但无法保证消息 4 和消息 2 的先后顺序。
2024-09-30 17:09:22 1122
原创 如何优化系统架构设计来缓解流量压力提升并发性能?
以直播互动为例:来感受读多写多情况下如何应对流量压力。例如:QQ直播,微信直播,快手,B站、抖音......
2024-09-13 12:55:11 1102
原创 03如何设计一个秒杀系统???
数据库层做排队。在交易环节中,“库存”是个关键数据,也是个热点数据,因为交易的各个环节中都可能涉及对库存的查询。秒杀商品和普通商品的减库存还是有些差异的,例如商品数量比较少,交易时间段也比 较短,因此这里有一个大胆的假设,即能否把秒杀商品减库存直接放到缓存系统中实现, 也就是直接在缓存中减库存或者在一个带有持久化功能的缓存系统(如 Redis)中完成。例如发生恶意下单的情况, 假如我们采用“下单减库存”的方式,即用户下单后就减去库存,正常情况下,买家下单后付款的概率会很高,所以不会有太大问题。
2024-08-27 00:19:01 907
原创 01如何设计一个秒杀系统???
热点分为热点操作和热点数据,所谓热点操作,例如大量的刷新页面,大量的添加购物车,双十一零点下单等。对系统来说,这些操作可以抽象为读请求和写请求,这两种热点请求的处理方式大相径庭,读请求的优化空间更大一些,而写请求的瓶颈一般都在存储层,优化思路就是根据CAP理论做平衡。热点数据就是用户的热点请求对应的数据,例如可以通过卖家报名的方式提前筛选出来,对热门商品进行打标。另外还可以通过大数据分析来发现热门商品,比如分析热点商品交易记录,浏览记录,购物车记录,提前分析。
2024-08-16 16:49:08 1183
原创 从零搭建10级QPS大流量、高并发优惠卷系统--下
其中,我们使用了分治思想,对存储中间件进行水平扩容以解决存储哦情景,采取库存拆分子库思路解决热点库存问题,引入本地缓存解决券模板从redis获取超时的问题,我们还从服务超时设置,监控报警,限流,资源隔离等方面对服务进行了治理,保证服务的高可用。优惠券系统是一个PRC服务,因此我们需要设置合理的PRC超时时间,保证系统不回因为上游系统的故障而被拖垮、例如发券的接口,我们内部执行时间不超过100ms,因此接口超时我们可以设置为500ms,如果有异常请求,在500ms后,就会被拒绝,从而保障我们服务的稳定运行。
2024-08-14 10:23:06 553
原创 如何从零搭建10级QPS大流量、高并发优惠卷系统--上
节日活动,多个业务方面都有发放优惠卷的需求,且对发券的QPS量级有明确的需求,所有的优惠券发放、核销、查询都需要一个新的系统来承载。因此,需要设计和开发一个能够支撑十万级QPS的券务系统,并且对优惠券完成的声明周期进行维护。
2024-08-13 21:18:59 633
原创 如果让你设计一个支持千万级流量的架构,你会怎样设计?
边缘计算被很多人提及,原因是大数据处理的实时性越来越高,由集中式的服务系统提供实时性的计算能力捉襟见肘,所以很多大厂开始将计算能力放到距离用户最近的CDN节点中,这就要求原有的CDN节点不只作为静态资源文件的缓存,而是要提供可以定制化的计算能力。:对有经验的架构师来说,这样说的需求是不明确的,任何系统都有自己的承受能力范围,换句话说就是在并单用户数限定范围内,一定要保证系统 TP99=2s,例如:“我们要保证系统并发数在100万用户内的时候,有所不能”。然后保护系统,并拒绝其他用户连接请求。
2024-08-12 11:40:26 595
原创 mybatis中使用date_format函数格式化后日期少一天
中date最为参数,想查询create_time与参数date日期相同的数据,数据库中存在数据但是查不出来。在写一段sql查询date_format()函数格式化后的结果是什么。运行中并没有抛出异常,表示sql没问题。查询出的结果与我传入的参数日期少一天。果断感觉就是时区的问题。中加入参数即可解决。
2023-11-20 15:44:27 271
原创 SpringBoot @SpringBootApplication(exclude={DataSourceAutoConfiguration.calss})
该注解的作用是,排除自动注入数据源的配置(取消数据库配置),在springBoot中使用多数据源时,加上@SpringBootApplication(exclude={DataSourceAutoConfiguration.calss})DataSourceAutoConfiguration.class会自动查找application.yml或者properties文件里的spring.datasource.*相关属性并自动配置单数据源。application.yml为。
2023-11-17 19:29:22 3381
原创 使用maven构建的工程,使用mybatis向数据库添加数据,会出现重复的两条数据
在使用maven构建工程中,使用mybatis进行数据的添加操作,影响行数是1但是数据库,出现了两条一模一样的数据,使用删除数据时删除一条,同时会新增一条数据。在同样的位置,将skipTest选中,在测试中不会出现相同的问题了。
2023-11-17 19:24:11 195
原创 IDEA使用Lombok
虽然这些内容不难,同时也都是通过IDEA工具生成的,但是过程还是必须得走一遍,那么对于模型类的编写有没有什么优化方法?根据自己IDEA的版本下载对应的lombok插件,下载成功后,在IDEA中采用离线安装的方式进行安装。Lombok的注解还有很多,上面标红的三个是比较常用的,其他的大家后期用到了,再去补充学习。@Setter:为模型类的属性提供setter方法。@Getter:为模型类的属性提供getter方法。@Data:是个组合注解,包含上面的注解的功能。步骤2:安装Lombok的插件。
2023-11-13 12:40:41 410
原创 isELIgnored=“false“
在web.xml的<jsp-property-group>中可以控制一组JSP是否使用EL,在每个JSP中也可以指定是否该JSP使用EL。的功能,因此基本上所有seriptlet能实现的功能都可以由JSP替代。在JSP 2.0中,建议尽量使用EL而使JSP的格式更一致。比如下面这个表达式<p>${2000 % 20}</p>在isELIgnored="true"时输出为${2000 % 20},而isELIgnored="false"时输出为100。如果设定为真,那么JSP中的表达式被当成字符串处理。
2023-11-13 12:28:07 339
原创 Maven scope 作用域 详解
Maven的一个哲学是约定大于配置,所以在maven中,很多内容都有默认值,scope的默认值是compile。scope元素的作用:控制 dependency(依赖)元素的使用范围。通俗的讲,就是控制 Jar 包在哪些范围被加载和使用。这个范围包括,编译、测试、运行,并且还可以加上是否被打入包中。依赖范围由强到弱的顺序是:compile>provided>runtime>test由于system依赖不怎么推荐使用。下面排序就不排入了,如果排序和provided并排。
2023-11-13 02:20:44 140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人