微服务
文章平均质量分 89
三水写代码
你只管努力变得优秀······
展开
-
dubbo SPI源码解读: ExtensionLoader 加载过程
上一篇博客中我们介绍了dubbo中SPI功能的使用规则,这里我们看一下它的加载过程:这里它的加载过程就两步:获取ExtensionLoader的实例对象 通过ExtensionLoader的实例对象获取到我们要的扩展点实例1、获取ExtensionLoader实例对象getExtensionLoader 方法做了这么几件事:1、 判断class对象是否为空、是否为接口、类上是否有@SPI注解2、查询缓存获取ExtensionLoader实例, 如果没有则创建一个实例对象,并...原创 2021-05-24 15:41:45 · 238 阅读 · 0 评论 -
dubbo SPI使用:@SPI 与 @Adaptive
dubbo中使用spi除了配置文件外还需要有@SPI和@Adaptive注解,这两个注解中都可以设置参数,且@Adaptive注解可以设置在方法上也可以设置在类上。下面我们来卡一下他的具体使用规则。1、引入dubbo依赖:<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.6.x</v原创 2021-05-23 18:21:06 · 847 阅读 · 2 评论 -
dubbo服务注册与发现源码解析
1、zookeeper中注册的数据我们一般使用zookeeper作为dubbo的注册中心,但是我们注册到dubbo中的数据是什么样的呢,这里我们就来看一下:1、初始时zookeeper中的数据:这是zookeeper中只有testRoot 和zookeeper两个路径2、我们启动dubbo的提供者和消费者:消费者:3、查看zookeeper中注册的信息下面是我们将获取的两段url解码后的信息:consumer:consumer://192.168.5..原创 2021-05-21 17:48:18 · 831 阅读 · 0 评论 -
jdk的SPI和dubbo的SPI
什么是SPI: SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。SPI的作用就是为这些被扩展的API寻找服务实现。使用SPI机制的优势是实现解耦,使得第三方服务模块的装配控制逻辑与调用者的业务代码分离。JDK中的SPI:java中如果想要使用SPI功能,先要提供标准的服务接口,然后再提供相关接口实现和服务调用者。通过SPI机制中约定的信息进行查询相应接口的实现,如下图:SPI遵...原创 2021-05-20 17:54:13 · 421 阅读 · 1 评论 -
dubbo整体框架设计
1、dubbo调用关系说明前面我们已经介绍过dubbo的调用关系说明,这里我们对其做一些补充dubbo的调用关系主要由四部分组成:一、Provider: 暴露服务的服务提供方Protocol:协议, 负责提供者和消费者之间协议交互数据 Service:服务,真实的业务服务信息,可以理解为接口和实现 Container:容器,dubbo的运行环境二、Consumer:调用远程服务的服务消费方Protocol:协议,负责提供者和消费者之间协议交互数据 Cluster:集群,感知提原创 2021-05-19 18:13:12 · 550 阅读 · 0 评论 -
Dubbo与SpringBoot整合(2)----dubbo的高级功能
上一篇文章中我们介绍了dubbo与springBoot整合的基本功能:dubbo与springBoot整合(1), 使用的方式是:引入 dubbo-spring-boot-starter 依赖包,在application.properties中配置dubbo的属性, 使用@EnableDubbo开启dubbo支持, 使用@Service暴露服务, 使用@Reference调用服务。但是有些功能,暂时不支持使用注解配置,如我们要设置具体到一个类中一个方法的超时时间,这时候@service注解就没法满足。d原创 2021-05-19 13:46:13 · 503 阅读 · 1 评论 -
Dubbo与springBoot整合(1)
dubbo的基本介绍:Apache Dubbo 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。官网:http://dubbo.apache.org/基本架构设计:服务提供者(provider): 暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务 服务消费者(consumer):调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务。集群环境下,服务消..原创 2021-05-12 20:39:40 · 267 阅读 · 2 评论 -
服务监控:Hystrix Dashboard
Hystrix Dashboard是Hystrix提供的实时监控系统。Hystyix会持续记录所有通过Hystrix发起的请求执行信息,并通过统计报表和图形的形式展示给用户。Hystrix Dashboard是一个单独的微服务。创建Hystrix Dashboard服务:POM: <dependency> <groupId&...原创 2019-05-23 22:11:17 · 681 阅读 · 0 评论 -
解决HystrixDashboard一直loading问题
文章转载来源:https://www.cnblogs.com/hejianjun/p/8670693.htmlHystrix是什么Hystrix 能使你的系统在出现依赖服务失效的时候,通过隔离系统所依赖的服务,防止服务级联失败,同时提供失败回退机制,更优雅地应对失效,并使你的系统能更快地从异常中恢复。Hystrix能做什么?在通过第三方客户端访问(通常是通过网络)依赖服务出现高...转载 2019-05-23 20:18:01 · 3467 阅读 · 2 评论 -
Ribbon IRule接口与自定义负载均衡算法
Ribbon中的内置的负载均衡算法,都实现了IRule接口。因此如果我们要自定时负载均衡算法也要实现IRule接口。IRule接口:public interface IRule { Server choose(Object var1); //选择哪个服务处理请求 void setLoadBalancer(ILoadBalancer var1); //设置IL...原创 2019-05-23 17:32:22 · 3881 阅读 · 0 评论 -
SpringCloud入门(五):Zuul路由
Zuul的主要功能是路由转发和过滤器。zuul默认和Ribbon结合实现了负载均衡的功能。在SpringCloud中,Zuul是一个独立的微服务,注册进Eureka注册中心,并从Eureka获取其他微服务信息,之后对微服务的调用都会通过Zuul转发。创建Zuul微服务:cloudZuulPOM: <dependency> <...原创 2019-05-23 15:59:29 · 663 阅读 · 0 评论 -
SpringCloud入门(四):Hystrix服务熔断
在微服务架构中,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故...原创 2019-05-23 14:58:01 · 1127 阅读 · 0 评论 -
SpringCloud入门(三):Feign声明式服务调用
Feign是一个声明式的Web Service客户端,它的目的就是让Web Service调用更加简单。Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解,就可以定义好HTTP请求的参数、格式、地址等信息。Feign是用@FeignClient来映射服务。Feign是客户端简化微服务调用的工具,因此我们只需要在客户端进行Feign的配置和服务调用,而服务提供端不需要做任何更改。...原创 2019-05-23 14:57:51 · 806 阅读 · 0 评论 -
SpringCloud入门(二):Ribbon负载均衡
Ribbon是基于Netflix Ribbon实现的一套客户端 的负载均衡的工具。也就是在服务消费端(Consumer)实现负载均衡,不需要在服务提供端(Provider)做任何特殊处理。服务消费端CloudConsumer:pom文件: <!-- Ribbon相关 --> <dependency> <groupId>org.sprin...原创 2019-05-22 18:58:35 · 760 阅读 · 0 评论 -
Eureka服务信息优化、Eureka集群
注册进Eureka中的微服务信息优化:注册进Eureka的服务:status标题下,显示的是“计算机名:服务名:端口号”,且将鼠标放在status标题下的服务信息中,浏览器的左下角会显示计算机名和端口号。如果在微服务比较多的情况,且分布在不同服务器上的情况下,无法定位是那台服务器上的服务出了问题。status标题下的值信息,是一个超链接,点击进去,进入到SpringBoot的错误页面。...原创 2019-05-22 18:58:27 · 1363 阅读 · 0 评论 -
SpringCloud入门(一):服务创建、注册
SpringCloud是依赖于SpringBoot和Maven建立微服务,因此学习SpringCloud之前一定要先能熟练使用SpringBoot和Maven,这样可以减少学习SpringCloud时踩坑。简单的服务调用:RestTemplate服务提供者:CloudProviderPOM文件:只需要引入springBoot对web支持的jar包(启动类这里就不再赘述)。 &l...原创 2019-05-22 16:31:12 · 695 阅读 · 0 评论