KANG's BLOG

Let's have some fun

适配器模式

定义 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。 例子 电脑不能直接插上网线,但是可以插上水晶头就可以间接连接网线了,水晶头就是一个适配器。

通过Binlog增量恢复数据

通过Binlog增量恢复数据 登录 MySQL,执行show variables like '%log_bin%';来查询 binlog 状态。 提示: log_bin => on 说明已经开始 binlog。

Mysql主键自增优点

Mysql主键自增 优点 不用担心主键重复 数字型占用空间小,尤其是二级索引,跟容易命中内存 提高内存命中率 顺序存放在磁盘上,减少页分裂,进而节省磁盘空间 由于b+树的结构,子叶节点为双向链表,所以范围查询非常快 缺点 手动插入ID复杂,容易主键冲突,新老系统并行时,新旧表之间难以双向同步 分表后,数据导入新表需要控制主键

死信队列

死信队列 API设置方式 在队列加上一个参数即可: arguments.put(" x-dead-letter-exchange","dlx.exchange"); 这样消息在过期、requeue、 队列在达到最大长度时,消息就可以直接路由到死信队列 过期消息 在 rabbitmq 中存在2种方可设置消息的过期时间,第一种通过对队列进行设置,这种设置后,该队列中所有的消息都存在相同的过期时间,第二种通过对消息本身进行设置,那么每条消息的过期时间都不一样。如果同时使用这2种方法,那么以过期时间小的那个数值为准。当消息达到过期时间还没有被消费,那么那个消息就成为了一个 死信 消息。

三种交换机类型

三种交换机类型(exchangeType) 在为通道设置交换机时可指定交换机类型 channel.exchangeDeclare(exchangeName,exchangeType,true,false,false,null); DIRECT Producer(生产者)投递的消息被DirectExchange (交换机)转发到通过routingkey绑定到具体的某个Queue(队列) FANOUT 广播模式,Queue直接绑定到Exchange上,不需要routingKey 通道建立绑定关系时,routingKey可为空 //建立绑定关系(哪个队列,哪个交换机,绑定哪个routingkey) channel.

CAP原则

CAP原则 CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。 分布式环境下,因为存在网络问题,多机分区是必须的,那么只能在CP和和AP之间选择,如果数据在分布式中只有一份没有副本,那就牺牲了可用性,如果每台机器都有备份,那么很难保证强一致性。

获取容器端口的方式

获取容器端口的方式 @Component public class PortConfiguration implements ApplicationListener<WebServerInitializedEvent> { @Override public void onApplicationEvent(WebServerInitializedEvent event) { int port = event.

Mysql优化方式

Mysql优化方式 并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引 应尽量避免在 where 子句中使用!=或<>操作符,or,否则将引擎放弃使用索引而进行全表扫描 对查询进行优化避免全表扫描,首先考虑where和group by上涉及的列进行建立索引 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描 select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:

Mysql数据库能否批量update的配置

Mysql数据库能否批量update的配置 connection链接字符串中设置参数allowMultiQueries=true jdbc:mysql://localhost:3306?<font color="red">allowMultiQueries=true</font> 官方解释: Allow the use of ‘;’ to delimit multiple queries during one statement (true/false), defaults to ‘false’, and does not affect the addBatch() and executeBatch() methods, which instead rely on rewriteBatchStatements.

Mysql数据引擎的区别

Mysql数据引擎区别 MyISAM: Myisam只支持表级锁,支持FULLTEXT类型的索引,没有聚集索引,MyIsam 索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。 InnoDB : Innodb支持支持外键、行锁、事务,InnoDB表数据文件本身就是按B+Tree组织的一个索引结构,这棵树的叶节点data域保存了完整的数据记录,即聚集索引。