自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 问答 (2)
  • 收藏
  • 关注

原创 为什么form表单提交没有跨域问题

form请求是提交请求,提交form表单到另外一个域名,原来的页面是无法获取新也迷奸案的内容,护着说form提交后不需要返回,但是ajax是需要返回的。浏览器的策略本质是:一个域名下面的js,没有经过允许是不能读取另外一个域名的内容,但是浏览器不阻止你向另外一个域名发送请求。世界本无跨域,是浏览器不允许js访问别的域,但是浏览器没有限制自己,img标签和script标签都是跨域加载其他域的图片。浏览器的安全策略限制的是js脚本,并不限制form,src表单提交之类的请求。

2024-11-02 17:16:11 189

原创 IoT MQ设计篇:调研与协议选型

mqtt与coap目前是使用最广的物联网通信协议,其中mqtt实际上使用最多的物联网协议,对与这两种协议而言,主要应用场景都是物联网,coap基于UDP,复杂度主要在于消息的可靠性,顺序,重传等需要自己处理,同时UDP保证了很高的性能,没有连接的开销;设计复杂度: 设计系统时,系统的复杂度主要有“高可用,高性能,高可靠,规模,成本,安全,高扩展”等,其中“三高”是比较难设计的,对于Kafka,RocketMQ等就是“三高”的系统,所以内部很复杂,使用协议也是其自定义的私有协议。大棚温度,光照数据采集设备;

2024-11-02 17:10:41 387

原创 IoT MQ设计篇:调研与协议选型

mqtt与coap目前是使用最广的物联网通信协议,其中mqtt实际上使用最多的物联网协议,对与这两种协议而言,主要应用场景都是物联网,coap基于UDP,复杂度主要在于消息的可靠性,顺序,重传等需要自己处理,同时UDP保证了很高的性能,没有连接的开销;设计复杂度: 设计系统时,系统的复杂度主要有“高可用,高性能,高可靠,规模,成本,安全,高扩展”等,其中“三高”是比较难设计的,对于Kafka,RocketMQ等就是“三高”的系统,所以内部很复杂,使用协议也是其自定义的私有协议。大棚温度,光照数据采集设备;

2024-10-25 21:16:40 393

原创 秒杀系统瞬时百万并发流量的六种应对之道(十年高并发大促经验总结,文末有福利)

安全校验就是要识别出请求的流量哪些是安全流量,哪些是不安全的流量,这里说的不安全的流量指的是友商、黄牛党或者不怀好意的用户发起的刷单流量、CC攻击等,这种流量对系统是有害的,能够消耗大量的系统资源,为系统造成比较大的压力,并且这种方式挤占了正常抢购的通道,对正常参与秒杀活动的用户是不公平的。没错,秒杀系统的瞬时流量是巨大的,如果秒杀系统的流量与其他业务系统的流量不加以分离处理,其他系统势必会由于巨大的瞬时流量而导致各种连锁问题,所以,在设计上,务必将秒杀系统与其他业务系统的流量进行分离。

2024-10-25 21:16:08 845

原创 秒杀系统瞬时百万并发流量的六种应对之道(十年高并发大促经验总结,文末有福利)

安全校验就是要识别出请求的流量哪些是安全流量,哪些是不安全的流量,这里说的不安全的流量指的是友商、黄牛党或者不怀好意的用户发起的刷单流量、CC攻击等,这种流量对系统是有害的,能够消耗大量的系统资源,为系统造成比较大的压力,并且这种方式挤占了正常抢购的通道,对正常参与秒杀活动的用户是不公平的。没错,秒杀系统的瞬时流量是巨大的,如果秒杀系统的流量与其他业务系统的流量不加以分离处理,其他系统势必会由于巨大的瞬时流量而导致各种连锁问题,所以,在设计上,务必将秒杀系统与其他业务系统的流量进行分离。

2024-10-25 21:15:01 495

原创 记一次MySQL崩溃修复案例,再也不用删库跑路了

研究MySQL源代码,调试并压测MySQL源代码时,MySQL崩溃了!问题是它竟然崩溃了!而且还损坏了InnoDB文件!还好是在调试环境下发生的,赶紧看看如何解决这个问题,经过一系列的查阅资料、验证、对比、MySQL源码调试跟踪、修复损坏的InnoDB文件、总结等流程,整理成此文,如果以后真的发生在线上的生产坏境,也不用担心是不是要跑路的问题了,可以分分钟搞定MySQL的崩溃问题了!今天给大家带来一篇MySQL数据库崩溃的修复案例,废话不多说,我们直接上正文,走起~~

2024-10-25 21:13:55 290

原创 这一次彻底搞定秒杀

