自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 史上最全 SpringBoot 注解详解
原力计划

一、注解(annotations)列表 1、@SpringBootApplication 包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。 其中@ComponentScan让Spring Boot扫描到Configuratio...

2020-04-20 22:41:45 2661 4

原创 Proxyee-down的下载与安装教程

这个工具的名字是 proxyee-down,是在 GitHub 上发现的,工具的地址是: https://github.com/proxyee-down-org/proxyee-down 下载安装教程下wiki有: https://github.com/proxyee-down-org/pr...

2019-04-13 00:04:23 20423 23

原创 史上最全BATJ面试题精选附答案

目录 JAVA基础 JVM知识 开源框架知识 操作系统 多线程 TCP与HTTP 架构设计与分布式 数据结构与算法 数据库知识 消息队列 缓存 搜索 JAVA基础 String,Stringbuffer,StringBuilder的区。 ArrayList...

2019-01-17 21:51:03 1042 4

原创 我的架构梦:(六十四) 分布式缓存 Redis 之大厂面试汇总

一、缓存穿透、缓存雪崩、缓存击穿 Redis面试毫无疑问,这个应该是最常遇见的吧。。。那我们就来看看业界是怎么处理这些问题的。 1、缓存穿透 一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如 DB)。 缓存穿透是指在高并发下查询key不存在的数据,会...

2020-12-02 01:27:40 1 0

原创 我的架构梦:(六十三) 分布式缓存 Redis 之持久化

分布式缓存 Redis 之持久化一、前言1、学习目标2、为什么要持久化二、RDB1、触发快照的方式2、RDB执行流程(原理)3、RDB文件结构4、RDB的优缺点三、AOF1、AOF持久化实现2、AOF原理3、AOF重写、触发方式、混合持久化4、AOF文件的载入与数据还原四、RDB与AOF对比五、应...

2020-12-01 00:27:48 20 0

原创 我的架构梦:(六十二) 分布式缓存 Redis 之底层数据结构

分布式缓存 Redis 之底层数据结构一、前言二、RedisDB结构1、id2、dict3、expires三、RedisObject结构1、结构信息概览2、7种type3、10种encoding 一、前言 Redis作为Key-Value存储系统,数据结构如下: Redis没有表的概念,Redi...

2020-11-22 17:54:42 45 0

原创 我的架构梦:(六十一) 分布式缓存 Redis 之缓存的读写模式

缓存有三种读写模式 1、Cache Aside Pattern(常用) Cache Aside Pattern(旁路缓存),是最经典的缓存+数据库读写模式。 1.1 读的时候,先读缓存,缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应。 1.2 更新的时候,先更新数据库,然后再删除...

2020-11-22 15:28:45 38 0

原创 我的架构梦:(六十) Apache Hadoop 核心源码剖析

Apache Hadoop 核心源码剖析一、源码阅读准备二、NameNode 启动流程三、DataNode 启动流程四、NameNode如何支撑高并发访问(双缓冲机制) 一、源码阅读准备 1、下载Apache Hadoop-2.9.2官方源码 之前也有对Spring源码做阅读准备:mac、idea...

2020-11-22 14:12:44 38 0

原创 我的架构梦:(五十九) Apache Hadoop 架构与原理

Apache Hadoop 架构与原理一、Hadoop的重要组成二、HDFS分布式文件系统三、MapReduce编程框架四、YARN资源调度 一、Hadoop的重要组成 Hadoop=HDFS(分布式文件系统)+MapReduce(分布式计算框架)+Yarn(资源协调框架)+Common模块 1、...

2020-11-19 00:47:21 124 2

原创 Redis使用Lua脚本保证zset的删除和插入的原子性

话不多说 直接上代码!!! @Autowired private StringRedisTemplate stringRedisTemplate; private static final String DELANDZADDSCRIPT = "if redis.call...

2020-11-13 23:16:40 86 0

原创 我的架构梦:(五十八) FastDFS 系统架构和功能原理

