10 2020 档案

摘要:new一个类对象,类中各部分执行顺序:静态代码块->非静态代码块->构造函数->一般方法。 public class father { private String name; father(){ System.out.println("--父类的无参构造函数--"); } father(Strin 阅读全文
posted @ 2020-10-30 10:46 47号Gamer丶 阅读(362) 评论(0) 推荐(0) 编辑
摘要:源码: getAndIncrement: public final int getAndIncrement() { for (;;) { int current = get(); int next = current + 1; if (compareAndSet(current, next)) re 阅读全文
posted @ 2020-10-29 17:15 47号Gamer丶 阅读(1013) 评论(0) 推荐(1) 编辑
摘要:在开发中,往往会遇到一些关于延时任务的需求。例如 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一共有如下几点区别 1、 定时任务有明确的触发时间,延时 阅读全文
posted @ 2020-10-29 17:01 47号Gamer丶 阅读(253) 评论(0) 推荐(0) 编辑
摘要:当公司业务量上去之后,单表支撑不了的时候,分库分表就是一个绕不开的话题,小弟最近新入职一家公司,发现这边公司在用ShardingSphere来进行分库分表,之前没接触过这方面,所以就写了个demo学习一下,下面文章就记录一下如何用ShardingSphere来进行分库分表!(能力有限,本章不会讲原理 阅读全文
posted @ 2020-10-28 18:05 47号Gamer丶 阅读(578) 评论(0) 推荐(0) 编辑
摘要:一、FeignClient注解 FeignClient注解被@Target(ElementType.TYPE)修饰,表示FeignClient注解的作用目标在接口上 @FeignClient(name = "github-client" , url = "https://api.github.com 阅读全文
posted @ 2020-10-28 17:02 47号Gamer丶 阅读(569) 评论(0) 推荐(0) 编辑
摘要:还是老规矩,话不多说,直接上代码: 依赖: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.7</version> </depende 阅读全文
posted @ 2020-10-28 16:40 47号Gamer丶 阅读(2321) 评论(0) 推荐(0) 编辑
摘要:今天我们要说的红黑树就是就是一棵非严格均衡的二叉树,均衡二叉树又是在二叉搜索树的基础上增加了自动维持平衡的性质,插入、搜索、删除的效率都比较高。红黑树也是实现 TreeMap 存储结构的基石。 二叉搜索树 二叉搜索树又叫二叉查找树、二叉排序树,我们先看一下典型的二叉搜索树,这样的二叉树有何规则特点呢 阅读全文
posted @ 2020-10-27 11:48 47号Gamer丶 阅读(437) 评论(0) 推荐(0) 编辑
摘要:一、概述: 本文主要总结单链表常见操作的实现,包括链表结点添加、删除;链表正向遍历和反向遍历、链表排序、判断链表是否有环、是否相交、获取某一结点等。 二、概念: 一种重要的数据结构,HashMap等集合的底层结构都是链表结构。链表以结点作为存储单元,这些存储单元可以是不连续的。每个结点由两部分组成: 阅读全文
posted @ 2020-10-22 11:52 47号Gamer丶 阅读(112) 评论(0) 推荐(0) 编辑
摘要:本篇文章主要介绍了SpringBoot+Maven 多模块项目的构建、运行、打包,分享给大家,具体如下: 项目使用的工具: IntelliJ IDEA JDK 1.8 apache-maven-3.3.9 项目的目录: 主项目 springboot-multi 子模块 entity、dao、serv 阅读全文
posted @ 2020-10-22 11:28 47号Gamer丶 阅读(1707) 评论(0) 推荐(0) 编辑
摘要:实现websocket通讯,和广播消息 另外可以参考微服务springcloud环境下基于Netty搭建websocket集群实现服务器消息推送(高并发,高性能,高可用) 添加依赖: <dependency> <groupId>io.netty</groupId> <artifactId>netty 阅读全文
posted @ 2020-10-21 17:09 47号Gamer丶 阅读(2704) 评论(0) 推荐(0) 编辑
摘要:实现浏览本地文件目录,实现文件夹目录的跳转和文件的下载 添加依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusion 阅读全文
posted @ 2020-10-21 16:31 47号Gamer丶 阅读(1744) 评论(0) 推荐(0) 编辑
摘要:SpringBoot中使用Netty与spring中使用Netty没有差别,在Spring中使用Netty可以考虑Netty的启动时机,可以在Bean加载的时候启动,可以写一个自执行的函数启动,这里采用监听Spring容器的启动事件来启动Netty。 实现类似SpingMvc的contoller层实 阅读全文
posted @ 2020-10-21 16:25 47号Gamer丶 阅读(2549) 评论(0) 推荐(0) 编辑
摘要:使用netty实现代理服务功能,思路是:客户端发送请求,由netty服务端通过端口监听到请求,然后在内部再开启一个netty客户端作为代理去访问真实的服务器,最后由真实的服务器将响应返回给代理,代理再返回给netty服务端,最后返回给浏览器。 目前实现了http和https的代理。 导入依赖: <d 阅读全文
posted @ 2020-10-21 16:20 47号Gamer丶 阅读(1720) 评论(0) 推荐(0) 编辑
摘要:异步调用相对于同步调用而言,通常的方法都是程序按照顺序来执行的,程序的每一步都需要等到上一步执行完成之后才能继续往下执行;而异步调用则无需等待,它可以在不阻塞主线程的情况下执行高耗时方法 实现异步调用 1、在主类中添加@EnableAsync注解 @EnableAsync @SpringBootAp 阅读全文
posted @ 2020-10-21 15:55 47号Gamer丶 阅读(198) 评论(0) 推荐(0) 编辑
摘要:第一步:相关依赖 <dependency> <groupId>org.mitre.dsmiley.httpproxy</groupId> <artifactId>smiley-http-proxy-servlet</artifactId> <version>1.7</version> </depen 阅读全文
posted @ 2020-10-21 15:23 47号Gamer丶 阅读(2530) 评论(0) 推荐(0) 编辑
摘要:RabbitMQ消息最终一致性解决方案 随着分布式服务架构的流行与普及,原来在单体应用中执行的多个逻辑操作,现在被拆分成了多个服务之间的远程调用。虽然服务化为我们的系统带来了水平伸缩的能力,然而随之而来挑战就是分布式事务问题,多个服务之间使用自己单独维护的数据库,它们彼此之间不在同一个事务中,假如A 阅读全文
posted @ 2020-10-21 14:14 47号Gamer丶 阅读(4379) 评论(1) 推荐(1) 编辑
摘要:通常一个web程序在运行过程中,由于用户的操作不当,或者程序的bug,有大量需要处理的异常。其中有些异常是需要暴露给用户的,比如登陆超时,权限不足等等。可以通过弹出提示信息的方式告诉用户出了什么错误。 而这就表示在程序中需要一个机制,去处理这些异常,将程序的异常转换为用户可读的异常。而且最重要的,是 阅读全文
posted @ 2020-10-21 10:48 47号Gamer丶 阅读(499) 评论(0) 推荐(0) 编辑
摘要:前言 如果你是一个急性子,没什么耐性的人,可以只看下句,自己去品味理解: 内部类:就是我是你的一部分,我了解你,我知道你的全部,没有你就没有我。(所以内部类对象是以外部类对象存在为前提的) 静态内部类:就是我跟你没关系,自己可以完全独立存在,但是我就借你的壳用一下,来隐藏自己。 如果还不知道静态和普 阅读全文
posted @ 2020-10-20 18:09 47号Gamer丶 阅读(1564) 评论(0) 推荐(1) 编辑
摘要:在项目开发过程中,经常会有这样的情况:第一次执行一个操作不成功,考虑到可能是网络原因造成,就多执行几次操作,直到得到想要的结果为止,这就是重试机制。Springboot可以通过整合Spring Retry框架实现重试。下面讲一下在之前新建的ibatis项目基础上整合Spring Retry框架的步骤 阅读全文
posted @ 2020-10-20 14:25 47号Gamer丶 阅读(385) 评论(0) 推荐(0) 编辑
摘要:模板方法模式应用实例 某软件公司欲为某银行的业务支撑系统开发一个利息计算模块,利息计算流程如下: (1) 系统根据账号和密码验证用户信息,如果用户信息错误,系统显示出错提示; (2) 如果用户信息正确,则根据用户类型的不同使用不同的利息计算公式计算利息(如活期账户和定期账户具有不同的利息计算公式); 阅读全文
posted @ 2020-10-19 23:08 47号Gamer丶 阅读(587) 评论(0) 推荐(0) 编辑
摘要:完整解决方案 Sunny软件公司开发人员使用访问者模式对OA系统中员工数据汇总模块进行重构,使得系统可以很方便地增加新类型的访问者,更加符合“单一职责原则”和“开闭原则”,重构后的基本结构如图所示: 在图中,FADepartment表示财务部,HRDepartment表示人力资源部,它们充当具体访问 阅读全文
posted @ 2020-10-19 18:46 47号Gamer丶 阅读(141) 评论(0) 推荐(0) 编辑
摘要:完整解决方案 为了实现打折算法的复用,并能够灵活地向系统中增加新的打折方式,Sunny软件公司开发人员使用策略模式对电影院打折方案进行重构,重构后基本结构如图所示: 在图中,MovieTicket充当环境类角色,Discount充当抽象策略角色,StudentDiscount、ChildrenDis 阅读全文
posted @ 2020-10-19 17:41 47号Gamer丶 阅读(179) 评论(0) 推荐(0) 编辑
摘要:应用实例 下面通过一个包含循环状态的简单实例来说明如何使用环境类实现状态转换: Sunny软件公司某开发人员欲开发一个屏幕放大镜工具,其具体功能描述如下: 用户单击“放大镜”按钮之后屏幕将放大一倍,再点击一次“放大镜”按钮屏幕再放大一倍,第三次点击该按钮后屏幕将还原到默认大小。 可以考虑使用状态模式 阅读全文
posted @ 2020-10-19 17:00 47号Gamer丶 阅读(190) 评论(0) 推荐(0) 编辑
摘要:完整解决方案 为了实现对象之间的联动,Sunny软件公司开发人员决定使用观察者模式来进行多人联机对战游戏的设计,其基本结构如图所示: 在图中,AllyControlCenter充当目标类, ConcreteAllyControlCenter充当具体目标类,Observer充当抽象观察者,Player 阅读全文
posted @ 2020-10-19 16:09 47号Gamer丶 阅读(131) 评论(0) 推荐(0) 编辑
摘要:实现多次撤销 Sunny软件公司开发人员通过使用备忘录模式实现了中国象棋棋子的撤销操作,但是使用上述代码只能实现一次撤销,因为在负责人类中只定义一个备忘录对象来保存状态,后面保存的状态会将前一次保存的状态覆盖,但有时候用户需要撤销多步操作。如何实现多次撤销呢? 本节将提供一种多次撤销的解决方案,那就 阅读全文
posted @ 2020-10-19 15:35 47号Gamer丶 阅读(233) 评论(0) 推荐(0) 编辑
摘要:完整解决方案 Sunny软件公司CRM系统的客户对“客户信息管理窗口”提出了一个修改意见:要求在窗口的下端能够及时显示当前系统中客户信息的总数。修改之后的界面如图所示: 从图中我们不难发现,可以通过增加一个文本标签(Label)来显示客户信息总数,而且当用户点击“增加”按钮或者“删除”按钮时,将改变 阅读全文
posted @ 2020-10-19 14:58 47号Gamer丶 阅读(162) 评论(0) 推荐(0) 编辑
摘要:完整解决方案 为了简化AbstractObjectList类的结构,并给不同的具体数据集合类提供不同的遍历方式, Sunny软件公司开发人员使用迭代器模式来重构AbstractObjectList类的设计,重构之后的销售管理系统数据遍历结构如图所示: (注:为了简化类图和代码,本结构图中只提供一个具 阅读全文
posted @ 2020-10-19 11:49 47号Gamer丶 阅读(124) 评论(0) 推荐(0) 编辑
摘要:方案背景 Sunny软件公司开发了一套简单的基于字符界面的格式化指令,可以根据输入的指令在字符界面中输出一些格式化内容,例如输入“LOOP 2 PRINT杨过 SPACE SPACE PRINT 小龙女BREAK END PRINT郭靖 SPACE SPACE PRINT 黄蓉”,将输出如下结果: 阅读全文
posted @ 2020-10-19 11:14 47号Gamer丶 阅读(113) 评论(0) 推荐(0) 编辑
摘要:完整案例 Sunny软件公司开发了一个网站配置文件管理工具,可以通过一个可视化界面对网站配置文件进行增删改等操作,该工具使用命令模式进行设计,结构如图所示: 现在Sunny软件公司开发人员希望将对配置文件的操作请求记录在日志文件中,如果网站重新部署,只需要执行保存在日志文件中的命令对象即可修改配置文 阅读全文
posted @ 2020-10-18 23:01 47号Gamer丶 阅读(168) 评论(0) 推荐(0) 编辑
摘要:完整解决方案 为了让采购单的审批流程更加灵活,并实现采购单的链式传递和处理,Sunny公司开发人员使用职责链模式来实现采购单的分级审批,其基本结构如图所示: 在图中,抽象类Approver充当抽象处理者(抽象传递者),Director、VicePresident、President和Congress 阅读全文
posted @ 2020-10-15 16:57 47号Gamer丶 阅读(124) 评论(0) 推荐(0) 编辑
摘要:本文讲之前推荐大家看看这个博客:https://developer.51cto.com/art/201906/597961.htm###(太厉害了,终于有人能把TCP/IP协议讲的明明白白了) 。 接下来我用通俗的语言说明这几种联系: IP: 网络层协议;(高速公路) TCP和UDP: 传输层协议; 阅读全文
posted @ 2020-10-15 14:56 47号Gamer丶 阅读(92) 评论(0) 推荐(0) 编辑
摘要:1.格式化常量字符串 public class TimeFormatter { //构造方法私有化:该类本身地方除外的其他地方无法实例化该类对象 private TimeFormatter() { } public static final String DATETIME_FORMATTER = " 阅读全文
posted @ 2020-10-14 20:25 47号Gamer丶 阅读(1076) 评论(0) 推荐(0) 编辑
摘要:代理模式 代理(Proxy)是一种设计模式,提供了间接对目标对象进行访问的方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的功能上,增加额外的功能补充,即扩展目标对象的功能.这就符合了设计模式的开闭原则,即在对既有代码不改动的情况下进行功能的扩展。 举个例子来说明代理的作用:明星 阅读全文
posted @ 2020-10-14 17:39 47号Gamer丶 阅读(102) 评论(0) 推荐(0) 编辑
摘要:我们常用的一些接口Callable、Runnable、Comparator等在JDK8中都添加了@FunctionalInterface注解。 通过JDK8源码javadoc,可以知道这个注解有以下特点: 1、该注解只能标记在"有且仅有一个抽象方法"的接口上。 2、JDK8接口中的静态方法和默认方法 阅读全文
posted @ 2020-10-14 15:39 47号Gamer丶 阅读(174) 评论(0) 推荐(0) 编辑
摘要:带外部状态的解决方案 Sunny软件公司开发人员通过对围棋棋子进行进一步分析,发现虽然黑色棋子和白色棋子可以共享,但是它们将显示在棋盘的不同位置,如何让相同的黑子或者白子能够多次重复显示且位于一个棋盘的不同地方?解决方法就是将棋子的位置定义为棋子的一个外部状态,在需要时再进行设置。因此,我们在图中增 阅读全文
posted @ 2020-10-14 14:15 47号Gamer丶 阅读(94) 评论(0) 推荐(0) 编辑
摘要:实例说明 某软件公司欲开发一个可应用于多个软件的文件加密模块,该模块可以对文件中的数据进行加密并将加密之后的数据存储在一个新文件中,具体的流程包括三个部分,分别是读取源文件、加密、保存加密之后的文件,其中,读取文件和保存文件使用流来实现,加密操作通过求模运算实现。这三个操作相对独立,为了实现代码的独 阅读全文
posted @ 2020-10-14 09:47 47号Gamer丶 阅读(169) 评论(0) 推荐(0) 编辑
摘要:完整解决方案 为了让系统具有更好的灵活性和可扩展性,克服继承复用所带来的问题,Sunny公司开发人员使用装饰模式来重构图形界面构件库的设计,其中部分类的基本结构如图所示: 在图中,Component充当抽象构件类,其子类Window、TextBox、ListBox充当具体构件类,Component类 阅读全文
posted @ 2020-10-13 16:21 47号Gamer丶 阅读(122) 评论(0) 推荐(0) 编辑
摘要:完整解决方案 为了让系统具有更好的灵活性和可扩展性,客户端可以一致地对待文件和文件夹,Sunny公司开发人员使用组合模式来进行杀毒软件的框架设计,其基本结构如图所示: 以上是杀毒软件框架设计结构图 在图中, AbstractFile充当抽象构件类,Folder充当容器构件类,ImageFile、Te 阅读全文
posted @ 2020-10-13 15:23 47号Gamer丶 阅读(170) 评论(0) 推荐(0) 编辑
摘要:完整解决方案 为了减少所需生成的子类数目,实现将操作系统和图像文件格式两个维度分离,使它们可以独立改变,Sunny公司开发人员使用桥接模式来重构跨平台图像浏览系统的设计,其基本结构如图所示: 在图中,Image充当抽象类,其子类JPGImage、PNGImage、BMPImage和GIFImage充 阅读全文
posted @ 2020-10-13 14:20 47号Gamer丶 阅读(159) 评论(0) 推荐(0) 编辑
摘要:完整解决方案 对象适配器: Sunny软件公司开发人员决定使用适配器模式来重用算法库中的算法,其基本结构如图所示: 算法库重用结构图 在图中,ScoreOperation接口充当抽象目标,QuickSort和BinarySearch类充当适配者,OperationAdapter充当适配器。完整代码如 阅读全文
posted @ 2020-10-12 22:27 47号Gamer丶 阅读(90) 评论(0) 推荐(0) 编辑
摘要:完整解决方案 Sunny公司开发人员决定使用建造者模式来实现游戏角色的创建,其基本结构如图所示: 图为游戏角色创建结构图 在图中,ActorController充当指挥者,ActorBuilder充当抽象建造者,HeroBuilder、AngelBuilder和DevilBuilder充当具体建造者 阅读全文
posted @ 2020-10-12 16:45 47号Gamer丶 阅读(168) 评论(0) 推荐(0) 编辑
摘要:原型管理器的引入和实现 原型管理器(Prototype Manager)是将多个原型对象存储在一个集合中供客户端使用,它是一个专门负责克隆对象的工厂,其中定义了一个集合用于存储原型对象,如果需要某个原型对象的一个克隆,可以通过复制集合中对应的原型对象来获得。在原型管理器中针对抽象原型类进行编程,以便 阅读全文
posted @ 2020-10-12 15:32 47号Gamer丶 阅读(150) 评论(0) 推荐(0) 编辑
摘要:一、是什么? 方法引用是用来直接访问类或者实例已经存在的方法或者构造方法。 二、哪里能用? 当Lambda表达式中只是执行一个方法调用时。 三、怎么理解? 这里以Arrays的sort方法进行讲解:public static <T> void sort(T[] a, Comparator<? sup 阅读全文
posted @ 2020-10-12 14:01 47号Gamer丶 阅读(78) 评论(0) 推荐(0) 编辑
摘要:单例模式总结 单例模式作为一种目标明确、结构简单、理解容易的设计模式,在软件开发中使用频率相当高,在很多应用软件和框架中都得以广泛应用。网上有许多饿汉式,懒汉式,加锁懒汉式什么的本文通通不提,今天教大家一个新方法IODH。 单例模式的优缺点: 单例模式的主要优点如下: (1) 单例模式提供了对唯一实 阅读全文
posted @ 2020-10-12 11:38 47号Gamer丶 阅读(145) 评论(0) 推荐(0) 编辑
摘要:工厂三兄弟:简单工厂模式,工厂方法模式,抽象工厂模式我选最优讲解,以后其他的设计模式都选用改良版最优模式讲解,其他的请自行百度。 工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统 阅读全文
posted @ 2020-10-12 11:09 47号Gamer丶 阅读(145) 评论(0) 推荐(0) 编辑
摘要:1.JVM终结篇 1.1 重新认知JVM 之前我们画过一张图,是从Class文件到类装载器,再到运行时数据区的过程。 现在咱们把这张图不妨丰富完善一下,展示了JVM的大体物理结构图。 1.2 GC优化 内存被使用了之后,难免会有不够用或者达到设定值的时候,就需要对内存空间进行垃圾回收。 1.2.1 阅读全文
posted @ 2020-10-11 23:16 47号Gamer丶 阅读(82) 评论(0) 推荐(0) 编辑
摘要:1.JVM实战篇 1.1 JVM参数 1.1.1 标准参数: -version -help -server -cp 1.1.2 -X参数: 非标准参数,也就是在JDK各个版本中可能会变动 -Xint 解释执行 -Xcomp 第一次使用就编译成本地代码 -Xmixed 混合模式,JVM自己来决定 1. 阅读全文
posted @ 2020-10-11 22:48 47号Gamer丶 阅读(152) 评论(0) 推荐(0) 编辑
摘要:1. 结合字节码指令理解Java虚拟机栈和栈帧 官网 :https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.6 栈帧:每个栈帧对应一个被调用的方法,可以理解为一个方法的运行空间。每个栈帧中包括局部变量表(Loca 阅读全文
posted @ 2020-10-11 22:45 47号Gamer丶 阅读(119) 评论(0) 推荐(0) 编辑
摘要:1.Garbage Collect(垃圾回收) 1.1 如何确定一个对象是垃圾? 要想进行垃圾回收,得先知道什么样的对象是垃圾。 1.1.1 引用计数法: 对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其引用,它就是垃圾。 弊端 :如果AB相互持有 阅读全文
posted @ 2020-10-10 17:10 47号Gamer丶 阅读(118) 评论(0) 推荐(0) 编辑
摘要:1. 官网 1.1 JDK8 官网 :https://docs.oracle.com/javase/8/ 1.2 The relation of JDK/JRE/JVM Reference -> Developer Guides -> 定位到:https://docs.oracle.com/java 阅读全文
posted @ 2020-10-10 15:24 47号Gamer丶 阅读(152) 评论(0) 推荐(0) 编辑
摘要:监听器是典型的观察者设计模式的实现,Servlet和Spring中我们熟知的listeners包括:HttpSessionListener、ServletContextListener、ApplicationListener。 HttpSessionListener:是对javax.servlet. 阅读全文
posted @ 2020-10-10 13:38 47号Gamer丶 阅读(991) 评论(0) 推荐(0) 编辑
摘要:zookeeper的安装与集群搭建参考:https://www.cnblogs.com/47Gamer/p/13789058.html 描述:本章主要讲java代码如何实现zookeeper节点的增删改查,用法与解释全部在注释里。 本教程的工程,使用maven、jdk8、springboot、zoo 阅读全文
posted @ 2020-10-09 22:17 47号Gamer丶 阅读(260) 评论(0) 推荐(0) 编辑
摘要:Zookeeper集群搭建: 描述:本章节主要单服务器搭建集群,在一个服务器上启动多 个不同端口的zookeeper服务,非真实环境。 真实环境下zookeeper集群会搭建在多个物理服务器上,并非单一的服务器,但搭建方式一样。 一、zookeeper安装 教程参考:https://www.cnbl 阅读全文
posted @ 2020-10-09 22:16 47号Gamer丶 阅读(184) 评论(0) 推荐(0) 编辑
摘要:linux 系统下 zookeeper 安装教程: 1.下载安装包 1)进入安装目录 cd /home/install/ 2)下载 wget http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz 2.安装 1 阅读全文
posted @ 2020-10-09 22:15 47号Gamer丶 阅读(99) 评论(0) 推荐(0) 编辑
摘要:文章前言 众所周知,当遇到比较多数据不一致的问题时,大多数都是因为并发请求时,没及时处理的原因,提一个电商平台比较经常出现得高并发场景限时秒杀活动,他们是怎么来防止超卖呢?如何实现高并发秒杀呢?。本文模拟了高并发秒杀,并且防止了超卖,也模拟了纯数据库秒杀超卖得场景,本次模拟demo得框架技术为:Sp 阅读全文
posted @ 2020-10-09 18:18 47号Gamer丶 阅读(1237) 评论(0) 推荐(0) 编辑
摘要:配置文件application.properties: spring.application.name=spring-boot-rabbitmq spring.rabbitmq.host=localhost spring.rabbitmq.port=5672 spring.rabbitmq.user 阅读全文
posted @ 2020-10-09 14:03 47号Gamer丶 阅读(1760) 评论(0) 推荐(0) 编辑
摘要:很多时候我们想定时去做某件事情的时候我们会首先想到定时任务,quartz是个不错的选择,但是也有缺点,假如配置在项目中,集群部署会有重复执行的问题,如果持久化在mysql中,解决了集群的问题,但是过于依赖mysql,耦合严重,当然还有日志量庞大、执行时间精度、过于耗费系统资源等等问题。所以这时候使用 阅读全文
posted @ 2020-10-09 11:49 47号Gamer丶 阅读(936) 评论(0) 推荐(0) 编辑
摘要:1.生产者丢数据 生产者的消息没有投递到MQ中怎么办?从生产者弄丢数据这个角度来看,RabbitMQ提供transaction和confirm模式来确保生产者不丢消息。transaction机制就是说,发送消息前,开启事物(channel.txSelect()),然后发送消息,如果发送过程中出现什么 阅读全文
posted @ 2020-10-09 11:17 47号Gamer丶 阅读(220) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示