
SpringCloud
文章平均质量分 58
SpringCloud各个组件
杭州小哥哥
记录学习笔记
展开
-
什么是分布式系统
原创 2021-05-10 22:58:30 · 146 阅读 · 0 评论 -
RPC调用和HTTP调用的区别你知道吗
前言很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹啦!下面来具体说一说RPC服务和HTTP服务。OSI网络七层模.原创 2021-03-02 14:36:42 · 259 阅读 · 1 评论 -
图解java工程师学习路线
原创 2021-03-01 14:39:47 · 189 阅读 · 0 评论 -
每个工程师都应该了解的:聊聊幂等
现在这个时代大家可能最关心的就是钱了,那么有没有想过你银行转账给你没有一次是转多的,要么失败,要么成功,为什么不能失误一下多转一笔呢?醒醒吧年轻人,别做梦了,做银行的能那么傻x吗?今天我们就来谈一谈为什么银行转账不能多给我转一笔?关乎到钱的问题,小伙伴们打起精神!!!要想要理解上述的疑惑,不得不提的一个概念就是幂等性,至于什么是幂等性,如何通过代码实现幂等性,下面将会详细讲述。什么是幂等性所谓幂等性通俗的将就是一次请求和多次请求同一个资源产生相同的副作用。用数学语言表达...原创 2021-03-01 14:30:34 · 222 阅读 · 0 评论 -
高并发场景下,到底先更新缓存还是先更新数据库?
在大型系统中,为了减少数据库压力通常会引入缓存机制,一旦引入缓存又很容易造成缓存和数据库数据不一致,导致用户看到的是旧数据。为了减少数据不一致的情况,更新缓存和数据库的机制显得尤为重要,接下来带领大家踩踩坑。(1)读请求常见流程应用首先会判断缓存是否有该数据,缓存命中直接返回数据,缓存未命中即缓存穿透到数据库,从数据库查询数据然后回写到缓存中,最后返回数据给客户端。(2)写请求常见流程首先更新数据库,然后从缓存中删除该数据。看了写请求的图之后,有些同学可能要问..原创 2021-03-01 14:26:09 · 395 阅读 · 0 评论 -
布隆过滤器(Bloom Filter)的原理和实现
布隆过滤器使用场景之前在《数学之美》里面看到过布隆过滤器的介绍。那么什么场景下面需要使用布隆过滤器呢?看下下面几个问题字处理软件中,需要检查一个英语单词是否拼写正确 在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上 在网络爬虫里,一个网址是否被访问过 yahoo, gmail等邮箱垃圾邮件过滤功能以上这些场景有个共同的问题:如何查看一个东西是否在有大量数据的池子里面。通常的做法有如下几种思路:数组 链表 树、平衡二叉树、Trie Map (红黑树) 哈希表哈希函原创 2021-03-01 11:48:39 · 266 阅读 · 0 评论 -
start() 跟 run() 方法的区别和联系
这里还有个知识点是 start() 跟 run() 方法的区别和联系。直接调用 start() 方法,此时线程处于一个就绪(可运行)的状态,但是并没有真正的运行。而是得到CPU 的时间片后,开始执行 run() 方法,run() 方法里面的是我们的线程体。我们直接 运行 run() 方法,它其实就是一个普通的方法调用,在主线程中执行,是不会开启多线程的。...原创 2021-03-01 10:24:42 · 344 阅读 · 0 评论 -
分布式自增ID算法---雪花算法(SnowFlake)Java实现
分布式id生成算法的有很多种,Twitter的SnowFlake就是其中经典的一种。算法原理SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图: 1bit,不用,因为二进制中最高位是符号位,1表示负数,0表示正数。生成的id一般都是用整数,所以最高位固定为0。 41bit-时间戳,用来记录时间戳,毫秒级。 - 41位可以表示个数字, - 如果只用来表示正整数(计算机中正数包含0),可以表示的数值范围是:0 至 ,减1是因为可表示的数值范围.原创 2021-03-01 10:08:58 · 318 阅读 · 0 评论 -
你知道三地五中心吗
两地三中心这个架构,如下图:这种架构具备容灾能力,比如生产数据中心停电了,那么可以把所有流量都切到同城灾备中心或异地灾备中心,那么现在的问题是假如真到了停电的那一天,你敢把所有的流量都切到灾备中心去吗?上篇文章说了,灾备中心它主要的功能是作为生产数据中心的一个备份,所以它并没有如同生产数据中心一样不停的在对外提供服务,那么就有问题了,灾备相当于一个新人,一个一直在模仿大哥的一个新人,现在大哥受伤了,按道理是应该小弟顶上,但是小弟还是个新人,硬顶上去是不是很有可能会出错?也就是说: 第一,.原创 2021-02-26 11:07:33 · 994 阅读 · 0 评论 -
你知道CDN是什么吗?本文带你搞明白CDN
最近在了解边缘计算,发现我们经常听说的CDN也是边缘计算里的一部分。那么说到CDN,好像只知道它中文叫做内容分发网络。那么具体CDN的原理是什么?能够为用户在浏览网站时带来什么好处呢?解决这两个问题是本文的目的。CDN概念CDN全称叫做“Content Delivery Network”,中文叫内容分发网络。实际上CDN这个概念是在1996年由美国麻省理工学院的一个研究小组为改善互联网的服务质量而提出的。那么它到底是怎么改善互联网服务质量的呢?原理分析我们知道,当我们使用域名访问某一个网原创 2021-02-26 10:25:23 · 5703 阅读 · 2 评论 -
微服务架构中服务的编排
单体系统拆分成一堆微服务,服务治理和部署运维时会遇到很多挑战和问题,服务编排就是指如何把这些服务组织到一起,解决这些问题。可以类比积木搭城堡。积木就是你的一大堆微服务、依赖的各个组件,城堡就是指整个微服务系统。搭城堡不是简单的把一堆积木哗啦啦倒一起,要考虑每个位置放什么积木,同样,微服务的编排也要考虑非常多的事情。编排(Orchestration)这个词有点抽象,我们用一个实例来说明微服务编排到底指哪些事情:假如现在准备用Kubernetes来编排一套微服务系统,要考虑哪些事情呢?服务依赖的基.原创 2021-02-26 09:43:35 · 2052 阅读 · 1 评论 -
MESI缓存一致性协议
原创 2021-02-05 22:51:10 · 116 阅读 · 0 评论 -
缓存一致性协议MESI
原创 2021-02-05 22:32:17 · 127 阅读 · 0 评论 -
Feign使用原理
Feign Client会在底层根据你的注解,跟你指定的服务建立连接、构造请求、发起靕求、获取响应、解析响应,等等。这一系列脏活累活,人家Feign全给你干了。那么问题来了,Feign是如何做到这么神奇的呢?很简单,Feign的一个关键机制就是使用了动态代理。咱们一起来看看下面的图,结合图来分析:首先,如果你对某个接口定义了@FeignClient注解,Feign就会针对这个接口创建一个动态代理接着你要是调用那个接口,本质就是会调用Feign创建的动态代理,这是核心中的核心Feign的...原创 2021-02-05 17:20:08 · 688 阅读 · 0 评论 -
setnx
原创 2020-12-21 23:26:25 · 776 阅读 · 0 评论 -
GateWay限流
原创 2020-12-20 15:59:13 · 210 阅读 · 0 评论 -
【spring cloud】注解@SpringCloudApplication和@SpringBootApplication的区别
@SpringCloudApplication注解注解@SpringCloudApplication包括:@SpringBootApplication、@EnableDiscoveryClient、@EnableCircuitBreaker,分别是SpringBoot注解、注册服务中心Eureka注解、断路器注解。对于SpringCloud来说,这是每一微服务必须应有的三个注解,所以才推出了@SpringCloudApplication这一注解集合。注册服务中心引入spring-cloud-start原创 2020-12-20 15:39:54 · 412 阅读 · 2 评论 -
@SentinelResource注解实现热点限流
一:如下代码@RestControllerpublic class ParamController { @GetMapping("/param") @SentinelResource(value = "param", blockHandler = "exHandler") public String param(String type) { return "success"; } public String exHandler(String .原创 2020-12-20 14:23:03 · 349 阅读 · 1 评论 -
sentinel的@SentinelResource注解使用
客户自定义限流处理逻辑创建ExceptionUtil类用于自定义限流处理逻辑自定义限流处理类: ExceptionUtil二:新增 @SentinelResource注解配置 @SentinelResource(value = “hello2”, blockHandler = “exHandler”, blockHandlerClass = {ExceptionUtil.class})通过@SentinelResource注解的blockHandler属性制定具体的处理函数实现处理函数,该函数原创 2020-12-20 13:49:51 · 679 阅读 · 0 评论 -
Sentinel实现黑白名单控制详细教程来了
一:新建一个IpRequestOriginParser类,实现RequestOriginParser接口,配置如下public class IpRequestOriginParser implements RequestOriginParser { /** * Parse the origin from given HTTP request. * * @param request HTTP request * @return parsed origin原创 2020-12-20 13:32:04 · 2866 阅读 · 1 评论 -
Sentinel介绍与使用
一、Sentinel简介Sentinel是阿里开源的项目,提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。二:Sentinel 功能和设计理念流量控制流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。然而,从系统稳定性角度考虑,在处理请求的速度上,也有非常多的讲究。任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要根据系统的处理能力对流量进行控制。Sentinel 作为一个调配器,可以根据需要把随机的请求调整成合适的形状,如下图所示:原创 2020-12-19 09:52:04 · 1130 阅读 · 1 评论 -
笔记
一:今天安装docker的时候,遇到这个报错这个错误需# Executing docker install script, commit: 3d8fe77c2c46c5b7571f94b42793905e5b3e42e4+ sh -c 'yum install -y -q yum-utils'+ sh -c 'yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.re原创 2020-12-14 09:03:36 · 564 阅读 · 1 评论 -
服务提供者和服务消费者
原创 2020-12-13 21:59:14 · 442 阅读 · 1 评论 -
Spring Cloud Alibaa
原创 2020-12-13 21:58:38 · 150 阅读 · 0 评论 -
SpringCloud
原创 2020-12-13 21:43:33 · 117 阅读 · 1 评论 -
ServiceComb
原创 2020-12-13 21:41:09 · 180 阅读 · 0 评论 -
微服务架构的常见问题
原创 2020-12-13 21:35:15 · 374 阅读 · 0 评论 -
sentinel
原创 2020-12-13 21:23:42 · 122 阅读 · 0 评论 -
服务网关
原创 2020-12-13 21:22:36 · 118 阅读 · 0 评论 -
服务的原子化拆分
原创 2020-12-13 21:13:39 · 1178 阅读 · 0 评论 -
服务调用
原创 2020-12-13 21:10:30 · 143 阅读 · 0 评论 -
服务治理
原创 2020-12-13 21:03:32 · 134 阅读 · 0 评论 -
mac下SecureCRT连接阿里云服务器最新教程
一.首先进入自己的阿里云管理控制台地址https://ecs.console.aliyun.com/?spm=5176.6660585.774526198.1.57c96bf8inrLvC#/home二:输入密码三:点击密码重置...原创 2020-12-11 23:52:56 · 1008 阅读 · 1 评论 -
常用的容错方案
原创 2020-12-10 13:06:52 · 591 阅读 · 0 评论 -
Ribbon负载均衡策略
IRule接口原创 2020-12-07 23:35:59 · 119 阅读 · 0 评论 -
服务端负载均衡和客户端负载均衡
服务端负载均衡用户在App访问通过80端口请求nginx,ngin来实现负载均衡,分发请求客户端负载均衡Eureka Server注册中心集群部署,goods_services服务提供者启动后向Eureka Server注册中心进行服务注册App服务从Eureka Server发现服务goods_services服务提供者集群部署,三份,APP服务通过负载均衡算法调用goods_services服务应为rabbin的jar包是在客户端的,所以是客户端负载均衡...原创 2020-12-07 23:00:48 · 309 阅读 · 0 评论 -
rabbin负载均衡
原创 2020-12-07 12:58:20 · 459 阅读 · 0 评论 -
Spring Cloud alibaba版本对应
原创 2020-12-06 22:34:22 · 1061 阅读 · 1 评论 -
架构图笔记
原创 2020-12-05 22:52:53 · 207 阅读 · 0 评论 -
分布式事务笔记
原创 2020-12-05 21:37:50 · 201 阅读 · 0 评论