
微服务
dbqb007
Apache committer,熟悉中间件,微服务开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Dubbo融合Web Service教程
Web Service是一种传统的远程过程调用方式,它通过XML来定义服务信息和传输数据。Dubbo是一种分布式服务治理框架,它提供了服务注册与发现,负载均衡,远程调用等。Dubbo在进行服务调用时,默认使用Dubbo 自定义的协议,但也支持各种第三方协议,如rest,grpc,web service等。Dubbo提供了对Web Service的整合能力,主要是指可以将Web Service包装成Dubbo服务,因此提供了服务注册与发现,同时在提供者端可以让开发者像发布Dubbo服务那样,很简便地发布We原创 2020-07-19 21:02:56 · 787 阅读 · 0 评论 -
图解Dubbo提供者部分重要的类关系
Dubbo的提供者发布服务是一个比较复杂的过程。概括起来说,主要有以下几步:1.解析配置2.导出服务解析服务的过程略过。本文主要分析导出服务的过程,其中有一些比较重要的类,它们之间通过代理模式和装饰器模式,巧妙组合在一起,实现了Dubbo的提供者的功能,本文通过画图来解释它们。导出服务又可以分为以下几步:生成实现类的包裹对象即代理对象假设我们定义了一个远程调用的接口,那么在提供者端就需要一个实现类来实现这个接口。同时为了实现监控,回调等功能,当请求到达时,不能简单根据类名和方法名去通过反射调用实原创 2020-06-25 23:27:05 · 450 阅读 · 0 评论 -
Spring Cloud Consul外部配置动态刷新源码解析
ConsulConsul是一款中间件,可提供KV存储功能,同时提供了创建、修改、查询KV存储的HTTP API,因此可作为配置中心。Spring Cloud ConsulSpring Cloud Consul是基于Spring Cloud的公共接口,提供了集成Consul配置能力的微服务框架。源码分析ConfigWatch这个类中提供了一个定时任务 @Override pub...原创 2020-04-09 19:36:11 · 1988 阅读 · 0 评论 -
Spring相关项目master分支Snapshot下载问题解决
Spring相关项目是一个庞大的家族,除了Spring Framework之外,还有Spring Boot,Spring Cloud等。这些项目和其他开源项目有个明显区别,就是他们之间是有相互依赖的。比如Spring Boot依赖Spring Framework,Spring Cloud又依赖Spring Boot等。Spring相关项目的主开发分支是master分支。而master分支依赖的其...原创 2020-03-20 00:26:48 · 2625 阅读 · 1 评论 -
Dubbo使用Apollo作为配置中心实战
一.Dubbo支持Apollo的介绍Apollo是携程开源的一款配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。Dubbo目前的最新版本2.7.0将过去单一的注册中心拆分成了注册中心、元数据中心和配置中心。其中配置中心起到的作用之一,就是将配置外部化,也就是将配置从应用内部剥离出去,可以在一...原创 2019-03-17 15:18:25 · 9264 阅读 · 4 评论 -
gRPC使用初探
gRPC是谷歌开源的一款RPC框架,基于HTTP/2协议,使用protocol buffer作为接口定义语言(Interface Definition Language)和底层数据交换格式。gRPC最大的优点是能跨语言,因为使用和语言无关的protobuf来定义接口,并且使用标准的http协议来进行传输,能使不同语言的服务端和客户端互相兼容。gRPC-java的github地址是https:/...原创 2019-03-31 13:26:00 · 1341 阅读 · 0 评论 -
Dubbo/Netty中时间轮算法的原理
在Dubbo中,为增强系统的容错能力,在很多地方需要用到只需进行一次执行的任务调度。比如RPC调用的超时机制的实现,消费者需要各个RPC调用是否超时,如果超时会将超时结果返回给应用层。在Dubbo最开始的实现中,是采用将所有的返回结果(DefaultFuture)都放入一个集合中,并且通过一个定时任务,每隔一定时间间隔就扫描所有的future,逐个判断是否超时。这样的实现方式实现起来比较简单,但...原创 2019-06-02 16:59:16 · 2991 阅读 · 0 评论 -
Dubbo中InternalThreadLocal源码分析
在Java中,ThreadLocal是实现线程安全的一种手段,它的作用是对于同一个ThreadLocal变量,在每一个线程中都有一个副本,当修改任何一个线程的变量时,不会影响到其他线程。它通过在每一个Thread中存储一个类似于map的结构,以ThreadLocal变量为key,变量值为value。Dubbo在RPC调用的上下文中,需要借助ThreadLocal保存上下文。它从Netty中借鉴了...原创 2019-07-10 01:10:40 · 2808 阅读 · 0 评论 -
Dubbo服务端服务发布(一)Invoker创建
在Dubbo的服务发布过程中,Invoker链的构造是一个重要的步骤,Invoker代表的是一个可以调用的服务的接口。它的定义如下:public interface Invoker<T> extends Node { /** * get service interface. * * @return service interface. ...原创 2019-07-16 17:30:57 · 837 阅读 · 0 评论