logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

设计模式——开闭原则

开闭原则:对扩展开放,对修改关闭。具体实现:为系统定义一个相对稳定的抽象层,而将不同的实现行为移至具体的实现层中完成。在很多面向对象编程语言中都提供了接口、抽象类等机制,可以通过它们定义系统的抽象层,再通过具体类来进行扩展。如果需要修改系统的行为,无须对抽象层进行任何改动,只需要增加新的具体类来实现新的业务功能即可,实现在不修改已有代码的基础上扩展系统的功能,达到开闭原则的要求。JAVA例子...

#设计模式#开闭原则
排序算法小结

1.总排序趟数与初始状态无关的有:(除了快速排序和优化的冒泡,其他都是)2.算法的复杂度与初始状态无关:堆排序,归并排序,选择排序,基数排序3.元素总比较次数与初始状态无关:选择排序、基数排序。4.元素总移动次数与初始状态无关的有:归并排序、基数排序。...

#数据结构#算法
如何保证消息队列的高可用?

RabbitMQ 的高可用性RabbitMQ 是比较有代表性的,因为是基于主从(非分布式)做高可用性的,我们就以 RabbitMQ 为例子讲解第一种 MQ 的高可用性怎么实现。RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式。单机模式单机模式,就是 Demo 级别的,一般就是你本地启动了玩玩儿的

数据库如何分库分表

数据库架构演变刚开始我们只用单机数据库就够了,随后面对越来越多的请求,我们将数据库的写操作和读操作进行分离, 使用多个从库副本(Slaver Replication)负责读,使用主库(Master)负责写, 从库从主库同步更新数据,保持数据一致。架构上就是数据库主从同步。 从库可以水平扩展,所以更多的读请求不成问题。但是当用户量级上来后,写请求越来越多,该怎么办?加一个Master是不能解决问..

#mysql#数据库
TIME_WAIT过多的危害以及解决TIME_AWAIT过多方案

TIME_WAIT过多危害网络情况不好时,如果主动方无TIME_WAIT等待,关闭前个连接后,主动方与被动方又建立起新的TCP连接,这时被动方重传或延时过来的FIN包过来后会直接影响新的TCP连接;同样网络情况不好并且无TIME_WAIT等待,关闭连接后无新连接,当接收到被动方重传或延迟的FIN包后,会给被动方回一个RST包,可能会影响被动方其它的服务连接。过多的话会占用内存,一个TIME...

JVM 常见面试题基础

基础1.1 JDK、 JRE、JVM 的关系是什么?什么是 JVM ?英文名称 ( Java Virtual Machine ),就是 JAVA 虚拟机, 它只识别 .class 类型文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。什么是 JRE ?英文名称( Java Runtime Environment ),Java 运行时环境。它主要...

#jvm#面试
Kafka入门(一)

1.1 Kafka简介关于 Kafka,网上有很多介绍,经过不断地复制、洗稿、演绎后,难免背离原意,因此,我们还是来看一下官网给出的定义:Apache Kafka is a distributed streaming platform.Kafka 作为流平台具有以下三种能力:发布和订阅记录流,类似于消息队列或企业消息系统;具有容错能力,且可以持久化的方式存储记录流;当记录...

#kafka
Kafka入门(二)

1.1 Kafka 高可用方案Kafka 高可用性的保障来源于其健壮的副本(Replication)策略。为了提高吞吐能力,Kafka 中每一个 Topic 分为若干 Partitions;为了保证可用性,每一个 Partition 又设置若干副本(Replicas);为了保障数据的一致性,Zookeeper 机制得以引入。基于 Zookeeper,Kafka 为每一个 Partition 找一.

#kafka
到底了