Spring Cloud Alibaba Dubbo

Spring Cloud Alibaba Dubbo

为什么什么么做/h2>

为什么/h2>
  1. 单体应用
    单体服务经过长期的迭代更新,逐渐走向代码臃肿、高耦合,这显然与我们软件开发设计理念背道而驰,从而难以维护~
    市场需求也在逐渐要求服务高并发、高性能、高可用,在这样的场景下,单体服务宕机重启时间长、访问过慢的问题一一暴露!

  2. 分布式应用系统
    分布式开发,将服务拆分,是建立在 络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。

  3. 以Spring Cloud为代表所支持的Restful 协议,优势在于能够穿透防火墙,使用方便,语言无关,基本上可以使用各种开发语言实现的系统,都可以接受Restful 的请求。但性能和带宽占用上有劣势。

所以,对微服务的实现,基本是确定一个组织边界,在该边界内,使用RPC; 边界外,使用Restful。这个边界,可以是业务、部门,甚至是全公司。

做到对业务代码无侵入,无感知;引入 JAR 包则微服务间调用使用 Dubbo,去掉 JAR 包则使用默认的 RESTful;

2. 部署Nacos

既然已经将 Dubbo 集成进了 Spring Cloud Alibaba,那么理所当然的我们的注册中心也不再采用 Zookeeper 方案而是转为 Nacos 方案了
部署 Nacos

实现基于 Feign 的注册方案

Dubbo

Spring Cloud Alibaba

由于 Nacos、Dubbo、Spring Cloud Alibaba 都是阿里系产品,所以我们可以很容易的将 Dubbo 和 Http 服务注册到 Nacos 中。

服务消费者

服务消费者需要依赖 ,并直接使用 注解即可实现注入,可以不使用 Dubbo 提供的 注解

以上代码是一个典型的 Spring Cloud Feign 调用。我们只需要替换 Feign 的实现。产生 接口的 时,使用 Dubbo 产生的 Bean 替换默认的 Feign 产生的 RESTFul 调用的 Bean 即可,关键代码在 项目的 类中

消费者使用 RESTFul 调用

只需将 Dubbo 相关依赖排除即可

dependency>    groupId>com.funtlgroupId>    artifactId>spring-cloud-alibaba-dubbo-starterartifactId>    exclusions>exclusion>    groupId>com.funtl

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月12日
下一篇 2019年7月12日

相关推荐