在Docker中运行Dubbo应用

本文介绍了如何将Dubbo应用容器化并部署到阿里云的容器服务上。通过创建服务提供者和服务调用方,利用zookeeper作为发现机制,详细阐述了从定义服务接口到构建Docker镜像的全过程,并最终成功在云上运行Dubbo应用。
摘要由CSDN通过智能技术生成

Dubbo概述

Dubbo是阿里开源的一个分布式服务框架,在国内粉丝很多。官网上的介绍是:

DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

Dubbo的文档很完整,网络上资源也很多,这里就不再重复了。本文做这样一个尝试,将一个Dubbo应用容器化,部署到阿里云的容器服务上。

极简Dubbo应用结构

在Dubbo世界里,服务调用方和服务提供方通过Dubbo的发现机制互相发现。一个最小的Dubbo应用包含如下三个服务:

服务提供者

服务调用方

发现机制(例如zookeeper)

zookeeper已经有Docker镜像了,下面我们就会用Spring Boot开发服务提供方Service Producer和服务调用方Service Consumer。

定义服务接口

创建一个Maven模块service-api,定义服务接口。

public interface Greetings {
String say(String name);
}

这个接口很简单,就是问好。

在pom.xml中引入对Dubbo的依赖:

<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
</dependency>
</dependencies>

我们用的是dubbo 2.5.3版本,读者如果愿意尝试更新的版本,可以自行升级。

服务提供方 Service Producer

创建一个Maven模块service-producer,提供服务接口的实现。

public class GreetingsImpl implements Greetings {
public String say(String name) {
return "Greetings from " + name;
}
}

为了能找到服务接口模块,需要在pom.xml中定义对service-api的依赖。

<dependencies>
...
<dependency>
<groupId>com.example</groupId>
<artifactId>dubbo-service-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

Dubbo通过spring xml配置文件的方式声明对zookeeper的访问。在resources目录下创建services.xml,其中最重要的内容是指定zookeeper的地址和端口,为了不把zookeeper的地址写死在配置文件中,我们采用环境变量来指明服务地址。这也是1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值