撰写于 2018
  • Dubbo的负载均衡

    Friday, August 10, 2018 在 功能演示

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

    更多

  • 在 Dubbo 中使用注解

    Tuesday, August 07, 2018 在 功能演示

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

    更多

  • 在 Dubbo 应用中使用 Zookeeper

    Tuesday, August 07, 2018 在 生态集成

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

    更多

  • 使用jdk17编译运行dubbo 2.7.14项目

    Tuesday, August 07, 2018 在 功能演示

    概述 java 17是java目前最新的长期支持(LTS)版本,但是由于其强封装 JDK 的内部 API的新特性,导致dubbo项目无法直接使用jdk17编译运行。通过参考openjdk的说明,可以发现只需要添加相应参数即可绕开java 17的限制 对于普通的dubbo项目,只需要在运行时添加 --add-opens java.base/java.lang=ALL-UNNAMED --add-opens …

    更多

  • 第一个 Dubbo 应用

    Tuesday, August 07, 2018 在 功能演示

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

    更多

  • Dubbo 注解驱动

    Tuesday, August 07, 2018 在 功能演示

    注解驱动(Annotation-Driven) @DubboComponentScan 起始版本: 2.5.7 <dubbo:annotation> 历史遗留问题 1. 注解支持不充分 在 Dubbo 2.5.7之前的版本 ,Dubbo 提供了两个核心注解 @Service 以及 @Reference,分别用于Dubbo 服务提供和 Dubbo 服务引用。 其中,@Service 作为 XML 元素 <dubbo:service>的替代注解,与 Spring …

    更多

  • 第三届Dubbo开发者沙龙在深圳成功举办

    Monday, July 30, 2018 在 社区动态

    第三届Dubbo开发者沙龙在深圳成功举办,超过2000位开发者报名,现场参与人数700+,通过阿里云天池、云栖社区、大咖说引导线上直播观看次数17000+ 分享嘉宾 陈志轩: Dubbo开源现状和2.7规划 康彬: 乐信集团的微服务化之路 林佳梁: Sentinel——企业用户的全方位流量哨兵

    更多

  • Sentinel 为 Dubbo 服务保驾护航

    Friday, July 27, 2018 在 生态集成

    在复杂的生产环境下可能部署着成千上万的 Dubbo 服务实例,流量持续不断地进入,服务之间进行相互调用。但是分布式系统中可能会因流量激增、系统负载过高、网络延迟等一系列问题,导致某些服务不可用,如果不进行相应的控制可能导致级联故障,影响服务的可用性,因此如何对流量进行合理的控制,成为保障服务稳定性的关键。 Sentinel 是阿里中间件团队开源的,面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。 …

    更多

  • Dubbo 2.7.x repackage 后的兼容实现方案

    Sunday, July 22, 2018 在 功能演示

    Dubbo至加入Apache孵化器以来,一个很强的诉求就是需要rename groupId和package name,这两项工作在项目毕业前需要完成。其中rename package相对来说复杂一些,除了要修改所有类的包名为org.apache.dubbo外,更多的是需要考虑如何老版本的兼容性。 常见的兼容性包括但不限于以下几种情况: 用户API 编程API Spring注解 扩展SPI 扩展Filter 2.7.x里就是通过增加了一个新的模块dubbo-compatible来解决以上兼容性问 …

    更多

  • 使用Pinpoint做分布式跟踪

    Thursday, July 12, 2018 在 生态集成

    在使用Dubbo进行服务化或者整合应用后,假设某个服务后台日志显示有异常,这个服务又被多个应用调用的情况下,我们通常很难判断是哪个应用调用的,问题的起因是什么,因此我们需要一套分布式跟踪系统来快速定位问题,Pinpoint可以帮助我们快速定位问题(当然,解决方案也不止这一种)。 什么是Pinpoint 摘自Pinpoint学习笔记 Pinpoint是一个开源的 APM (Application Performance Management/应用性能管理)工具,用于基于java的大规模分布式系统。 …

    更多