上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 49 下一页

2021年2月17日

MySQL - MySQL架构进化

摘要: 1.总结 本质:就是在解决数据库(读,写)的效率问题 解决“读”的效率问题: 通过缓存 解决“写”的效率问题: 从锁的角度:MyISAM->InnoDB, 表锁->行锁 从数据量角度:分库分表/MySQL集群 2.MySQL架构进化 版本1:单机MySQL 数据库和程序APP在同一台主机上: 版本2 阅读全文

posted @ 2021-02-17 16:31 frank_cui 阅读(84) 评论(0) 推荐(0)

2021年2月8日

Distributed - 分布式锁

摘要: 一、为什么用分布式锁? 下图中的两个A系统,运行在两个不同的JVM里面,他们加的锁只对属于自己JVM里面的线程有效,对于其他JVM的线程是无效的。因此,这里的问题是:Java提供的原生锁机制在多机部署场景下失效了这是因为两台机器加的锁不是同一个锁(两个锁在不同的JVM里面)。那么,我们只要保证两台机 阅读全文

posted @ 2021-02-08 14:01 frank_cui 阅读(270) 评论(0) 推荐(0)

Archi - 幂等问题

摘要: 1. 什么是幂等问题? 就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了了副作用。 举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现 阅读全文

posted @ 2021-02-08 00:35 frank_cui 阅读(68) 评论(0) 推荐(0)

2021年2月7日

Hystrix - 什么是服务雪崩?

摘要: 一、什么是服务雪崩? 雪崩效应:是一种因服务"提供者"的不可用导致服务"调用者"的不可用,并将不可用逐渐放大的过程 下图中, A为服务提供者, B为A的服务调用者, C和D是B的服务调用者. 当A的不可用,引起B的不可用,并将不可用逐渐放大C和D时, 服务雪崩就形成了. 二、什么原因造成了服务雪崩? 阅读全文

posted @ 2021-02-07 20:41 frank_cui 阅读(604) 评论(0) 推荐(0)

Java 多线程 - AQS 队列同步器(Abstract Queued Synchronizer)

摘要: 总结 1. 什么是AQS ? AQS的全称是AbstractQueuedSynchronizer,它是为Java中几乎所有的锁和同步器提供一个基础框架, 拥有一个同步队列和多个等待队列: 1.1 AQS vs 锁 锁和同步器很好地隔离了使用者和实现者 所需关注的领域: 锁是面向使用者的,它定义了使用 阅读全文

posted @ 2021-02-07 18:17 frank_cui 阅读(162) 评论(0) 推荐(0)

2021年2月5日

Java 基础 - 同一个String多次调用hashcode,返回值始终相等么?

摘要: 总结 答案:不一定。不同的策略,hashcode返回值会不一样。 1-根据Object.hashcode()的注释,说明hashCode返回值与对象内存地址有一定关系。但只是其中一种策略而已。 2-根据c++ native hashcode()的源码,通过一个JVM启动参数-XX:hashCode, 阅读全文

posted @ 2021-02-05 00:56 frank_cui 阅读(468) 评论(0) 推荐(0)

2021年2月4日

Java 基础 - 既然泛型被擦除了,为什么调用<T>get()不需要进行强制转换?