FastDFS 系统架构和功能原理一、架构详解二、设计理念三、FastDFS 功能原理四、SpringBoot集成FastDFS实战 一、架构详解 1、storage server 存储服务器(又称存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上。Storage ...

2020-11-09 02:32:16 83 2

原创 我的架构梦:(五十七) MongoDB集群高可用

MongoDB集群高可用一、MongoDB主从复制架构原理和缺陷二、复制集replica sets三、复制集搭建四、分片集群 Shard Cluster 一、MongoDB主从复制架构原理和缺陷 master-slave架构中master节点负责数据的读写,slave没有写入权限只负责读取数据。 ...

2020-11-01 22:45:44 91 0

原创 我的架构梦:(五十六) MongoDB架构

MongoDB架构一、MongoDB逻辑结构二、MongoDB的数据模型三、MongoDB 存储引擎 一、MongoDB逻辑结构 MongoDB 与 MySQL 中的架构相差不多,底层都使用了可插拔的存储引擎以满足用户的不同需要。用 户可以根据程序的数据特征选择不同的存储引擎,在最新版本的 Mo...

2020-11-01 18:26:26 46 0

原创 我的架构梦:(五十五) MongoDB应用场景与实战

一、MongoDB的适用场景 网站数据:Mongo 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。 缓存:由于性能很高,Mongo 也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo 搭建的持久化缓存层可以避免下层的数据源过载。 大尺寸、低价值的数据:使...

2020-11-01 01:06:50 85 0

原创 HttpClient、okhttp和RestTemplate的区别

一、HttpClient 1、pom依赖 <!--HttpClient--> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-h...

2020-10-19 21:13:30 224 0

原创 我的架构梦:(五十四) 分库分表实战及中间件之Mycat实战

分库分表实战及中间件之Mycat实战一、 Mycat 简介二、Mycat 核心概念三、server.xml配置四、schema.xml配置五、rule.xml配置六、Mycat实战七、Mycat事务 一、 Mycat 简介 Mycat 是一个实现了 MySQL 协议的 Server,前端用户可以把...

2020-10-16 00:34:40 128 2

原创 我的架构梦:(五十三) 分库分表实战及中间件之ShardingSphere实战

上一篇:我的架构梦:(五十二) 分库分表实战及中间件之实战背景 分库分表实战及中间件之ShardingSphere实战二、ShardingSphere实战1、ShardingSphere2、Sharding-JDBC3、数据分片剖析实战5、强制路由剖析实战6、数据脱敏剖析实战7、分布式事务剖析实战...

2020-10-13 23:43:06 260 2

原创 我的架构梦:(五十二) 分库分表实战及中间件之实战背景

一、实战背景 1、背景描述 刚开始我们的系统只用了单机数据库 随着用户的不断增多,考虑到系统的高可用和越来越多的用户请求,我们开始使用数据库主从架构 当用户量级和业务进一步提升后,写请求越来越多,这时我们开始使用了分库分表 2、遇到的问题 用户请求量太大 单服务器TPS、内存、IO都是有上限...

2020-10-12 21:16:54 137 2

原创 平衡树和二叉树的区别

一、平衡二叉树(AVL树) 1、概念 AVL树是带有平衡条件的二叉查找树,一般是用平衡因子差值判断是否平衡并通过旋转来实现平衡,左右子树树高不超过1,和红黑树相比,AVL树是严格的平衡二叉树,平衡条件必须满足(所有节点的左右子树高度差不超过1)。不管我们是执行插入还是删除操作,只要不满足上面的条件...

2020-09-25 22:23:33 226 0

原创 远程调用 Dubbo 与 Feign 的区别

一、相同点 Dubbo 与 Feign 都依赖注册中心、负载均衡。 二、区别 1、协议 Dubbo: 支持多传输协议(Dubbo、Rmi、http、redis等等),可以根据业务场景选择最佳的方式。非常灵活。 默认的Dubbo协议:利用Netty,TCP传输,单一、异步、长连接,适合数据量小、高...

2020-09-23 22:02:21 2092 0

原创 eureka、nacos、consul的区别

1、配置中心 配置中心 eureka 不支持 nacos 支持 用起来简单,符合springBoot的命名风格,支持动态刷新 consul 支持 但用起来偏麻烦,不太符合springBoot框架的命名风格,支持动态刷新 2、注册中心 eureka nacos...

2020-09-22 23:27:07 116 0

原创 请说说你对线程安全的理解

其实博主之前面试也有被问到这个问题,当时我用自己的语言组织回答的,我觉得当时回答的不够严谨。现在我查阅了相关资料做了以下的总结。 《深入理解Java虚拟机》第二版 周志明著 Page386页有相关定义。周志明也是引用的别人的定义,我这里贴出来。 笔者认为《Java Concurrency In P...

2020-09-19 20:36:17 163 0

原创 HashMap存1000条数据,构造时传多少才能让HashMap不需要动态扩容?

一、HashMap 的初始化 关于HashMap 的初始化,可以参考我们上一篇说过:JDK8中的HashMap初始化和扩容机制 二、HashMap 的 table 初始化 这个问题也可以这样问,HashMap存1000条数据,构造时传1000会不会让HashMap动态扩容? 回到 HashMap ...

2020-09-19 17:53:13 285 0

原创 JDK8中的HashMap初始化和扩容机制

一、HashMap初始化方法 HashMap() 不带参数,默认初始化大小为16,加载因子为0.75; HashMap(int initialCapacity) 指定初始化大小; HashMap(int initialCapacity, float loadFactor) 指定初始化大小和加载...

2020-09-19 14:03:36 305 0

原创 我的架构梦:(五十一) MySQL存储与优化之MySQL集群架构

MySQL存储与优化之MySQL集群架构一、集群架构设计二、主从模式三、 双主模式四、分库分表 一、集群架构设计 1、架构设计理念 在集群架构设计时,主要遵从下面三个维度: 可用性 扩展性 一致性 2、可用性设计 站点高可用,冗余站点 服务高可用,冗余服务 数据高可用,冗余数据 保证高可用...

2020-09-17 23:37:51 447 2

原创 SpringBoot 配置文件位置的加载顺序

SpringBoot配置文件可以使用yml格式和properties格式 分别的默认命名为:application.yml、application.properties 官网都是以yml作为参考,层级结构更清晰的一种配置文件。 –file:./config/ –file:./ –classpath...

2020-09-16 21:29:14 149 0

原创 我的架构梦:(五十) MySQL存储与优化之MySQL事务和锁

MySQL存储与优化之MySQL事务和锁一、ACID 特性二、事务控制的演进三、 事务隔离级别四、锁机制和实战五、死锁与解决方案 一、ACID 特性 在关系型数据库管理系统中,一个逻辑工作单元要成为事务,必须满足这 4 个特性,即所谓的 ACID原子性(Atomicity)、一致性(Consist...

2020-09-16 00:58:31 99 0

原创 我的架构梦:(四十九) MySQL存储与优化之MySQL索引原理

一、索引类型 索引可以提升查询速度,会影响where查询,以及order by排序。MySQL索引类型如下: 从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引 从应用层次划分:普通索引、唯一索引、主键索引、复合索引 从索引键值类型划分:主键索引、辅助...

2020-09-15 00:35:17 121 0

原创 String s = new String()分析各个场景创建了几个堆和栈

场景1: String str1 = “abc”; System.out.println(str1 == “abc”); 步骤: 栈中开辟一块空间存放引用str1 String池中开辟一块空间,存放String常量”abc” 引用str1指向池中String常量”abc” str1所指代的地址...

2020-09-13 17:06:02 80 0

原创 我的架构梦:(四十八) MySQL存储与优化之MySQL架构原理

一、MySQL体系架构 MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。 1、网络连接层 客户端连接器(Client Connectors):提供与MySQL服务器建立的支持。目前几乎支持所有主流的服务端编程技术,例如常见的 Java、C、Python、...

2020-09-13 16:16:02 198 0

原创 Redis多集群客户端

一、pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</...

2020-09-09 21:33:44 122 0

原创 Scala多线程初始化redis集群

话不多说,上代码: def multiThreadInitialization(): Unit = { var coreSize = Runtime.getRuntime.availableProcessors() + 1; var threadPool:ExecutorService =...

2020-09-08 22:34:37 68 0

原创 源码解读之(八)ConcurrentLinkedQueue

源码解读之(八)ConcurrentLinkedQueue一、前言二、ConcurrentLinkedQueue介绍与结构三、offer操作四、poll操作五、peek操作六、size操作七、remove操作八、ConcurrentLinkedQueue遇到的问题九、总结 一、前言 在并发编程中我...

2020-09-08 22:25:17 59 0

原创 我的架构梦:(四十七) 第二代 Spring Cloud核心组件之Nacos+Sentinel+Dubbo三剑合璧

第二代 Spring Cloud核心组件之Nacos+Sentinel+Dubbo三剑合璧一、前言二、服务提供者工程改造三、 服务消费者工程改造 一、前言 改造自动投递微服务和简历微服务,删除OpenFeign 和 Ribbon,使用Dubbo RPC 和 Dubbo LB 首先,需要删除或者注释...

2020-09-01 23:04:33 224 0

原创 我的架构梦:(四十六) 第二代 Spring Cloud核心组件之SCA Sentinel分布式系统的流量防卫兵

第二代 Spring Cloud核心组件之SCA Sentinel分布式系统的流量防卫兵一、Sentinel 介绍二、Sentinel 部署三、服务改造四、Sentinel 关键概念五、Sentinel 流量规则模块六、Sentinel 降级规则模块七、Sentinel 自定义兜底逻辑八、基于 N...

2020-09-01 01:32:54 119 0

原创 我的架构梦:(四十五) 第二代 Spring Cloud核心组件之SCA Nacos服务注册和配置中心

一、前言 第一代 Spring Cloud (主要是 SCN)很多组件已经进入停更维护模式。 Spring Cloud:Netflix,Spring官方,SCA(被Spring官方认可) 注意:市场上主要使用的还是SCN,SCA是一套框架的集合。 Alibaba 更进一步,搞出了Spring Cl...

2020-08-30 13:54:31 356 0

原创 我的架构梦:(四十四)SpringCloud核心组件之JWT改造统一认证授权中心的令牌存储机制

SpringCloud核心组件之JWT改造统一认证授权中心的令牌存储机制一、JWT令牌介绍二、JWT改造三、从数据库加载Oauth2客户端信息四、从数据库验证用户合法性五、基于Oauth2的 JWT 令牌信息扩展六、资源服务器取出 JWT 令牌扩展信息七、其他 一、JWT令牌介绍 通过上边的测试我...

2020-08-26 21:27:52 419 0

原创 我的架构梦:(四十三)SpringCloud核心组件之微服务统一认证方案Spring Cloud OAuth2

SpringCloud核心组件之微服务统一认证方案Spring Cloud OAuth2一、微服务架构下统一认证思路二、OAuth2开放授权协议/标准三、Spring Cloud OAuth2 实现四、搭建认证服务器(Authorization Server)五、搭建资源服务器(希望访问被认证的微...

2020-08-26 00:22:39 654 0

原创 我的架构梦:(四十二)SpringCloud核心组件之分布式链路追踪技术Sleuth+Zipkin

SpringCloud核心组件之分布式链路追踪技术Sleuth+Zipkin一、分布式链路追踪技术适用场景二、分布式链路追踪技术核心思想三、整合Sleuth + Zipkin 一、分布式链路追踪技术适用场景 1、场景描述 为了支撑日益增⻓的庞大业务量,我们会使用微服务架构设计我们的系统,使得我们的...

2020-08-25 00:22:08 206 0

原创 我的架构梦:(四十一)SpringCloud核心组件之 Spring Cloud Stream消息驱动组件

SpringCloud核心组件之 Spring Cloud Stream消息驱动组件一、Stream解决的痛点问题二、Stream重要概念三、Stream消息通信方式及编程模型四、Spring Cloud Stream的应用五、 Stream高级之自定义消息通道六、Stream高级之消息分组 Sp...

2020-08-16 23:55:30 145 0

提示
确定要删除当前文章?
取消 删除