RocketMQ
RocketMQ概述
MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件。消息即数据,一般消息的体量不会很大。简单来说,消息队列就是一种实现“先进先出”的一种数据结构。
用途:
- 应用解藕:上游系统对下游系统的调用若为同步调用,则会大大降低系统的吞吐量与并发度,且系统耦合度太高。 而异步调用则会解决这些问题。所以两层之间若要实现由同步到异步的转化,一般性做法就是,在这两 层间添加一个MQ层。
- 流量消峰:MQ可以将系统的 超量 请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了请求的丢失或系统被压垮。
- 消息分发:数据的生产方只需要把各自的数据写入一个消息队列即可,数据使用方根据各自需求订阅感兴趣的数据,不同团队所订阅的数据互不干扰,也不必和数据产生方关联。
RocketMQ的架构
java容器
面试分享
JUC
JVM
Redis
MySQL
参考mysql实战45讲
数据库
MySQL中的数据类型
| 类型 | 类型举例 |
|---|---|
| 整数类型 | TINYINT(1Byte)、SMALLINT(2Byte)、MEDIUMINT(3Byte)、INT(4Byte)、BIGINT(8Byte) |
| 浮点数类型 | FLOAT(4Byte)、DOUBLE(8Byte) |
| 定点数类型 | DECIMAL(9Byte) |
| 位类型 | BIT |
| 日期时间类型 | YEAR、TIME、DATE、DATETIME、TIMESTAMP |
| 文本字符串类型 | CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT |
| 枚举类型 | ENUM |
| 集合类型 | SET |
| 二进制字符串类型 | BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB |
| json类型 | JSON对象、JSON数组 |
| 空间数据类型 | 单值类型:GEOMETRY、POINT、LINESTRING、POLYGON; 集合类型:MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、 GEOMETRYCOLLECTION |
- float、double都是近似值,存储的时候都存在精度丢失的问题,一般使用decimal类型。如果数据范围超过decimal,建议把数据拆分为整数部分和小数部分,分别存储。
- Int(1)和int(11)不同于varchar,在计算和存储空间上无区别,其中1和11代表的是展示的长度,当打开zerofill配置时,不足的位置会补0,如010。
- varchar是不定长,需要额外空间记录长度,容易产生碎片,不预先分配存储空间,存储长度不要超过5000,否则建议用text类型并新建表,避免影响其他索引 。对于短得列,char效率更高
Java基础
基本语法
++i与i++
无论是i++和++i,对于 i 变量本身来说没有任何区别,执行的结果都是i变量的值加1,关键在于和=的结合
1 | int i = 1; |