08 2020 档案
摘要:Redis号称支持并发11万读操作、并发8万写操作。 1、使用Redis有什么缺点? 缓存和数据库双写一致性问题 缓存雪崩问题 缓存击穿问题 缓存的并发竞争问题 2、Redis是单线程还是多线程? 回答: 主线程是单线程, 但6.0版本前后线程机制有做调整 3、MySQL 里有 2000w 数据,r
阅读全文
posted @ 2020-08-26 09:36
gaopengpy
摘要:MySQL主从复制的过程如图所示: MySQL主从复制的过程如下: 1、从数据库上执行start slave,开启主从复制开关。 2、此时,从数据库的IO线程会通过主数据库上授权的用户请求连接主数据库,并请求指定的binlog日志文件的指定位置(日志文件和配置都是配置主从服务器时执行change m
阅读全文
posted @ 2020-08-25 14:14
gaopengpy
摘要:最近遇见多次LRUCache,网上看了不少,自己也手写了一个,最近看Dubbo源码也碰到了Dubbo中的LRUCache。 摘出来瞧瞧。 Dubbo的LRUCache位于 dubbo-common的 com.alibaba.dubbo.common.utils 包下,跟我自己手写的LRUCache区
阅读全文
posted @ 2020-08-24 11:24
gaopengpy
摘要:我们做的每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。 分享一个.gitignore模板,将下面的内容保存为一个.gitignore文件,存放于git仓库的根目录下。 /target/ !.mvn/wrapper/maven-wr
阅读全文
posted @ 2020-08-21 18:11
gaopengpy
摘要:最近在做的项目中,需要将MySQL中的数据通过logstash同步至elasticsearch,但是同步后发现es中的文档时间字段不对了,统统比实际时间提前8小时。 查了资料发现,这是由于logstash在获取时区的时候,默认获取的是UTC默认时间,同时elasticsearch在创建索引的时候,统
阅读全文
posted @ 2020-08-21 18:09
gaopengpy
摘要:今天用logstash同步MySql数据到es,某表的时间字段比如create_time或者update_time,在es中比该字段均比mysql中晚5个小时。 百度一下"logstash 时间差", 几乎全部是差8个小时的,而且是es中的时间比mysql中的时间早8个小时。 后来看了看logsta
阅读全文
posted @ 2020-08-21 15:43
gaopengpy
摘要:笔试题目:1) 实现一个KV型的LRU(最近最少使用)Cache,支持get和put方法;要求实现时间复杂度,O(1); 2) 如果要求get,put方法线程安全,又该如何支持?请用代码实现,并说明如此实现的性能优缺点,语言不限;/*public class LRUCache { public St
阅读全文
posted @ 2020-08-21 10:44
gaopengpy
摘要:现在市面上的消息中间件种类很多,常用的大致有4种,分别是Kafka、ActiveMQ、RabbitMQ、RocketMQ。 那么Kafka、ActiveMQ、RabbitMQ、RocketMQ都有什么优缺点?怎么技术选型呢? 特性ActiveMQRabbitMQRocketMQKafka 单机吞吐量
阅读全文
posted @ 2020-08-20 13:57
gaopengpy
摘要:Kafka 一个最基本的架构认识:由多个 broker 组成,每个 broker 是一个节点;你创建一个 topic,这个 topic 可以划分为多个 partition,每个 partition 可以存在于不同的 broker 上,每个 partition 就放一部分数据。 这就是天然的分布式消息
阅读全文
posted @ 2020-08-20 11:16
gaopengpy
摘要:RabbitMQ 的高可用性 RabbitMQ 是比较有代表性的,因为是基于主从(非分布式)做高可用性的,我们就以 RabbitMQ 为例子讲解第一种 MQ 的高可用性怎么实现。 RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式。 单机模式: 单机模式,就是 Demo 级别的,一般
阅读全文
posted @ 2020-08-20 10:38
gaopengpy
摘要:SPI 全称为Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。 这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。 当服
阅读全文
posted @ 2020-08-18 10:52
gaopengpy
摘要:Dubbo 分层架构图如下: Dubbo大的三层分别为 Business(业务层)、RPC 层、Remoting,并且还分为 API 层和 SPI 层。 分为大三层其实就是和我们知道的网络分层一样的意思,只有层次分明,职责边界清晰才能更好的扩展。 而分 API 层和 SPI 层这是 Dubbo 成功
阅读全文
posted @ 2020-08-18 10:49
gaopengpy
摘要:6.1 关于 ACK 机制 关于 ACK 机制 ,不了解的小伙伴,可以看这里:Kafka 架构深入 ,通过 ACK 机制保证消息送达。Kafka 采用的是至少一次(At least once),消息不会丢,但是可能会重复传输。 acks 的默认值即为1,代表我们的消息被leader副本接收之后就算被
阅读全文
posted @ 2020-08-17 10:39
gaopengpy
摘要:LinkedHashMap 继承自 HashMap,所以它的底层仍然是基于拉链式散列结构。该结构由数组和链表+红黑树,在此基础上LinkedHashMap 增加了一条双向链表,保持遍历顺序和插入顺序一致的问题。 访问顺序存储的LinkedHashMap会把get方法对应的Entry节点放置在Entr
阅读全文
posted @ 2020-08-13 17:48
gaopengpy
摘要:单例模式的定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单例模式结构图: 1. 饿汉模式 public class Singleton { private static Singleton instance = new Singleton(); private Singleton()
阅读全文
posted @ 2020-08-12 14:14
gaopengpy
摘要:RabbitMQ的集群模式有两种: 普通模式:消息实体在其中一个节点上,消费时同步 默认模式,以两个节点(rabbit01、rabbit02)为例来进行说明。 对于Queue来说,消息实体只存在于其中一个节点rabbit01(或者rabbit02),rabbit01和rabbit02两个节点仅有相同
阅读全文
posted @ 2020-08-11 16:20
gaopengpy
摘要:JAVA对象保存在内存中时,由以下三部分组成: 1、对象头 2、实例数据 3、对象填充字节 JAVA对象头由以下三部分组成: 1、Mark Word 2、指向类的指针 3、数组长度(只有数组对象才有)
阅读全文
posted @ 2020-08-11 15:11
gaopengpy
摘要:进程通信(Interprocess Communication,IPC)是一个进程与另一个进程间共享消息的一种通信方式。消息(message)是发送进程形成的一个消息块,将消息内容传送给接收进程。IPC机制是消息从一个进程的地址空间拷贝到另一个进程的地址空间。 进程通信的目的: 1、数据传输 一个进
阅读全文
posted @ 2020-08-11 14:12
gaopengpy

浙公网安备 33010602011771号