这段时间学习阿里的分布式 dubbo, 现总结下学习的东西
第一: 先下载zookeeper,如果在自己电脑使用的话,直接解压到一个文件夹里
然后需要配置zookeeper的环境,这里就不给大家说了,大家去搜一下就行
第二: 下载dubbo-admin的war包,需要注意的是, 此war包需要在jdk1.7运行,
在1.8会报错,所以 如果是1.8的,请先修改下运行环境哦!
jdk1.7下载地址:http://download.youkuaiyun.com/detail/qq_35357001/9791548
dubbo-admin。war下载地址:http://download.youkuaiyun.com/detail/qq_35357001/9797847#comment
下载完以后,放到tomcat里面运行解压, 登录后会出现身份验证登录窗口。在WEB-INF目录下,查看dubbo.properties文件,可看到用户名密码配置以及zookeeper注册地址信息
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
使用root/root登陆。
登录之前 一定要进入到zookeeper所在的文件里, 进入bin文件夹,打开cmd 然后输入zkServer.cmd,运行zookeeper,不然 打不开网页的哦
这里还没有应用提供者
现在开始开发一个demo用来创建一个提供者
首先 创建一个maven项目
创建好以后,先添加架包
pom.xml中的配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>albb</groupId>
<artifactId>dubbo-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.21.0-GA</version>
</dependency>
<dependency>
<groupId>org.jboss.netty</groupId>
<artifactId>netty</artifactId>
<version>3.2.5.Final</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
</dependencies>
<build />
</project>
然后创建提供服务者的接口
package dubbo.demo;
/**
* @Description:提供服务者的接口
*
* @author ZZK
* @ date 2017��3��29��
* title DemoService
*/
public interface DemoService {
String sayHello(String name);
}
然后编辑提供者接口实现类
/**
*
*/
package dubbo.demo.provider;
import org.springframework.stereotype.Service;
import dubbo.demo.DemoService;
/**
* @Description:提供者接口实现类
*
* @author ZZK
* @ date 2017��3��29��
* title DemoServiceImpl
*/
@Service("demoService")
public class DemoServiceImpl implements DemoService {
public String sayHello(String name) {
return "hello"+name;
}
}
这些写完后,需要配置spring了, 创建的springconfig.xml的文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="hello-consumer" />
<!-- 使用multicast广播注册中心暴露服务地址 -->
<!-- <dubbo:registry address="multicast://224.5.6.7:1236" /> -->
<!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="dubbo.demo.DemoService" ref="demoService" />
<!-- 和本地bean一样实现服务 -->
<bean id="demoService" class="com.dubbos.service.DemoServiceImpl" />
</beans>
这些都配置好以后;
就可以启动了,可以选着用web.xml 也可以用main方法启动, 我是用main方法启动
代码如下
/**
*
*/
package dubbo.demo;
import java.io.IOException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @Description:
*
* @author ZZK
* @ date 2017��3��29��
* title Provider
*/
public class Provider {
public static void main(String[] args) throws IOException {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"springConfig.xml"});
context.start();
System.in.read(); // 为保证服务一直开启,利用输入流的阻塞来模拟
}
}
点击运行后,刷新页面,就可以看到我们想要信息了
这就完成了。