微服务
文章平均质量分 82
怎能止步于此
一个创业者,一个希望能够在人生中有不断尝试的人,不断对未来有梦想的人,猜测、谣言、苦难、挫折,一定会伴随着你。
展开
-
SpringCloud之服务容错——Hystrix
前言在了解这部分内容之前,先问大家几个问题,你是否总听到在周围互联网工作的小伙伴们一口一个降级啊、熔断啊,听到是什么感受呢?想插嘴,却不知道该说些什么;想说些什么,却又怕说错了被人笑话。降级和熔断听起来好像挺高大上的呀,他们究竟能应用到哪些应用场景中来呢?什么样的应用场景才能用到降级和熔断呢?我这小作坊一亩三分地的业务也需要降级和熔断么?它离我们的真实业务到底有多远?带着这些问题我们就拉开SpringCloud服务容错——Hystrix的序幕。服务容错——Hystrix没错,它又是Netflix原创 2021-11-23 23:47:51 · 604 阅读 · 1 评论 -
彻底搞懂Feign——EnableFeignClient底层机制探究
EnableFeignClient源码探究话不多说直接开干!点进@EnableFeignClient这个注解里:里面较为核心的是这个FeignClientRegistrar,我们点进去:我们发现它实现了ImportBeanDefinitionRegistrar、ResourceLoaderAware、EnvironmentAware这三个接口,这里关于后面连个Aware接口就不做过多介绍了,熟悉Spring的同学应该都知道吧,我们就看一下这个ImportBeanDefinitionRegistr原创 2021-11-22 22:43:11 · 1746 阅读 · 0 评论 -
打破理解误区,聊聊什么才是真正的云原生?
云原生应用在我们的互联网应用当中,有一个词想必大家都很熟悉,叫做云原生,或者云原生应用。那什么才是云原生呢?在云原生概念中,有一个叫做云原生15原则,这15个原则我们可以分成四类:CICD弹性解耦中台CICD是和软件发布相关,弹性是和应用的特性相关,解耦是应用与应用之间的关系,最后一个中台是对外服务的形式。只有说满足了15原则,我们才能说是一个很好的云原生应用了。这里我们为什么来通过这个15原则来聊云原生呢?很多人盲目上云,不是所有的应用都适合云,也不是所有应用都能叫云原生。很多原创 2021-11-21 22:53:12 · 602 阅读 · 0 评论 -
SpringCloud之远程调用Feign
创建Feign的消费者实例创建项目,引入依赖借助动态代理接口实现远程调用比较Eureka,Ribbon和Feign的调用方式。首先我们先创建一个ribbon-consumer的模块,并添加依赖: <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>s原创 2021-11-21 20:36:36 · 525 阅读 · 0 评论 -
Ribbon最终实战——打造自定义一致性哈希负载均衡策略
自定义IRule本文,我们通过IRule接口,实现一个自定义的负载均衡策略——一致性哈希。关于一致性哈希原理不是本文探讨的重点,如果不了解的同学可以看下这篇文章《一致性哈希算法的原理与实现》,写的还是挺不错的。一致性哈希不仅在负载均衡的领域,在很多其他的领域都有广泛的应用。我们废话不多说,直接开干!首先我们在ribbon-consumer的模块下,创建一个类并继承AbstractLoadBalancerRule和实现IRule接口:然后从上下文中获取HttpServletRequest对象:原创 2021-11-19 21:52:51 · 936 阅读 · 0 评论 -
彻底搞懂Ribbon——IPing机制源码解析
IPing机制我们废话不多说,直接看源码:这里只有一个isAlive,它会传入一个Ribbon选出来的Server,看看是不是挂了。我们看一下它的实现类:可以看到它的实现类还是蛮多,我们就先看一下这个DummyPing:这个直接返回true。。。那算了,就不要看它了,再看看其他的,我们就看一下PingUrl这个类吧:这个类还是有点东西的。这里小编就不debug走了,很多时候我们就是一个肉眼编译器,在很多互联网公司,代码提交链错综复杂,所以说很多时候项目比较忙的时候,代码交叉在一块,你都原创 2021-11-18 23:51:04 · 672 阅读 · 0 评论 -
彻底搞懂Ribbon——负载均衡策略源码探究
Ribbon负载均衡策略源码解析RandomRuleRoundRobinRuleBestAvailableRuleRetryRuleRandomRule我们先来看一下这个随机策略的源码:这个choose是它的核心方法。public Server choose(ILoadBalancer lb, Object key) { // 如果传入的LoadBalancer是空,直接返回null if (lb == null) { return null;原创 2021-11-18 00:06:23 · 599 阅读 · 0 评论 -
SpringCloud之负载均衡Ribbon
快速入门添加负载均衡创建ribbon-consumer添加依赖,调用eureka-client启动多个eureka-client将负载均衡策略应用到全局或指定服务1.创建ribbon-consumer在父工程下面创建模块ribbon-consumer添加如下依赖: <dependencies> <dependency> <groupId>org.springframework.cloud</group原创 2021-11-17 10:03:39 · 658 阅读 · 0 评论 -
Eureka最终实战——打造双中心节点高可用化
高可用注册中心架构图看下图,我们先对注册中心高可用架构有一个直观的认识:注册中心高可用改造废话不多说,我们直接开干!步骤:修改host配置文件启动双注册中心单节点注册+同步机制客户端配置双节点1.修改host配置文件我这里用的是mac的系统,需要进入到etc目录下,如果是windows的小伙伴可以去网上查一下相关资料找到hosts这个文件。添加如下内容:2.创建并配置双注册中心2.1创建eureka-server-peer模块2.2创建启动类2.3创建配置文件s原创 2021-11-15 23:46:50 · 1367 阅读 · 1 评论 -
彻底搞懂Eureka——服务续约源码探究
在上篇文章《彻底搞懂Eureka——心跳发送源码探究》我们已经研究过了服务发送的流程,我们也知道,心跳发送与服务续约是一种相互作用的机制,client发送一个心跳,对应的服务端就要接受这个心跳完成一次服务的续约对吧。我们来看一下InstanceResource这个类:当客户端发送完心跳以后,服务端会在这个renewLease方法里面接受这个请求,接受一个PUT的httpMeathod,它的属性都是通过@QueryParam注入进来的我们往下走一步:可以看到这里有一个isFromReplicaNo原创 2021-11-15 21:37:08 · 747 阅读 · 0 评论 -
彻底搞懂Eureka——心跳发送源码探究
在DiscoveryClient里有这样一个方法:在服务的启动时,会有一个服务的心跳包在这里发送出去,我们打个断点,看一下这部分心跳的逻辑,前面的代码我们先略过,直接跳到发送心跳的地方:根据这个方法名,我们不难猜测,它应该是在后台通过定时触发的一个任务,我们进入这个方法:在这里可以看到这个定时的任务不仅包含心跳,还有缓存的刷新,我们这部分先不看,继续往下走:这里就和心跳有关系了,可以看出,在clientConfig.shouldRegisterWithEureka()为true的时候才会进来原创 2021-11-14 23:16:22 · 977 阅读 · 0 评论 -
彻底搞懂Eureka——探讨吐血绕人的服务注册逻辑
前言学习源码之前,小伙伴们首先应该创建好服务提供方,方便后续断点阅读。如果小伙伴们不知道如何动手,请参考一下这两篇文章:《聊聊服务治理》 、《创建服务提供者》我们先看一下这个服务发现的核心注解:点进去:我们可以看到这里有一个autoRegister注解,它的默认值是true。上面注释中解释:如果为true,ServiceRegistry会自动注入local server即当前instance。看到这里,感觉线索还不是很明显,我们再找找其他内容。果然,看到上面Import注解中:点进去原创 2021-11-13 00:48:54 · 1071 阅读 · 0 评论 -
Eureka快速入门——创建服务提供者
关于服务提供者的创建较简单,小编就少说点废话,直接上代码,跟着敲一敲相信聪明的小伙伴们就能一目了然了。创建服务提供者1.创建eureka-client模块并添加依赖依赖 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-原创 2021-11-12 21:44:16 · 782 阅读 · 0 评论 -
推开SpringCloud的第一扇大门——初步探讨服务治理
SpringCloud前面,我相信各位小伙伴们已经对微服务架构有了一个基本的了解吧,那么现在立即马上,我们正式开始SpringCloud微服务架构实战部分的内容,从这里,我们推开SpringCloud技术架构的第一扇大门,我们一起来探讨一下SpringCloud中最最核心的一个组件——服务治理组件。分布式系统CAP定理在正式介绍服务治理组件之前,我们先来聊一聊在分布式系统一个非常重要的理论——CAP定理。一致性这里的C就是一致性(Consistency),它指的是在分布式系统中,所有的数据副本,比原创 2021-11-11 23:36:07 · 687 阅读 · 0 评论 -
史诗级鸿篇巨著微服务架构之微服务介绍
微服务架构认知欢迎大家和小编一起学习史诗级鸿篇巨著,微服务架构第一章——微服务架构认知,在本文中主要和大家介绍一下微服务架构的理念,让大家对微服务有个比较直观的认识,在介绍本次微服务系列之前,先来给大家做个剧透,看看我们整篇系列文章要介绍的内容。微服务介绍SpringCloud在微服务的整个体系当中,它包含了许许多多的组件,比如:服务治理——Eureka、Nacos、Consul负载均衡——Ribbon服务容错——Hystrix服务调用——Feign、DubboRPC分布式配置中心—原创 2021-11-10 22:31:41 · 724 阅读 · 0 评论 -
SpringCloudAlibaba电商项目实战
在昨天我们已经完成了父工程搭建和通用模块以及注册中心的搭建,那么接下来我们继续完成资料:云盘连接 提取码:er6t在云盘中将基础结构代码直接下载,并解压,通过idea打开这里每一个模块都是微服务模块,对应的都是对于数据库中表的增删改查操作,这里我有必要说一点每一个启动类上,都是通过通用mapper对包进行了扫描,并且每一个实体类都有相应数据库的表与字段的关系映射。也就是说,通过通...原创 2020-02-15 11:49:35 · 4321 阅读 · 4 评论