RSS

Posts in 2018

  • 2018-08-14 in 技术分享

    背景介绍 Dubbo Spring Boot 工程致力于简化 Dubbo RPC 框架在Spring Boot应用场景的开发。同时也整合了 Spring Boot 特性: 自动装配 (比如: 注解驱动, 自动装配等). Production-Ready (比如: 安全, 健康检查, 外部化配置等). DubboConsumer启动分析 你有没有想过一个问题?dubbo-spring-boot-project中的DubboConsumerDemo应用就一行代码,main方法执行完之后,为什么不 …

    更多

  • 2018-08-14 in 技术分享

    以下几种场景可以考虑使用泛化调用: 服务测试平台 API 服务网关 泛化调用主要用于消费端没有 API 接口的情况;不需要引入接口 jar 包,而是直接通过 GenericService 接口来发起服务调用,参数及返回值中的所有 POJO 均用 Map 表示。泛化调用对于服务端无需关注,按正常服务进行暴露即可。 下面来看看消费端如何使用泛化调用进行服务调用。 通过 Spring XML 配置进行泛化调用 在 Spring 配置申明 generic="true",如: …

    更多

  • 2018-08-14 in 技术分享

    Dubbo基本用法 本章节主要讲述如何配置dubbo,按照配置方式上分,可以分为:XML配置,properties方式配置,注解方式配置,API调用方式配置。 按照功能角度进行划分,可以分为Dubbo Provider和Dubbo Consumer。接下来章节中,分别对dubbo provider和Dubbo consumer进行讲解。 Dubbo Provider配置 Provider 配置详解 配置Dubbo Provider有4种方式:XML配置,properties方式配置,API调用方 …

    更多

  • 2018-08-14 in 技术分享

    Dubbo Consumer配置 Consumer配置详解 配置Dubbo Consumer有3种方式:XML配置,API调用方式配置,注解方式配置。 XML配置 最简单的配置的样例: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" …

    更多

  • 2018-08-14 in 技术分享

    我们知道,Dubbo 缺省协议采用单一长连接,底层实现是 Netty 的 NIO 异步通讯机制;基于这种机制,Dubbo 实现了以下几种调用方式: 同步调用 异步调用 参数回调 事件通知 同步调用 同步调用是一种阻塞式的调用方式,即 Consumer 端代码一直阻塞等待,直到 Provider 端返回为止; 通常,一个典型的同步调用过程如下: Consumer 业务线程调用远程接口,向 Provider 发送请求,同时当前线程处于阻塞状态; Provider 接到 Consumer 的请求 …

    更多

  • 2018-08-14 in 技术分享

    背景 对于任何一个线上应用,如何在服务更新部署过程中保证客户端无感知是开发者必须要解决的问题,即从应用停止到重启恢复服务这个阶段不能影响正常的业务请求。理想条件下,在没有请求的时候再进行更新是最安全可靠的,然而互联网应用必须要保证可用性,因此在技术层面上优化应用更新流程来保证服务在更新时无损是必要的。 传统的解决方式是通过将应用更新流程划分为手工摘流量、停应用、更新重启三个步骤,由人工操作实现客户端无对更新感知。这种方式简单而有效,但是限制较多:不仅需要使用借助网关的支持来摘流量,还需要在停应用 …

    更多

  • 2018-08-10 in 技术分享

    背景 Dubbo是一个分布式服务框架,能避免单点故障和支持服务的横向扩容。一个服务通常会部署多个实例。如何从多个服务 Provider 组成的集群中挑选出一个进行调用,就涉及到一个负载均衡的策略。 几个概念 在讨论负载均衡之前,我想先解释一下这3个概念。 负载均衡 集群容错 服务路由 这3个概念容易混淆。他们都描述了怎么从多个 Provider 中选择一个来进行调用。那他们到底有什么区别呢?下面我来举一个简单的例子,把这几个概念阐述清楚吧。 有一个Dubbo的用户服务,在北京部署了10个,在 …

    更多

  • 2018-08-07 in 技术分享

    Java RMI 简介 Java RMI (Remote Method Invocation)- 远程方法调用,能够让客户端像使用本地调用一样调用服务端 Java 虚拟机中的对象方法。RMI 是面向对象语言领域对 RPC (Remote Procedure Call)的完善,用户无需依靠 IDL 的帮助来完成分布式调用,而是通过依赖接口这种更简单自然的方式。 Java RMI 工作原理 一个典型的 RMI 调用如下图所示: 服务端向 RMI 注册服务绑定自己的地址, 客户端通过 RMI 注册服 …

    更多

  • 2018-08-07 in 技术分享

    Zookeeper 介绍 基本概念 在现代的分布式应用中,往往会出现节点和节点之间的协调问题,其中就包括了:选主、集群管理、分布式锁、分布式配置管理、统一命名服务、状态同步等诉求。Apache Zookeeper,正如它的名字所暗示的那样,动物园管理员,就是为了解决这些诉求的一个分布式协调服务框架。 为了保证高可用,ZooKeeper 本身也可以部署成集群模式,称之为 ZooKeeper ensemble。ZooKeeper 集群中始终确保其中的一台为 leader 的角色,并通过 ZAB …

    更多

  • 2018-08-07 in 技术分享

    在 Dubbo 中使用注解 随着微服务架构的广泛地推广和实施。在 Java 生态系统中,以 Spring Boot 和 Spring Cloud 为代表的微服务框架,引入了全新的编程模型,包括: 注解驱动(Annotation-Driven) 外部化配置(External Configuration) 以及自动装配(Auto-Configure) 新的编程模型无需 XML 配置、简化部署、提升开发效率。为了更好地实践微服务架构,Dubbo 从 2.5.8 版本开始, 分别针对了上述的三个场 …

    更多