专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java dubbo框架视频教程之分布式框架搭建

Java dubbo框架视频教程之分布式框架搭建

更新时间:2020-06-23 13:06:18 来源:动力节点 浏览1848次

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。以下是一个简单的dubbo架构图。

Java dubbo框架视频教程之分布式框架搭建

小编从刀耕火种的原始web开发时代一直走到现在,感慨良多。从单体应用,到mvc模型,再到使用webservice,企业服务总线,一直到dubbo,每一次理念的升级,都是带来开发工作的解放。互联网技术日新月异,活到老学到老是必须的。

Zookeeper搭建

从官网下载zookeeper作为服务注册中心。解压后进入conf目录,重命名zoo_simple.cfg为zoo.cfg.根据是windows还是linux其中zkServer.cmd或zkServer.sh。这样服务就启动起来了。注意clientPort=2181,客户端使用这个端口和zookeeper通信。现在假设zookeeper所在机器域名为zooregistry.com。后文将会用到。

dubbo monitor安装

下载

dubbo-monitor-simple-2.4.1-assembly.tar.gz解压。打开conf/dubbo.properties,启用配置

dubbo.registry.address=

zookeeper://zooregistry.com:2181。使用bin/start.bat或bin/start.sh其中dubbo monitor。monitor可以用来监控分布式系统的运行状态,并提供上线或下线服务等功能。

dubbo admin安装

下载dubbo-admin-2.5.8这个war包解压。修改WEB-INF/dubbo.properties。修改配置为

dubbo.registry.address=

zookeeper://zooregistry.com:2181.这里可以修改用户名和密码。将修改后的包放到tomcat/webapp/ROOT/目录并启动既可以。

dubbo admin可以简单理解dubbo admin的加强版,两者各有所长。这个步骤是非必须的,小编建议还是配置下。

Spring开发环境搭建

Api provider

以上配置的注册中心和监控中心后,就可以进行系统开发了。我们使用maven管理项目。

服务提供者和消费者需要一套接口,那么我们使用maven创建一个jar项目.例如我们在定义一个接口。

package io.kuaibao.provider.service;
import java.io.Serializable;
public interface ServerTimeService extends Serializable{
String getTime();
}

然后使用maven创建消费者web项目,和一个提供者jar项目。

Provider开发

定义提供者bean文件

applicationProvider20883.xml。以下只列出核心代码,有需求的话可以在github上下载源代码试用。

<!--提供方应用信息,用于计算依赖关系-->

<dubbo:application name="dubbo_provider3"/>

<!--使用zookeeper注册中心暴露服务地址-->

<dubbo:registry address="zookeeper://zooregistry:2181"/>

<!--用dubbo协议在20883端口暴露服务-->

<dubbo:protocol name="dubbo"port="20883"/>

<dubbo:monitor protocol="registry"/>

<!--声明需要暴露的服务接口-->

<dubbo:annotation package="io.kuaibao.provider.service"/>

实现服务:

package io.kuaibao.provider.service.impl;
import i.kuaibao.provider.service.ServerTimeService;
import java.text.SimpleDateFormat;
import java.util.Date;
 com.alibaba.dubbo.config.annotation.Service
public class TimeServiceImpl implements ServerTimeService{
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 Override
public String getTime(){
System.out.println("invoke");
return simpleDateFormat.format(new Date());
}
}

启动服务者:

public class Main{
public static void main(String[]args)throws IOException{
ClassPathXmlApplicationContext classPathXmlApplicationContext=new ClassPathXmlApplicationContext("classpath*:applicationProvider20883.xml");
System.in.read();
}
}

如果要启动多个服务提供者只需要修改<dubbo:protocol name="dubbo"port="20883"/>并执行即可。

Consumer开发

在spirngmvc.xml文件中进行一下配置:

<dubbo:application name="dubbo_consumer222"/>

<!--使用multicast广播注册中心暴露发现服务地址-->

<dubbo:registry address="zookeeper://zooregistry:2181"/>

<dubbo:annotation package="io.kuaibao.consumer.controller"/>

<dubbo:consumer timeout="30000"/>

<dubbo:monitor protocol="registry"/>

<!--自动扫描 Controller-->

<context:component-scan base-package="io.kuaibao.consumer.controller"/>

注意服务在什么地方使用,就将dubbo配置放在什么容器中。我们这里直接在controller中使用,所以讲dubbo放在mvc容器中。

此时我们可以在controller中使用 

com.alibaba.dubbo.config.annotation.Reference注解注入需要的service。

Java dubbo框架视频教程之分布式框架搭建

Java视频下载

Dubbo:http://www.bjpowernode.com/javavideo/129.html

以上就是动力节点java培训机构的小编针对“Java dubbo框架视频教程之分布式框架搭建”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>