02 2021 档案

Hystrix - 断路器 Circuit Breaker + 滑动窗口
摘要:一、断路器 Circuit Breaker 1.1 断路器的三个状态 断路器是Hystrix最核心的状态机,有三个状态: CLOSED关闭状态:允许流量通过。 OPEN打开状态:不允许流量通过,即处于降级状态,走降级逻辑。 HALF_OPEN半开状态:允许某些流量通过,并关注这些流量的结果,如果出现 阅读全文

posted @ 2021-02-28 23:29 frank_cui 阅读(1077) 评论(0) 推荐(0) 编辑

Hystrix - 资源隔离模式 (线程池模式+信号量模式)
摘要:总结 1. 线程池模式 vs 信号量模式 线程池隔离信号量隔离 线程 与调用线程非相同线程 与调用线程相同(tomcat/jetty线程) 开销 排队、调度、上下文开销等 无线程切换,开销低 异步 可以是异步,也可以是同步。看调用的方法 同步调用,不支持异步 并发支持 支持(最大线程池大小hystr 阅读全文

posted @ 2021-02-28 18:11 frank_cui 阅读(1897) 评论(0) 推荐(0) 编辑

SpringCloud - Eureka vs ZooKeeper
摘要:1.数据一致性/可用性 差别 Eureka 是弱数据一致性的,高可用 ZooKeeper 就是强一致性的,低可用 ZooKeeper 选择了 C,就是尽可能的保证数据一致性,某些情况下可以牺牲可用性。Eureka 则选择了 A,所以 Eureka 具有高可用性,在任何时候,服务消费者都能正常获取服务 阅读全文

posted @ 2021-02-23 13:51 frank_cui 阅读(54) 评论(0) 推荐(0) 编辑

SpringCloud - Eureka Server 的数据同步过程?
摘要:step 1 - 启动时 Eureka Server也是一个Client,在启动时,通过请求其中一个节点(Server),将自身注册到Server上,并获取注册服务信息; Step 2 - 信息变更时 每当Eureka Server信息变更后(client发起注册,续约,注销请求时),就将信息通知给 阅读全文

posted @ 2021-02-23 13:38 frank_cui 阅读(591) 评论(0) 推荐(0) 编辑

SpringCloud - 分布式系统的数据同步方式
摘要:分布式系统的数据在多个副本之间的复制方式,主要有 主从复制,Master-Slave模式;所有写操作提交到主服务,再由主服务更新到从服务;写压力集中在主服务上 (是系统的瓶颈),从服务分担读请求;ZooKeeper采用 Master-Slave模式。 对等复制,Peer to Peer,副本间不分主 阅读全文

posted @ 2021-02-23 10:33 frank_cui 阅读(668) 评论(0) 推荐(0) 编辑

Linux - Linux简介
摘要:Linux简介 Linux发行版本 LAMP + LNMP 阅读全文

posted @ 2021-02-18 22:58 frank_cui 阅读(46) 评论(0) 推荐(0) 编辑

Redis - 什么是Redis + Redis如何启动?
摘要:1.Redis是什么?Redis能干嘛? Redis (Remote Dictonary Server), 即远程字典服务,是一款使用 C 语言编写的高性能 key-value 数据库,当下最热门的NoSQL技术,开源免费。 特点: 性能极高,能到 100000 次/s 读写速度 支持数据的持久化, 阅读全文

posted @ 2021-02-17 23:40 frank_cui 阅读(143) 评论(0) 推荐(0) 编辑

NoSQL - NoSQL四大分类
摘要:NoSQL四大分类 四大分类的区别 阅读全文

posted @ 2021-02-17 22:07 frank_cui 阅读(466) 评论(0) 推荐(0) 编辑

NoSQL - 什么是NoSQL (Not Only SQL 非关系型数据库)
摘要:1.为什么要使用NoSQL? 原本的关系型数据库架构存在诸多弊端。 2.什么是NoSQL? 3.NoSQL特点 阅读全文

posted @ 2021-02-17 21:07 frank_cui 阅读(160) 评论(0) 推荐(0) 编辑

Archi - 阿里巴巴的数据架构
摘要:版本1:APP直连数据库 细节讲解 版本1的问题 版本2: 增加“UDSL统一数据服务平台” 类似JDBC 阅读全文

posted @ 2021-02-17 21:05 frank_cui 阅读(263) 评论(0) 推荐(0) 编辑

Hadoop - 大数据的3V+3高
摘要: 阅读全文

posted @ 2021-02-17 17:12 frank_cui 阅读(218) 评论(0) 推荐(0) 编辑

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

posted @ 2021-02-04 17:25 frank_cui 阅读(774) 评论(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 阅读(164) 评论(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 阅读(201) 评论(0) 推荐(0) 编辑

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

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

SpringCloud - 微服务之间是如何独立通讯的?
摘要:总结 1-同步通信 dubbo通过 RPC (Remote Procedure Call)远程过程调用 springcloud通过 REST接口json调用等(http通讯) 2-异步通信 消息队列,如:RabbitMq、ActiveMq、Kafka 等 阅读全文

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

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

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

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

levels of contents
点击右上角即可分享
微信分享提示