dubbo & spring cloud
文章平均质量分 79
zhifeng687
这个作者很懒,什么都没留下…
展开
-
dubbo timeout 优先级以及最佳实践
理论一般,接口都有设置超时时间,不管是http接口,还是dubbo接口。为什么要设置超时时间?因为不设置的时候,一旦高并发,就会把系统搞挂。具体就是可能部分交易请求很慢,耗时很久,但是没有设置超时,然后就一直占着dubbo线程池的线程资源,这个时候,就会因为部分慢交易,影响和导致了整个系统,因为其他本来正常的交易,现在由于dubbo线程池满了,也处理不了了,这个时候,系统就崩溃了,所有的交易都耗时很慢。dubbo超时的维度有2个维度,一个是作用域粒度,一个是消费者还是生产者。粒度转载 2018-06-12 15:34:55 · 928 阅读 · 0 评论 -
微服务--十个设计要点
微服务生态微服务有哪些要点呢?先看下图是 SpringCloud 的整个生态。设计要点一:API网关在实施微服务的过程中,不免要面临服务的聚合与拆分,当后端服务的拆分相对比较频繁的时候,作为手机 App 来讲,往往需要一个统一的入口,将不同的请求路由到不同的服务,无论后面如何拆分与聚合,对于手机端来讲都是透明的。有了 API 网关以后,简单的数据聚合可以在网关层完成,这样就不用在手机 App 端完成,从而手机 App 耗电量较小,用户体验较好。有了统一的 API 网关,还可以转载 2016-05-31 20:09:55 · 2060 阅读 · 0 评论 -
Dubbo服务调用过程
节点角色说明:Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor: 统计服务的调用次调和调用时间的监控中心。 Container: 服务运行容器。调用关系说明:0. 服务容器负责启动,加载,运行服务提供者。 1. 服务提供者在启动时,向注册中心注册自己提供的服务。 2. 服务消费者在启动时,向注册中心订阅自己所需的服务。 3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注转载 2016-01-12 12:21:31 · 767 阅读 · 0 评论 -
分布式服务框架 HSF
摘要:RPC 协议采用多路复用的 TCP 长连接方式,在服务提供者和调用者间有多个服务请求同时调用时会共用同一个长连接,即一个连接交替传输不同请求的字节块。它既避免了反复建立连接开销,也避免了连接的等待闲置从而减少了系统连接总数,同时还避免了 TCP 顺序传输中的线头阻塞(head-of-line blocking)问题。Docker相关:考虑到应用故障的隔离、更方便的服务管控,目前...转载 2015-08-14 17:09:48 · 3859 阅读 · 1 评论 -
soa服务划分实例
传统的IT系统在向互联网化方向转型时,通常需要面对以下几个技术挑战。■ 性能。用户体验是影响转化率的重要因素,据统计如果4秒钟打不开网站,将有60%的顾客会流失,糟糕体验将导致大量的客户选择放弃或从竞争对手处购买服务。如何在高并发访问的情况下保证系统的低延迟响应,以提升用户体验。■ 伸缩性。互联网/移动互联网用户的访问行为是动态的,在一些特殊的热点引爆...转载 2015-08-03 14:18:03 · 3112 阅读 · 0 评论 -
soa架构演进
单体架构在网站开发的前期,项目面临的流量相对较少,单一应用可以实现我们所需要的功能,从而减少开发、部署和维护的难度。这种用于简单的增删改查的数据访问框架(ORM)十分的重要。垂直应用架构当用户访问量不断的提升,单一应用需要不断的增加服务器来应对,同时将单一的应用拆分成多个应用用来处理提升效率。这种用于加速Web前端加载的Web框架(MVC)起到了关键性的作用。在这一阶段...转载 2015-07-16 14:35:25 · 1066 阅读 · 0 评论 -
SOA服务切分原则
1,什么是服务的颗粒度?一般的说法,服务颗粒度(service granularity)就是指一个服务包含的功能大小。举个例子,对于电信九七系统中的营业受理来说,提交客户订单就是一个典型的粗粒度的服务,而实现这个提交订单服务的一系列内部操作,比如说创建客户资料,生成客户订单,记录产品属性,更新帐务关系等等就可能成为一系列细粒度的服务。细粒度的服务(fine-grained)提供相对较小的功能单元,...转载 2015-07-04 21:11:09 · 3845 阅读 · 0 评论 -
结合maven和dubbo进行项目模块划分和模块依赖
为了防止传递依赖,我们各个模块之间尽量用直接依赖的方式。本篇文章介绍多模块化开发,我们做过Maven项目的都知道,我们的项目一般都是分模块的,每个模块都会对应着一个POM.xml文件,它们之间通过继承和聚合(也称多模块,multi-module)相互关联。原创 2015-06-06 01:21:23 · 1893 阅读 · 0 评论 -
dubbo在项目中的应用
关于dubbo的使用,我们举个简单例子:存在2个系统,A系统和B系统,A系统调用B系统的接口获取数据,用于查询用户列表。在上一篇博文介绍了dubbo的创建,zookeeper的创建完成后,我们可以来使用dubbo和zookeeper了?再回顾下dubbo的架构:所以通过此图,我们看到就是服务的提供者将服务注册到注册中心,服务的消费者从注册中心获取服务,monitor监控服务的调用。所谓框架无非就是...转载 2016-05-25 20:52:53 · 10771 阅读 · 0 评论 -
dubbo源码浅析-远程服务调用流程
转载自:dubbo源码浅析(五)-远程服务调用流程非商业转载,如造成侵权,请联系本人删除消费端调用远程服务接口时,使用上和调用普通的java接口是没有任何区别,但是服务消费者和提供者是跨JVM和主机的,客户端如何封装请求让服务端理解请求并且解析服务端返回的接口调用结果,服务端如何解析客户端的请求并且向客户端返回调用结果,这些框架是如何实现的,下面就来看下这部分的代码。 消费端调用提供端服务的过程要...转载 2018-05-29 17:22:49 · 3374 阅读 · 0 评论 -
Dubbo——Transport网络传输层
Transport网络传输层1请求/响应的处理流程NettyHandler:继承netty对象SimpleChannelHandler,重写了channelConnected、channelDisconnected、messageReceived、writeRequested、exceptionCaught方法,当netty的通道发生连接、断开连接、收到消息、写入消息、捕获异常等事件时触发Nett...原创 2018-05-29 15:02:14 · 693 阅读 · 0 评论 -
Dubbo——Exchange信息交换层
Exchange信息交换层1、Exchange层的类分析ReferenceCountExchangeClient:将请求交HeaderExchangeClient处理,不进行任何其他操作。HeaderExchangeClient:提供心跳检查功能;将send、request、close等事件转由HeaderExchangeChannel处理,HeaderExchangeChannel对象中的Cha...转载 2018-05-29 11:36:19 · 982 阅读 · 0 评论 -
dubbo的超时机制和重试机制
超时是针对消费端还是服务端?如果是争对消费端,那么当消费端发起一次请求后,如果在规定时间内未得到服务端的响应则直接返回超时异常,但服务端的代码依然在执行。如果是争取服务端,那么当消费端发起一次请求后,一直等待服务端的响应,服务端在方法执行到指定时间后如果未执行完,此时返回一个超时异常给到消费端。dubbo的超时是争对客户端的,由于是一种NIO模式,消费端发起请求后得到一个ResponseFuture,然后消费端一直轮询这个ResponseFuture直至超时或者收到服务端的返回结果。转载 2018-05-29 10:55:54 · 23503 阅读 · 1 评论 -
dubbo暴露服务的过程解析(从proxy层到exchange、transport层)
一 概述 上个章节已经描述了dubbo发布一个服务,但具体是如何发布服务只是粗略的描述了下,这里将深入描述服务发布时怎么样开启socket监听,即启动netty服务。二 开启netty服务上一节发布服务的重点入口代码如下[java] view plain copy//通过proxyFactory对象生成接口实现类代理对象Invoker Invoker<?> invoker = ...转载 2018-05-28 16:16:46 · 887 阅读 · 0 评论 -
Dubbo框架设计官方文档
框架设计整体设计图例说明:图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config 层为 API,其它各层均为 SPI。图中绿色小块的为扩展接口,蓝色小块为实现类,图中只显示用于关联各层的实现类。图...转载 2018-05-28 15:44:54 · 834 阅读 · 0 评论