1 Scenario 场景具体场景有哪些?微信抢红包 ,抢春运火车票,抢购小米手机。QPS 分析:平日 1000人/s访问该页面,秒杀时数10万人/s访问,QPS 增加 100 倍以上。实际需求有什么?详细流程怎么样?商品购买和下单流程:秒杀系统需要解决问题瞬时大流量高并发,Large flow and high concurrency服务器、数据库等能承载的 QPS 有限,数据库一般单机1000 QPS,需根据业务预估并发量。Over Sale,有限库存,不能超卖。

2024-10-25 21:12:31 623

原创 商品订单库存一致性

方案1 :下单后减库存,用户下单,然后库存加锁,判断库存是否充足,用户下单完成,减库存,最后释放库存锁。方案2:支付才减库存,用户支付,然后库存加锁,判断库存是否充足,用户支付完成,减库存,最后释放库存锁。

2024-10-20 21:58:41 1114

原创 一对一,表的设计

用户登录只需要部分数据,所以把用户表拆成两个表。

2024-09-19 21:33:23 203 1

原创 三范式,f g

三范式都是拿来解决数据冗余的问题。

2024-09-19 21:23:44 410

原创 mysql中怎么进行慢查询

set global slow_query_log=1set global long_query_time=0.1show VARIABLES like ‘%slow_query_log%’

2024-09-19 21:17:52 103

原创 mysql中怎么进行慢查询

set global slow_query_log=1set global long_query_time=0.1show VARIABLES like ‘%slow_query_log%’

2024-09-19 19:44:05 102

原创 redis为什么这么快,

虽然这听起来可能会限制Redis的并发处理能力,但实际上,由于Redis操作主要是内存操作,且大多数操作都是轻量级的,因此单线程模型能够避免多线程带来的上下文切换开销,从而提高性能。除了上述几点外,Redis还通过其他多种优化措施来提高性能,如使用高效的内存分配器、优化数据结构的存储方式、减少锁的使用等。综上所述,Redis之所以能够快速处理大量数据和高并发请求,主要得益于其基于内存的数据存储、高效的数据结构、单线程模型、异步非阻塞I/O以及优化的持久化机制等多个方面的优势。

2024-09-18 10:31:32 200

原创 Redis中的setnx的使用场景

Redis中的SETNX命令是一个非常有用的工具,特别是在处理分布式系统和并发控制时。SETNX是“Set if Not Exists”的缩写,用于设置键的值,但仅当键不存在时。

2024-09-18 09:43:15 736

原创 关系数据库和非关系数据库

关系数据库和非关系数据库(NoSQL数据库)在多个方面存在显著差异,这些差异主要体现在适用性、数据一致性要求、扩展性、数据模型、数据查询语言以及使用场景等方面。

2024-09-18 09:04:56 851

原创 HTTP响应

HTTP响应是服务器在接收到客户端的HTTP请求后,返回给客户端的响应报文。

2024-09-12 21:06:44 448

原创 解决Mybatis mappe同时传递 List 和其他参数报错

想要实现这个接口,同时传入planId和projectPlans,屡次报错。好在一路坎坷,解决了多方bug,最后终于搞定了。

2024-09-10 10:58:06 501

原创 单例的饿汉式,懒汉式的线程安全问题

对象在类加载的时候就创建了,线程安全,速度块,但是浪费空间,

2024-09-08 21:48:23 259

原创 时间戳有什么重要作用

今天做前后端联调的时候,发现请求url路径后面跟了一段数据:“t=1725537660463”,我蒙圈了,为什么是一段乱码明明我的后端写了id这个参数,而且前端传给后端的参数只有这个7,那“?”后面跟的t=1725537660463去哪里了,为什么消失了?仔细查了一下,发现1725537660463其实就是我们大名鼎鼎的啊,平时我遇到的它,都是长这样放在真实环境中,竟然被我意外地当成了乱码。

2024-09-05 20:17:31 380

原创 NAT技术-将多个内部网络设备映射到一个公共IP地址

不是的, 内网的IP地址并不是“随便定义”的,尽管它们是在私有网络范围内分配的,但仍然需要遵循一定的规则和最佳实践。10.0.0.0/8(或10.0.0.0至10.255.255.255)172.16.0.0/12(或172.16.0.0至172.31.255.255)192.168.0.0/16(或192.168.0.0至192.168.255.255)如果不是上面的那样。

2024-09-05 14:06:15 1771

原创 开发软件,什么类型的重要信息的日志要存到数据库表里面

在开发软件时,选择将哪些类型的重要信息日志存储到数据库表里面,主要取决于这些日志的用途、查询需求、性能考虑以及系统架构。

