
集群
文章平均质量分 82
DXD6789
这个作者很懒,什么都没留下…
展开
-
Java集群实战:单体架构升级到集群架构(六)分布式缓存REDIS
我们来考虑一个特殊场景,一个大V有众多粉丝,他向粉丝推荐了一款冷门商品(没在缓存中),成千上万的粉丝立刻查询这款商品,缓存查不到,于是都到数据库中查(又是缓存击穿),查到数据之后,再往缓存中写。下次用户再发起ID为0的查询请求,我们在缓存中找到这个ID,发现缓存中的数据是“{}”,我们就返回一个新对象,所有字段都是NULL,不用再去查数据库,减轻了数据库的负担。缓存中的冷门数据过了有效期就被自动删除,而热点数据被访问的时候我们会更新它的有效期,所以保留在缓存中的大多数都是热点数据,这样可以节省空间。原创 2023-04-01 20:47:59 · 618 阅读 · 0 评论 -
Java集群实战:单体架构升级到集群架构(五)定时任务
如果单体架构中有定时任务,当升级到集群时,强烈建议你把定时任务独立出来,只部署一份,让它单独运行。要是集群中存在多个相同定时任务,就等于一个定时任务跑了很多次,天下大乱了!如果你代码里面的定时任务不好拆分独立出来,那就只好使用一些开源的作业调度框架,比如Quartz。对简单的定时任务,我们也可以使用分布式锁做限制,让相同的任务只执行一次。原创 2023-03-22 13:45:13 · 583 阅读 · 0 评论 -
Java集群实战:单体架构升级到集群架构(四)使用REDIS分布式锁
如果你的代码中使用了synchronized和lock,它们在单体应用中跑得很好,但是在集群环境中就不好用了,因为它们只能锁住自己的tomcat,锁不了其他tomcat。常见的分布式锁有数据库的乐观锁悲观锁,zookeeper分布式锁,etcd分布式锁,redis分布式锁等等。我们前面已经使用redis来保存session了,所以今天我们就再使用redis分布式锁原创 2023-03-22 13:47:13 · 675 阅读 · 0 评论 -
Java集群实战:单体架构升级到集群架构(三)上传文件的共享
先看看这样子的一张图:这张图是《Java集群:单体架构升级到集群架构(一)使用NGINX建立集群》里面使用的。如果我们有上传文件的功能,那么这两台TOMCAT收到上传的文件,就要放到两台TOMCAT都能访问的地方。如果大家使用的是云服务器,推荐大家使用对象存储服务,比如腾讯云的COS,阿里云的OSS。另外minio、fastdfs、还有HADOOP里面的HDFS也可以考虑。如果你一分钱都不想多花,一行代码都不想多写,好吧,那就使用共享文件夹吧。今天我们就来使用这免费白嫖的共享文件夹。原创 2023-03-22 13:44:58 · 684 阅读 · 0 评论 -
Java集群实战:单体架构升级到集群架构(二)实现session共享
默认情况下,session是保存在TOMCAT服务器内存中的,如果我们有两个TOMCAT,它们的session是没有共享的。我们这回要做的就是把session保存在redis中,这样两个TOMCAT就可以共享session了。其实这货的详细原理还是很复杂的,不过大家只要记住一点:TOMCAT要作集群就必须实现session共享。还好,这个功能实现起来比较简单,下面我们来实现它。原创 2023-03-22 13:44:49 · 899 阅读 · 2 评论 -
Java集群实战:单体架构升级到集群架构(一)使用NGINX建立集群
对于大厂的IT技术人员来说,微服务架构是天天都在使用,滚瓜烂熟了。而对小厂的菜鸟程序员来说,我们天天做的都是CRUD,对我们来说集群、分布式、微服务也只是头脑中一个模糊的概念。我们写的大多是单体架构的系统,运行在一台服务器上,如果用户量增加了,服务器撑不住了,我们就加配置吧,反正阿里云腾讯云现在加配置也很容易。但是如果有一天(希望所有菜鸟都有这么一天),我们的用户数增加太快太多,使用最高配置的服务器还是撑不住,对我们来说这算不算是幸福的烦恼?――幸福的是老板,烦恼的却是我们。原创 2023-03-22 13:44:39 · 2252 阅读 · 0 评论