![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
理论贴
文章平均质量分 87
宋发元
未来的CEO
展开
-
通俗易懂 限流算法原理剖析
高并发系统的三把利器:缓存、限流、降级,利用此3种技术方案即可保系统运行无忧。由于限流是系统的首道关口,所以本文以限流为主题,普及限流算法的基础知识。为什么要限流限流即限制流量,通过流量控制来保证系统接收到的请求量在正常范围内。由于任何系统的吞吐量都有上限,所以必须设置合理的限定值,以避免流量洪峰将整个系统打垮。假如一个系统可以承载的网络带宽是1G,如果流量大于1G就会导致带宽打满,影响整个服务。在现实生活中,限流场景也随处可见:例如银行的叫号系统、餐厅的排队系统,如今的疫情,政府也是全力排除隐患,保转载 2021-06-21 22:10:48 · 349 阅读 · 0 评论 -
一篇文章读懂SaaS多租户和单租户的分别
提到SaaS,很多人都会立刻想到节约成本、按需付费、即租即用等等这些概念,这说明大部分人对SaaS已经有了普遍认知,且开始主动应用SaaS软件。然而这只是一些浅层概念。很多人对于一些SaaS技术问题还是知之甚少,例如企业在进行SaaS企业管理软件选型时,仍不了解“多租户”与“单租户”是什么意思,二者之间的区别更是一头雾水。企业管理者需要明白这两种SaaS架构的特点,才能更多地从未来的功能需求、数据安全等方面进行考虑,从而选出适合企业应用的SaaS软件。本文将通过举例,形象深刻解释“SaaS多租户和单租户有转载 2021-04-07 23:42:38 · 999 阅读 · 0 评论 -
什么是悲观锁和乐观锁?
1、什么悲观锁?顾名思义,悲观锁是基于一种悲观的态度类来防止一切数据冲突,它是以一种预防的姿态在修改数据之前把数据锁住,然后再对数据进行读写,在它释放锁之前任何人都不能对其数据进行操作,直到前面一个人把锁释放后下一个人数据加锁才可对数据进行加锁,然后才可以对数据进行操作,一般数据库本身锁的机制都是基于悲观锁的机制实现的;特点:可以完全保证数据的独占性和正确性,因为每次请求都会先对数据进行加锁, 然后进行数据操作,最后再解锁,而加锁释放锁的过程会造成消耗,所以性能不高;手动加悲观锁:读锁LOCK tab转载 2021-03-10 17:37:35 · 132 阅读 · 0 评论 -
并发工具(锁):深入Synchronized
synchronized解决哪些问题?产生并发问题的三个根源在于“缓存可见性问题”,“原子性问题”,“指令顺序性问题”,Java并发包里面的所有并发工具都是针对于这三个问题的解决方案,所以说理解这个三个问题的根源对能否做好并发编程有决定性的意义,果你对这几个问题还不太了解,建议阅读并发问题的根源”。当我们遇到并发问题时候,第一个想到的就是用锁,在JAVA里面使用synchronized解决并发问题已经是程序员潜意识的解决方案了,但是如果要问起synchronized解决了哪些问题时候,大部分人知道的都是转载 2021-03-10 17:04:31 · 161 阅读 · 0 评论 -
并发理论基础:并发问题产生的三大根源
并发问题变幻莫测,一谈到并发就显得非常高深,一般的程序员对于并发问题也是头疼不已,但是随着网络互联越来越普遍,大规模用户访问网站程序也越来越频繁,并发问题又无法避免。在我们解决并发问题前首先要理解产生并发问题的根源是什么,所有并发处理的工具只是针对这些根源问题的其中一种解决方案,如果只去了解解决方案而不理解问题的根源是什么,那么我们就很难正确的定位问题并对症下药。所以要写好并发程序我们首先就要深入理解并发问题产生根源是什么?起因:如何最大化的利用CPUCPU运算速度和IO速度的不平衡一直是计算机优化的转载 2021-03-04 15:54:28 · 1288 阅读 · 4 评论 -
Java对象的序列化和反序列化详解
序列化的定义序列化:把对象转化为可传输的字节序列过程称为序列化。反序列化:把字节序列还原为对象的过程称为反序列化。为什么要序列化?如果光看定义我想你很难一下子理解序列化的意义,那么我们可以从另一个角度来推导出什么是序列化, 那么究竟序列化的目的是什么?其实序列化最终的目的是为了对象可以跨平台存储,和进行网络传输。而我们进行跨平台存储和网络传输的方式就是IO,而我们的IO支持的数据格式就是字节数组。因为我们单方面的只把对象转成字节数组还不行,因为没有规则的字节数组我们是没办法把对象的本来面目还原回转载 2021-03-03 14:58:03 · 446 阅读 · 2 评论 -
数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩
一、第一范式1NF是对属性的原子性,要求属性具有原子性,不可再分解;表:字段1、 字段2(字段2.1、字段2.2)、字段3 ......如学生(学号,姓名,性别,出生年月日),如果认为最后一列还可以再分成(出生年,出生月,出生日),它就不是一范式了,否则就是;二、第二范式2NF是对记录的惟一性,要求记录有惟一标识,即实体的惟一性,即不存在部分依赖;表:学号、课程号、姓名、学...转载 2019-01-04 16:45:07 · 961 阅读 · 0 评论 -
【JavaScript】jquery的each()详细介绍
each()方法能使DOM循环结构简洁,不容易出错。each()函数封装了十分强大的遍历功能,使用也很方便,它可以遍历一维数组、多维数组、DOM, JSON 等等在javaScript开发过程中使用$each可以大大的减轻我们的工作量。下面提一下each的几种常用的用法 each处理一维数组 var arr1 = [ "aaa", "bbb", "ccc原创 2016-01-08 11:33:19 · 497 阅读 · 0 评论 -
【PHP】PHP开发工具
本文是基于window平台上,针对PHP初学者定制了一套非常好用的开发工具。PHP开发工具其实包括以下两个:PHP服务器组件。PHP IDE(Integrated Development Environment,集成开发环境)。MySql管理工具文本编辑器PHP服务器组件PHP服务器组件非常多有WampServer、XAMPP、AppServ、php原创 2015-12-23 10:52:09 · 541 阅读 · 0 评论 -
java中的匿名内部类总结
匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法abstract class Person { public abstract void eat();} class Ch原创 2015-10-22 23:27:09 · 349 阅读 · 0 评论 -
【MySQL】MySQL 入门教程
MySQL的相关概念介绍MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格:表头(header): 每一列的名称;列(row): 具有相同数据类型的数据的集合;行(col): 每一行用来描述某个人/物的具体信息;原创 2015-11-07 22:33:44 · 459 阅读 · 0 评论 -
【MySQL】mysql中模糊查询的四种用法
下面介绍mysql中模糊查询的四种用法:1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。另外,如果需要找出u_name中既有“三”又原创 2015-11-06 21:52:04 · 1016 阅读 · 0 评论