前提摘要
搭建zookeeper集群环境:https://blog.csdn.net/qq_37936542/article/details/107096985
▌
--- zk1 :192.168.0.211:2181
--- zk2 :192.168.0.212:2181
--- zk3 :192.168.0.213:2181
Springboot作为一款优秀的快速开发框架,集成dubbo也是挺简单的,但还是需要细心,细节决定成败
▌ 搭建两个springboot项目
dubbo_provider:服务提供者
dubboo_consumer:服务消费者
▌ 开发服务提供者 dubbo_provider
♦ ♦ 导入maven依赖
org.springframework.boot
spring-boot-starter-web
com.101tec
zkclient
0.10
org.apache.dubbo
dubbo-spring-boot-starter
2.7.3
org.apache.curator
curator-recipes
2.8.0
♦ ♦ 定义服务类接口
public interface ProviderService {
public String add();
public String del();
public String upd();
public String get();
}
♦ ♦ 定义服务类接口实现类
注意点 1:@Service注解不要用混了
注意点 2:需要加@Component注解
import org.apache.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;
import com.mote.service.ProviderService;
@Component
@Service
public class ProviderServiceImpl implements ProviderService {
@Override
public String add() {
System.out.println("添加服务被调用");
return "success";
}
@Override
public String del() {
System.out.println("删除服务被调用");
return "success";
}
@Override
public String upd() {
System.out.println("更新服务被调用");
return "success";
}
@Override
public String get() {
System.out.println("获取服务被调用");
return "success";
}
}
♦ ♦ yml配置
注意点 base-package:ProviderServiceImpl所在包
server:
port: 8090 # 定义项目访问端口
dubbo:
application:
name: service-provider # dubbo应用名称
scan:
base-packages: com.mote.service.impl # 扫描指定包,将使用@Service注解修饰的类发布为服务
protocol:
port: 20880 # dubbo协议端口,默认20880
name: dubbo # dubbo协议名称
registry: # zookeeper集群注册中心地址
address: zookeeper://192.168.0.211:2181?backup=192.168.0.212:2181,192.168.0.213:2181
config-center:
timeout: 10000 # 连接注册中心的超时时间:单位是毫秒
♦ ♦ 启动类
@SpringBootApplication
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
▌ 开发服务消费者 dubbo_consumer
♦ ♦ 导入maven依赖
org.springframework.boot
spring-boot-starter-web
com.101tec
zkclient
0.10
org.apache.dubbo
dubbo-spring-boot-starter
2.7.3
org.apache.curator
curator-recipes
2.8.0
♦ ♦ 定义服务类接口(直接拷贝dubbo_provider项目中的ProviderService)
public interface ProviderService {
public String add();
public String del();
public String upd();
public String get();
}
♦ ♦ 定义消费者
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.mote.service.ProviderService;
@RestController
@RequestMapping("/comsumer")
public class ConsumerController {
@Reference // 注入服务提供方的服务
public ProviderService service;
@GetMapping("/get")
public String get() {
return service.get();
}
}
♦ ♦ yml配置
server:
port: 8080
dubbo:
application:
name: service-consumer # dubbo 应用名称
registry: # zookeeper 集群注册中心地址
address: zookeeper://192.168.0.211:2181?backup=192.168.0.212:2181,192.168.0.213:2181
♦ ♦ 启动类
@SpringBootApplication
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}
▌ 到这里,初步的集成结束,下面测试一把
先启动provider项目,然后启动consumer项目,访问ip://8080/comsumer/get
下一篇:介绍dubbo各种服务场景及相关配置