- 博客(18)
- 资源 (8)
- 收藏
- 关注
原创 Java集群实战:单体架构升级到集群架构(六)分布式缓存REDIS
我们来考虑一个特殊场景,一个大V有众多粉丝,他向粉丝推荐了一款冷门商品(没在缓存中),成千上万的粉丝立刻查询这款商品,缓存查不到,于是都到数据库中查(又是缓存击穿),查到数据之后,再往缓存中写。下次用户再发起ID为0的查询请求,我们在缓存中找到这个ID,发现缓存中的数据是“{}”,我们就返回一个新对象,所有字段都是NULL,不用再去查数据库,减轻了数据库的负担。缓存中的冷门数据过了有效期就被自动删除,而热点数据被访问的时候我们会更新它的有效期,所以保留在缓存中的大多数都是热点数据,这样可以节省空间。
2023-04-01 20:47:59
607
原创 把System.out.print的输出加到logback的日志文件中
经常会碰到一些旧系统,使用System.out直接在控制台输出日志,然后再用命令行重定向的方法把日志写到文件中,这个方法主要问题是日志会越来越大,要经常手动删除。今天我们就把System.out的输出加到logback的日志文件中,由logback来管理这些日志。直接上代码,一都在代码和注释中了。和控制台输出的一模一样。
2023-03-25 16:56:31
2639
1
原创 Java集群实战:单体架构升级到集群架构(四)使用REDIS分布式锁
如果你的代码中使用了synchronized和lock,它们在单体应用中跑得很好,但是在集群环境中就不好用了,因为它们只能锁住自己的tomcat,锁不了其他tomcat。常见的分布式锁有数据库的乐观锁悲观锁,zookeeper分布式锁,etcd分布式锁,redis分布式锁等等。我们前面已经使用redis来保存session了,所以今天我们就再使用redis分布式锁
2023-03-22 13:47:13
662
原创 Java集群实战:单体架构升级到集群架构(五)定时任务
如果单体架构中有定时任务,当升级到集群时,强烈建议你把定时任务独立出来,只部署一份,让它单独运行。要是集群中存在多个相同定时任务,就等于一个定时任务跑了很多次,天下大乱了!如果你代码里面的定时任务不好拆分独立出来,那就只好使用一些开源的作业调度框架,比如Quartz。对简单的定时任务,我们也可以使用分布式锁做限制,让相同的任务只执行一次。
2023-03-22 13:45:13
573
原创 Java集群实战:单体架构升级到集群架构(三)上传文件的共享
先看看这样子的一张图:这张图是《Java集群:单体架构升级到集群架构(一)使用NGINX建立集群》里面使用的。如果我们有上传文件的功能,那么这两台TOMCAT收到上传的文件,就要放到两台TOMCAT都能访问的地方。如果大家使用的是云服务器,推荐大家使用对象存储服务,比如腾讯云的COS,阿里云的OSS。另外minio、fastdfs、还有HADOOP里面的HDFS也可以考虑。如果你一分钱都不想多花,一行代码都不想多写,好吧,那就使用共享文件夹吧。今天我们就来使用这免费白嫖的共享文件夹。
2023-03-22 13:44:58
674
原创 Java集群实战:单体架构升级到集群架构(二)实现session共享
默认情况下,session是保存在TOMCAT服务器内存中的,如果我们有两个TOMCAT,它们的session是没有共享的。我们这回要做的就是把session保存在redis中,这样两个TOMCAT就可以共享session了。其实这货的详细原理还是很复杂的,不过大家只要记住一点:TOMCAT要作集群就必须实现session共享。还好,这个功能实现起来比较简单,下面我们来实现它。
2023-03-22 13:44:49
887
2
原创 Java集群实战:单体架构升级到集群架构(一)使用NGINX建立集群
对于大厂的IT技术人员来说,微服务架构是天天都在使用,滚瓜烂熟了。而对小厂的菜鸟程序员来说,我们天天做的都是CRUD,对我们来说集群、分布式、微服务也只是头脑中一个模糊的概念。我们写的大多是单体架构的系统,运行在一台服务器上,如果用户量增加了,服务器撑不住了,我们就加配置吧,反正阿里云腾讯云现在加配置也很容易。但是如果有一天(希望所有菜鸟都有这么一天),我们的用户数增加太快太多,使用最高配置的服务器还是撑不住,对我们来说这算不算是幸福的烦恼?――幸福的是老板,烦恼的却是我们。
2023-03-22 13:44:39
2223
1
原创 浏览器调用本地DLL的方法
在电脑上安装一个助手程序,浏览器通过HTTP GET请求调用助手程序,助手程序再调用本地DLL,并把调用结果反馈到浏览器中。
2023-01-27 16:13:47
7197
原创 Windows系统安装轻量级高性能Web服务开发框架OAT++
oat++ 是一个轻量级高性能 Web 服务开发框架,采用纯 C++ 编写而成。
2023-01-19 16:47:41
5205
1
转载 以太坊智能合约ERC721代码示例
pragma solidity ^0.4.24;/** * Utility library of inline functions on addresses */library Address { /** * Returns whether the target address is a contract * @dev This function will return...
2018-11-06 20:38:32
3376
2
原创 结对编程
很喜欢这句话:结对编程应该是软件小组工具库中最有用的工具之一。要弄清楚什么时候及如何使用它。原文链接http://softwarecreation.org/2008/pair-programming-to-do-or-not-to-do/ 以前第一次看到极限编程的文章时,对于里面所列出的多数核心实践都比较容易接受,唯独对于结对编程心里有疑惑。后来做了很多实践,有成功的也有失败的。最经
2016-09-06 15:48:54
423
转载 高性能网络服务器编程:为什么linux下epoll是最好,Netty要比NIO.2好?
原文:http://blog.sina.com.cn/s/blog_4c8c58ce0102vkbo.html 基本的IO编程过程(包括网络IO和文件IO)是,打开文件描述符(windows是handler,java是stream或channel),多路捕获(Multiplexe,即select和poll和epoll)IO可读写的状态,而后可以读写的文件描述符进行IO读写,由于IO设备速度和
2016-07-23 10:38:55
10096
原创 【工作小结】手机WIFI网络抓包的几种方法
一、使用笔记本电脑WIFI热点和抓包软件1、 拿一台WIN7笔记本电脑,用网线连接上网2、 把笔记本电脑设置成WIFI热点3、 笔记本电脑安装抓包软件wireshark,就可以对连上WIFI热点的手机进行抓包只要有WIFI功能的手机都可以使用这种方法,手机不用root,所有协议包也都可以抓得到。使用台式机加上有热点功能的无线WIFI网卡,也可以达到相同效果。二、在手机WIFI连
2014-04-26 19:42:00
15602
原创 学习笔记:安装流媒体服务器Catra Streaming Platform For Windows
本文大部分内容是从《CatraStreamingPlatformManual_v01.pdf》和它的官网http://www.catrasoftware.it/Streaming/CatraStreamingPlatform.htm翻译过来的。Catra Streaming Platform包括一个开放、可扩展的流媒体服务器,一个管理站内所有服务器的GUI,以及一些处理媒体文件的MP4工具。
2012-11-16 20:37:14
2027
原创 源码:一键关闭所有IE进程
有个朋友,是篮球迷,经常上班时间看NBA,还同时打开好多个IE浏览器,前天让领导抓了个现行,被批评了一通。这家伙死不悔改,硬逼我给他写个小程序,要求按一下方向键就可以关闭所有IE窗口。没办法,谁让我交友不慎呢!只好给他写一个。源码下载地址:http://download.youkuaiyun.com/detail/dengxiaodai/4741892操作系统:WINDOWS XP、WINDOWS S
2012-11-07 13:26:08
807
原创 纯属扯淡
机器能否实现智能?符号主义、连接主义和行为主义谁能代表AI的未来? 神经网络的拓扑结构和权重是如何表示知识的,有没有一般规律可遵循? 总觉得连接主义不属于现代科学。它和中医一样,更接近于玄学。不同的是中医有一套完整理论,而连接主义暂时还没有。中医理论虽然难懂,据说如果具备了内证能力,应该可以轻松理解、掌握它。如果不会内证,学中医就只是知其然而不知其所以然。问题在于,不知
2012-10-20 13:34:32
272
Notepad++ 7.5.9版 windows64位和32位
2018-11-05
深度学习UFLDL教程
2017-09-27
斯坦福大学-深度学习基础教程
2017-09-27
Notepad++ windows64位
2017-09-27
curl_7_52_1_openssl_nghttp2_x64.7z
2017-09-27
gitblit-1.8.0
2017-09-27
TensorFlow官方文档中文版.pdf
2017-09-14
源码:一键关闭所有IE
2012-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人