2024-09-04 20:54:22 444

原创 foreach lambda的底层原理

2024-09-04 16:50:51 329

原创 集合的删除修改并发异常问题

删除数据,i++,但是后面的数据会移到前面,此时会出现漏掉数据的情况。forEach的底层是增强for循环,也不要用。方法1. 倒序遍历,这里不举例子,太简单。使用迭代器删除,不要让集合自己删除。其他循环无法解决修改并发异常。这里拿两个例子 说明一下。

2024-09-04 15:13:02 256

原创 AtomicInteger

整数修改的乐观锁:原子类实现的。

2024-09-03 20:11:44 131

原创 git无法pull仓库refusing to merge unrelated historie

这样的错误在执行 git pull, git push, git merge 命令可能会遇到,这是因为两个分支没有取得关系,具体的操作是在你操作命令后面加 --allow-unrelated-histories 参数就可以了。克隆一个全新的仓库并试图与现有仓库合并:如果你从 GitHub 或其他地方克隆了一个全新的项目,并打算将其合并到正在工作的本地仓库中,Git 会识别到两者历史上的断层,从而拒绝合并。合并两个长期独立发展的项目:如果你有两个长期独立发展且未曾合并过的历史,试图将它们合并也会遇到此问题。

2024-09-02 13:54:41 689

原创 Git错误:Incorrect username or password ( access token )

问题描述:在第一次输入账号密码,但是输入错误,系统自动保存了错误账号密码输入,当你需要时,访问的是错误的输入。普通凭据下git:https://github.com/或git:https://gitee.com/删除操作:点击删除->git push origin master->重新弹出输入账号密码界面。Username for ‘https://git.com’: JIQIU(回车键输入密码)控制面板->用户账户->凭据管理器->Windows凭据。修改操作:点击修改->填写正确的账号密码->保存。

2024-09-02 13:51:44 840

原创 一篇搞懂classpath,resources

Classpath(类路径)在Java开发中是一个非常重要的概念,它指定了Java虚拟机(JVM)和Java编译器寻找类文件和包的位置。具体来说,Classpath告诉Java执行环境在哪些目录下可以找到所要执行的Java程序所需要的类或者包。这些目录可以是文件系统中的普通目录,也可以是包含编译后的Java类文件(.class文件)的JAR文件或ZIP文件。

2024-08-31 22:41:40 711

原创 idea的springboot里面的resources是什么

在IDEA(IntelliJ IDEA)中的Spring Boot项目中,resources目录扮演着非常重要的角色。这个目录主要用于存放项目的非代码资源,包括但不限于配置文件、静态资源文件(如图片、CSS、JavaScript等)、模板文件(如Thymeleaf或FreeMarker模板)等。

2024-08-31 22:38:33 826 1

原创 数据库里面的updateTimed选择代码更新和还是数据库触发器自动更新?

在项目中,当对数据库的数据进行修改时,updateTime(或类似的表示最后更新时间的字段)的更新时机通常取决于你的应用程序逻辑或使用的数据库框架(如ORM)的行为。总之,updateTime字段的更新时机取决于你的具体需求和所使用的技术栈。无论你选择哪种方式,确保数据的一致性和准确性都是非常重要的。

2024-08-31 22:03:13 521

原创 HttpServletRequest的getParameter获取的是http请求行里占位符的参数数据还是查询参数

因此,当使用HttpServletRequest的getParameter方法时,你实际上是在获取HTTP请求中的查询参数值。如果请求中没有包含相应的查询参数,那么getParameter方法将返回null。HttpServletRequest 的 getParameter 方法获取的是HTTP请求中的。(Query Parameters),而不是请求行里的占位符参数数据。

2024-08-31 21:18:17 427

原创 Http的get请求中的URL中的占位符参数和查询参数有什么区别

Http的GET请求中的URL中的占位符参数和查询参数在功能、位置和用途上存在明显的区别。

2024-08-31 21:07:01 688

原创 aop复习

*

2024-08-29 08:56:25 125

原创 快捷键的方法

throws

2024-07-27 11:49:58 317

原创 ArrayList,linkedList,hashSet

linkedList

2024-07-24 14:40:28 415

原创 单例设计模式(饿汉式单例,懒汉式单例)

2024-07-08 19:02:04 139 1

原创 string

2024-06-29 11:24:29 105

原创 标识符的规范

2024-06-16 17:57:32 105

原创 符号的优先级

2024-06-16 17:27:14 339

原创 switch

2024-06-05 19:21:12 108

原创 逻辑运算符和短路运算符

逻辑运算符和短路运算符

2024-06-05 19:16:03 123

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除