摘要: 因为类型擦除的问题,所有的泛型类型变量最后都会被替换为原始类型。 既然都被替换为原始类型,那么为什么我们在获取的时候,不需要进行强制类型转换呢? 看下ArrayList.get()方法: public E get(int index) { RangeCheck(index); return (E) 阅读全文

posted @ 2021-02-04 17:55 frank_cui 阅读(489) 评论(0) 推荐(0)

Java 基础 - Java为什么要类型擦除?

摘要: 总结 一句话:为了兼容JDK 5 之前(有泛型功能之前)的项目,否则有大量代码修改的工作。 1-“真泛型”是怎么操作的? 若 Java 语言实现"真泛型",对泛型类型(泛型类、泛型接口)、泛型方法的名字使用特别的编码,例如将 Factory<T> 类生成为一个名为 “Factory@@T” 的类,这 阅读全文

posted @ 2021-02-04 17:25 frank_cui 阅读(797) 评论(0) 推荐(0)

Java 基础 - 什么是类型擦除Type Erasure?

摘要: 类型擦除 对于泛型,只是允许程序员在编译时检测到非法的类型而已。 但是在运行期时,其中的泛型标志会变化为 Object 类型。 1 List<Integer> list = new ArrayList<>(); 2 list.add(12); 3 list.add("a"); //编译时,泛型起作用 阅读全文

posted @ 2021-02-04 16:36 frank_cui 阅读(183) 评论(0) 推荐(0)

SpringCloud - Ribbon vs Feign的关系

摘要: Ribbon添加maven依赖 spring-starter-ribbon 使用@RibbonClient(value="服务名称") 使用RestTemplate调用远程服务对应的方法 feign添加maven依赖 spring-starter-feign 服务提供方提供对外接口 调用方使用 在接 阅读全文

posted @ 2021-02-04 11:37 frank_cui 阅读(215) 评论(0) 推荐(0)

Java多线程 - 怎么检测到发生死锁?

摘要: 1-Jconsole 检查死锁 Jconsole是JDK自带的图形化界面工具,使用JDK给我们的的工具JConsole,可以通过打开cmd然后输入jconsole打开。 连接到需要查看的进程。 打开线程选项卡,然后点击左下角的“检测死锁” 。 jconsole就会给我们检测出该线程中造成死锁的线程, 阅读全文

posted @ 2021-02-04 00:34 frank_cui 阅读(339) 评论(0) 推荐(0)

2021年2月3日

SpringCloud - 微服务之间是如何独立通讯的?

摘要: 总结 1-同步通信 dubbo通过 RPC (Remote Procedure Call)远程过程调用 springcloud通过 REST接口json调用等(http通讯) 2-异步通信 消息队列,如:RabbitMq、ActiveMq、Kafka 等 阅读全文

posted @ 2021-02-03 16:38 frank_cui 阅读(851) 评论(0) 推荐(0)

Java 多线程 - synchronized 和 volatile 的区别是什么?

摘要: synchronized 和 volatile 的区别是什么? 作用: synchronized 表示只有一个线程可以获取作用对象的锁,执行代码,阻塞其他线程。volatile 表示变量在 CPU 的寄存器中是不确定的,必须从主存中读取。保证多线程环境下变量的可见性;禁止指令重排序。 区别: syn 阅读全文

posted @ 2021-02-03 15:23 frank_cui 阅读(108) 评论(0) 推荐(0)

2021年1月31日

MySQL - MySQL索引实现原理:数据结构 + 算法原理

摘要: 总结 必读!!!原文链接:http://blog.codinglabs.org/articles/theory-of-mysql-index.html 数据结构选择:MySQL普遍使用带“顺序访问指针”的B+Tree实现其索引结构。 数据结构选择B+树的原因:磁盘IO次数少 + 磁盘IO时间短 磁盘 阅读全文

posted @ 2021-01-31 23:26 frank_cui 阅读(697) 评论(0) 推荐(1)

MySQL - MySQL索引背后的数据结构及算法原理(深度好文)

摘要: 原文链接:http://blog.codinglabs.org/articles/theory-of-mysql-index.html 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此My 阅读全文

posted @ 2021-01-31 23:00 frank_cui 阅读(149) 评论(0) 推荐(0)

SpringCloud - Feign 动态代理拼接URL地址

摘要: 总结 Feign:基于Feign的动态代理机制,根据注解和选择的机器,拼接请求URL地址,发起请求Feign包含了Ribbon,其中请求的URL中的IP地址,就是Ribbon的负载均衡来寻找的 Spring Cloud核心组件:Feign 现在订单服务确实知道库存服务、积分服务、仓库服务在哪里了,同 阅读全文

posted @ 2021-01-31 01:02 frank_cui 阅读(4771) 评论(0) 推荐(0)

2021年1月30日

SpringCloud - SpringCloud五大组件:Eureka, Feign, Ribbon, Hystrix, Zuul 大串讲!!!

摘要: 拜托!面试请不要再问我Spring Cloud底层原理 目录 一、业务场景介绍 二、Spring Cloud核心组件:Eureka 三、Spring Cloud核心组件:Feign 四、Spring Cloud核心组件:Ribbon 五、Spring Cloud核心组件:Hystrix 六、Spri 阅读全文

posted @ 2021-01-30 23:49 frank_cui 阅读(273) 评论(0) 推荐(0)

SpringCloud - 分布式的CAP理论

摘要: 总结 Zookeeper保证CP Eureka保证AP 分布式领域的CAP理论: C - Consistency 一致性 A - Availability 可用性 P - Partition tolerance 分区容忍性 CAP的理论提出这三者不可兼得,而“P分区容忍性”显然是不可或缺。 P - 阅读全文

posted @ 2021-01-30 18:09 frank_cui 阅读(506) 评论(0) 推荐(0)

SpringBoot - 什么是 spring boot?为什么要用 spring boot?

摘要: 总结 Spring 是一个“引擎”; Spring MVC 是基于Spring的一个 MVC 框架 ; Spring Boot 只是一个配置工具,整合工具,辅助工具, 是一套快速开发整合包。 Spring 最初利用“工厂模式”(DI)和“代理模式”(AOP)解耦应用组件。 大家觉得挺好用,于是按照这 阅读全文

posted @ 2021-01-30 01:47 frank_cui 阅读(274) 评论(0) 推荐(0)

Spring MVC - 数据怎么从前端到后端?怎么得到request/session?

摘要: 1.怎样在方法里面得到Request,或者Session? 这种方法时比较常见的一种 将HttpServletRequest作为Spring MVC 的方法参数传入。然后通过request间接的获取到session。 public void getSessionAction(HttpServletR 阅读全文

posted @ 2021-01-30 00:21 frank_cui 阅读(746) 评论(0) 推荐(0)

上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 49 下一页

导航

levels of contents