首先要搭建zookeeper环境并启动,可参照window下搭建zookeeper_半生归来仍少年的博客-CSDN博客
dubbo管理平台搭建:
下载:dubbo-admin-2.5.8.war-互联网文档类资源-CSDN下载
放到tomcat的webapp目录下,注意zookeeper的端口要对应(WEB-INFdubbp.application),启动tomcat访问,账号密码好像是 root/root 或者是guest/guest
1.新建项目dubboapi(接口服务)1.1.说明:该项目是存放调用的接口
项目结构大致如下
1.2.pom文件如下
4.0.0 org.springframework.boot spring-boot-starter-parent2.5.6 com.example dubboapi0.0.1-SNAPSHOT jar dubboapi Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starterorg.springframework.boot spring-boot-starter-testtest org.springframework.boot spring-boot-maven-plugin
1.3.baseService类如下
package com.example.dubboapi.service;
public interface baseService {
String test(String name);
String test();
}
2.新建项目dubboprovider(接口提供者)
2.1.说明:给消费者提供接口调用
项目目录大致如下
3.新建项目dubboconsumer(接口消费者)3.1.说明:调用接口提供者的接口
目录大致如下
4.在dubboapi(接口服务)项目将dubboprovider(接口提供者)和dubboconsumer(接口消费者)作为模块引入4.1.操作如下:
4.1.以上操作将 dubboprovider(接口提供者)和dubboconsumer(接口消费者)引入进来,此时目录结构大致如下:
5.配置dubboprovider(接口提供者)5.1.pom文件配置如下,注意一定要引入dubboapi(接口服务)
4.0.0 org.springframework.boot spring-boot-starter-parent2.5.6 com.example dubboprovider0.0.1-SNAPSHOT jar dubboprovider Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starterorg.springframework.boot spring-boot-starter-testtest com.example dubboapi0.0.1-SNAPSHOT compile com.alibaba.boot dubbo-spring-boot-starter0.2.0 org.springframework.boot spring-boot-maven-plugin
5.2.在service目录下新建UserServiceImpl并实现baseService接口,注意:是使用dubbo的@service注解
package com.example.dubboprovider.service;
import com.alibaba.dubbo.config.annotation.Service;
import com.example.dubboapi.service.baseService;
@Service
public class UserServiceImpl implements baseService {
@Override
public String test(String name) {
return name+">--<";
}
@Override
public String test() {
return "测试测试";
}
}
5.3.在启动类加上@EnableDubbo
package com.example.dubboprovider;
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableDubbo
@SpringBootApplication
public class DubboproviderApplication {
public static void main(String[] args) {
SpringApplication.run(DubboproviderApplication.class, args);
}
}
5.4.application.yml配置如下
dubbo:
application:
name: dubbo-provider
registry:
address: 127.0.0.1:2181
protocol: zookeeper
check: false
protocol:
name: dubbo
port: 22222
monitor:
protocol: register
consumer:
check: false
timeout: 3000
server:
port: 9998
5.5.启动启动类
在dubbo的管理平台能 能看到接口的信息
6.配置dubboconsumer(接口消费者)6.1.pom文件配置如下,注意一定要引入dubboapi(接口服务)
4.0.0 org.springframework.boot spring-boot-starter-parent2.5.6 com.example dubboconsumer0.0.1-SNAPSHOT jar dubboconsumer Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starterorg.springframework.boot spring-boot-starter-testtest com.example dubboapi0.0.1-SNAPSHOT compile com.alibaba.boot dubbo-spring-boot-starter0.2.0 org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-maven-plugin
6.2.编写service和controller代码
6.2.1.service层,注意这里的@Service是spring的注解了,@Reference注入的是分布式的远程服务的对象
public interface UserService {
String test(String name);
String test();
}
package com.example.dubboconsumer.service;
import com.alibaba.dubbo.config.annotation.Reference;
import com.example.dubboapi.service.baseService;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService{
@Reference
private baseService userService;
@Override
public String test(String name) {
return userService.test(name);
}
@Override
public String test() {
return userService.test();
}
}
6.2.2.controller层
package com.example.dubboconsumer.controller;
import com.example.dubboconsumer.service.UserService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
public class UserController {
@Resource
private UserService userService;
@RequestMapping("/test1")
public String test(){
return userService.test("测试测试测试测试");
}
@RequestMapping("/test2")
public String test1(){
return userService.test();
}
}
6.3.启动类加上@EnableDubbo
@EnableDubbo
@SpringBootApplication
public class DubboconsumerApplication {
public static void main(String[] args) {
SpringApplication.run(DubboconsumerApplication.class, args);
}
}
6.4.配置application.yml
dubbo:
application:
name: dubbo-consumer
registry:
address: 127.0.0.1:2181
protocol: zookeeper
check: false
monitor:
protocol: register
consumer:
check: false
timeout: 3000
server:
port: 9999
6.5.启动启动类
在dubbo的管理平台能 能看到接口的信息
6.6.浏览器访问127.0.0.1:9999/test1 和127.0.0.1:9999/test2
接口调用正常



