Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。以下是一个简单的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.Servicepublic class TimeServiceImpl implements ServerTimeService{SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Overridepublic 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:http://www.bjpowernode.com/javavideo/129.html
以上就是天津卓众教育java培训机构的小编针对“Java dubbo框架视频教程之分布式框架搭建”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
Java视频教程