![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
Winmusic
这个作者很懒,什么都没留下…
展开
-
RabbitMQ
1.集群模式1.1 普通集群模式创建的queue,只会放在一个rabbtimq实例上,每个RabbitMQ实例都同步queue的元数据。读取时访问到了实际数据不在的实例,它会从queue所在实例上拉取数据过来。没有高可用性。1.2 镜像集群创建的queue,无论元数据还是queue里的消息都会存在于多个实例上,然后每次写消息到queue的时候,都会自动把消息到多个实例的queue里进行消息同步。没有扩展性。2....原创 2020-08-14 13:30:52 · 247 阅读 · 0 评论 -
设计模式-责任链模式
用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。1. 类图2. 代码示例场景场景现实中,请假的OA申请,请假天数如果是半天到1天,可能直接主管批准即可;如果是1到3天的假期,需要部门经理批准;如果是3天到30天,则需要总经理审批;大于30天,正常不会批准。请求类public class LeaveRequest { /**天数*/原创 2020-08-11 01:22:15 · 95 阅读 · 0 评论 -
Redis启动数据加载流程
Redis启动数据加载流程:AOF持久化开启且存在AOF文件时,优先加载AOF文件。AOF关闭或者AOF文件不存在时,加载RDB文件。加载AOF/RDB文件成功后,Redis启动成功。AOF/RDB文件存在错误时,Redis启动失败并打印错误信息。...原创 2020-08-04 13:20:29 · 743 阅读 · 0 评论 -
java面试记录
1.Spring Bean的生命周期https://www.jianshu.com/p/1dec08d290c12.Redis缓存热点问题1.内存淘汰机制设置为allkeys-lfu或者volatile-lfu(Least Frequently Used)方式 最近最少使用 (LRU是最近最少未使用)2.web服务本地把热点的数据进行缓存3.热点商品上线前需要预热4.更新商品信息机制,如何在商品信息更新后,及时更新缓存中的商品信息3.Redis缓存一致性问题更新操作时,1.先删除Redis原创 2020-08-01 21:06:24 · 194 阅读 · 2 评论 -
volatile
1. volatile主要有以下两个功能:保证变量的内存可见性禁止volatile变量与普通变量重排序2. volatile变量与普通变量排序规则:如果第一个操作是volatile读,那无论第二个操作是什么,都不能重排序;如果第二个操作是volatile写,那无论第一个操作是什么,都不能重排序;如果第一个操作是volatile写,第二个操作是volatile读,那不能重排序。...原创 2020-07-31 15:50:47 · 108 阅读 · 0 评论 -
设计模式-装饰器模式
装饰器(Decorator)模式,是一种在运行期动态给某个对象的实例增加功能的方法。1.图示:IO源码应用:// 创建原始的数据源:InputStream fis = new FileInputStream("test.gz");// 增加缓冲功能:InputStream bis = new BufferedInputStream(fis);// 增加解压缩功能:InputStream gis = new GZIPInputStream(bis);Component是接口,对应到IO的原创 2020-07-22 15:39:07 · 132 阅读 · 0 评论 -
设计模式-模板方法模式
类图:模板方法定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤;其中,AbstractClass为抽象模板类,定义了算法的骨架TemplateMethod(),具体子类将重定义PrimitiveOperation以实现一个算法的步骤;ConcreteClass继承AbstractClass实现了方法PrimitiveOperation1()、PrimitiveOperation2()以完成算法中具体实现步骤。代码示例:..原创 2020-07-08 14:23:48 · 98 阅读 · 0 评论 -
设计模式-观察者模式
类图:代码示例:主题Subjectpublic class Subject { //观察者数组 private Vector<Observer> oVector = new Vector<>(); //增加一个观察者 public void addObserver(Observer observer) { this.oVector.add(observer); } //删除一个观察者 publi原创 2020-07-08 11:27:47 · 97 阅读 · 0 评论 -
设计模式-代理模式
https://www.jianshu.com/p/9cdcf4e5c27d原创 2020-07-08 10:39:42 · 602 阅读 · 0 评论 -
设计模式-装饰器(Decorator)模式
装饰器(Decorator)模式,是一种在运行期动态给某个对象的实例增加功能的方法。1.图示:Decorator:抽象类,实现Apple接口。ConcreteDecoratorA、ConcreteDecoratorB:继承Decorator类。2.示例代码 假设我们需要渲染一个HTML的文本,但是文本还可以附加一些效果,比如加粗、变斜体、加下划线等。为了实现动态附加效果,可以采用Decorator模式。首先,仍然需要定义顶层接口TextNode:public interface TextN原创 2020-07-07 15:01:35 · 158 阅读 · 0 评论 -
设计模式-适配器模式
将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作。1. 类适配器适配器通过 继承被适配类,实现目标接口 完成适配。代码示例:目标接口:public interface Target { void request();}被适配类:public class Adaptee { public void adapteeRequest() { System.out.println("被适配者的方法"); }}适配器:public原创 2020-07-07 11:31:41 · 118 阅读 · 0 评论 -
设计模式-单例模式
1.饿汉式public class Singleton { // 静态字段引用唯一实例: private static final Singleton instance = new Singleton(); // 通过静态方法返回实例: public static Singleton getInstance() { return instance; } // private构造方法保证外部无法实例化: private Single原创 2020-07-06 17:31:51 · 102 阅读 · 0 评论 -
设计模式-工厂模式
1.抽象工厂1.图示:工厂是抽象的,产品是抽象的,每个实际工厂负责创建一系列产品。2. 示例代码:假设我们希望为用户提供一个Markdown文本转换为HTML和Word的服务,它的接口定义如下:抽象工厂public interface AbstractFactory { // 创建Html文档: HtmlDocument createHtml(String md); // 创建Word文档: WordDocument createWord(String md原创 2020-07-06 17:07:26 · 129 阅读 · 0 评论 -
tomcat8配置APR模式
1. 安装相关依赖包 :yum -y install gcc gcc-c++ libtool* autoconf automake expat-devel perl perl-devel1.1. 安装apr :cd /tmp/wget http://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.5.tar.gztar xf apr-1.6.5.tar.gz cd apr-1.6.5./configure --prefix=/usr/local原创 2020-06-10 17:24:58 · 424 阅读 · 0 评论 -
SpringBoot配置文件读取
1. 方法1@Data@Component@ConfigurationProperties(prefix = “curator”)1.1. 配置文件application.propertiescurator.retryCount=5 #重试次数curator.elapsedTimeMs=5000 #重试间隔时间curator.connectString=127.0.0.1:2...原创 2020-04-22 18:27:27 · 113 阅读 · 0 评论 -
MySql面试题
1.InnoDB&&MyISAM1.1. InnoDB支持事务,支持行级锁走聚簇索引(叶子节点存数据,数据存储与索引放到了一块)强制要求主键支持外键关联1.2. MyISAM不支持事务,不支持行级锁是非聚簇索引(叶子节点存指针)不支持外键约束...原创 2020-02-28 17:20:20 · 105 阅读 · 0 评论 -
水平分库分表后的分页查询
分库后,分页查询按照时间time来排序order by。1.全局视野法若查询第x页的数据,每页y条。一共n个库。步骤:将order by time offset (x*y+1) limit y,改写成order by time offset 0 limit (x*y+1) +y服务层将改写后的SQL语句发往各个分库:即每库各取x页的数据服务层将得到 n*(x*y+1+y) 条数据...原创 2019-09-28 23:59:20 · 6186 阅读 · 1 评论