概述
前言
本文使用Spring Boot + zookeeper 搭建Dubbo项目。
1.安装并配置zookeeper
下载地址:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.5.6/
下载后直接解压,如果里面是zoo_simple.cfg或者其他任何的名字,将其改为zoo.cfg
修改里面的一些配置,其他保持默认即可
dataDir=D:softwarezookeeperdatazookeeper
dataLogDir=D:softwarezookeeperdatazookeeper-logs
进入bin目录下,启动zkServer.cmd,出现以下情况就算启动成功
PS:zookeeper内部使用了jetty,会占用8080端口,所以启动时要确保8080端口没被占用,否则会报端口占用异常
2.创建项目
使用idea创建Spring boot的父子项目
dubbo-api:用来放共同使用的接口
dubbo-customer:服务消费者
dubbo-provider:服务提供者
引入zookeeper和dubbo的相关依赖
<!-- 引入zookeeper的依赖 -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<!-- dubbo依赖 -->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
3.实现dubbo-api
目录结构为:
HelloService.java
public interface HelloService {
String hello();
String getNameByInput(String input);
}
4.实现dubbo-provider
目录结构为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SC6jEfBX-1575901545066)(C:%5CUsers%5Cadmin%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20191209220324947.png)]
HelloServiceImpl.java
package com.snail.provider.service;
import com.alibaba.dubbo.config.annotation.Service;
import com.snail.api.service.HelloService;
import org.springframework.stereotype.Component;
/**
* @author :spanking snail
* @date :2019/12/9 14:56
*/
@Service
@Component
public class HelloServiceImpl implements HelloService {
@Override
public String hello() {
return "hello dubbo,111";
}
@Override
public String getNameByInput(String input) {
return "input message: " + input;
}
}
applicatoin.yml
server:
port: 8081
spring:
dubbo:
application:
name: dubbo-provider
registry: zookeeper://127.0.0.1:2181
monitor:
protocol: registry
configcenter: zookeeper://127.0.0.1:2181
ProviderApplication.java
这里需要在启动类上加一个@EnableDubboConfiguration注解
服务提供者名字为:dubbo-provider,端口为8081,注册中心为zookeeper的默认端口2181
5.实现dubbo-customer
目录结构为:
HelloController.java
package com.snail.dubbocustomer.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.snail.api.service.HelloService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
/**
* @author :spanking snail
* @date :2019/12/9 15:09
*/
@RestController
public class HelloController {
@Reference
HelloService helloService;
@GetMapping("/hello")
public String hello(){
return helloService.hello();
}
@GetMapping("/hello/{input}")
public String getNameByInput(@PathVariable("input") String input) {
return helloService.getNameByInput(input);
}
}
applicaiton.yml
server:
port: 8082
spring:
dubbo:
application:
name: dubbo-customer
registry: zookeeper://127.0.0.1:2181
monitor:
protocol: registry
configcenter: zookeeper://127.0.0.1:2181
6.测试
在保证zookeeper启动的前提下,先启动provider,再启动customer。启动成功后进行调用
服务启动成功。
最后
以上就是现实彩虹为你收集整理的Springboot+dubbo+zookeepr构建项目的全部内容,希望文章能够帮你解决Springboot+dubbo+zookeepr构建项目所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复