环境准备:
- 环境:windows
- 工具:zookeeper-3.4.6;dubbo-admin.war;tomcat8;
- zookeeper:
- 配置:\zookeeper-3.4.6\conf目录下zoo_sample.cfg文件修改为zoo.cfg
- 启动:\zookeeper-3.4.6\bin\zkServer.cmd;
- dubbo-admin:
- 配置:\dubbo-admin\WEB-INF目录下dubbo.properties
- dubbo.registry.address=zookeeper://127.0.0.1:2181
- dubbo.admin.root.password=root
- 账号默认admin密码root
- 启动:在tomcat服务器中启动dubbo-admin.war包)
代码操作:
maven依赖:ps(这里只放dubbo依赖,spring具体可以根据自己需求指定)
<!-- dubbo -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
provider: 代码: //这个接口可以定义为一个服务上传到maven私服,形成jar包供调用
public interface DemoService {
public String queryDemo();
}
//具体实现
public class DemoServiceImpl implements DemoService {
public String queryDemo() {
System.out.println("阿西吧,有人在钓我......");
return "一只被钓到的小鱼";
}
}
配置:
<bean id="writeDemoServiceImpl" class="cn.dayan.movies.server.impl.DemoServiceImpl">
</bean>
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<dubbo:application name="xixi_provider" />
<dubbo:protocol name="dubbo"/>
<!-- 开放接口实现类-->
<dubbo:service protocol="dubbo" interface="cn.dayan.movies.server.DemoService" ref="writeDemoServiceImpl"/>
consumer: 代码:
@ContextConfiguration(locations = { "classpath*:server-consumer.xml" })
public class BaseTest extends AbstractJUnit4SpringContextTests {
@Autowired
private DemoService demoService;
[@Test](https://my.oschina.net/azibug)
public void testquery() {
String obj = demoService.queryDemo();
System.out.println("捕获一只:" + obj);
}
}
配置:
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:consumer timeout="5000"/>
<!-- 声明需要暴露的服务接口 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<dubbo:reference id="demoService" interface="cn.dayan.movies.server.DemoService"/>
<dubbo:protocol name="dubbo"/>
<dubbo:application name="movies-test-client" />
启动服务:
代码:
public static void main(String[] args) throws InterruptedException {
System.out.println("==================开始启动监听服务");
final ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("server-provider.xml");
context.start();
System.out.println("==================加载spring配置文件成功");
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
try {
if (context != null) {
context.stop();
context.close();
}
} catch (Throwable e) {
e.printStackTrace();
}
synchronized (Bootstrap.class) {
running = false;
Bootstrap.class.notify();
}
}
});
System.out.println("==================启动监听服务成功");
synchronized (Bootstrap.class) {
while (running) {
try {
Bootstrap.class.wait();
} catch (Throwable e) {
}
}
}
System.out.println("==================监听服务已经关闭");
}
启动步骤: 1启动zookeeper
2启动测试服务
3查看监控服务
4调用接口测试