SpringBoot整合Dubbo

SpringBoot整合Dubbo

SpringBoot整合Dubbo

Dubbo是Alibaba开发的一款分布式服务治理框架。

  优点:
            1、表现层和服务层进行了分离,加入一个注册中心进行了解耦。表现层不会直接去调用服务层,而是通过服务发现的方式进行调用。
            2、因为两层的解耦,服务层重启后,表现层无需改动。
 
相关的概念:
        集群:将一个服务部署到N台机器上,这就是当前服务的集群
        分布式:将一个工程,按照相关的业务拆分成多个工程,部署在不同的服务器上
        分布式集群:首先根据业务进行分布式开发,然后根据请求量,对不同的业务进行集群处理
 
        负载均衡:均匀的将用户请求负载给后台服务集群
 

SpringBoot整合Dubbo

Dubbo的原理

SpringBoot整合Dubbo

 SpringBoot整合Dubbo

整合服务提供者

1.引入Dubbo依赖

<!-- dubbo和springboot的整合依赖 -->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>

2.配置application.yml

dubbo:
application:
name: class_service
registry:
address: zookeeper://192.168.59.131:2181
protocol:
port: 20881

3.给提供服务的实现类上添加@Service注解(Dubbo包下的@Service注解)

@Service
public class StuServiceImpl implements IStuService {

@Autowired
private StuMapper stuMapper;
}

4.启动类上配置包的扫描

@SpringBootApplication(scanBasePackages = "com.qq")
@MapperScan("com.qq.dao")
@DubboComponentScan("com.qq.serviceimpl")
public class StuServiceApplication {

public static void main(String[] args) {
SpringApplication.run(StuServiceApplication.class, args);
}
}

整合服务的消费者
1.添加依赖
2.配置application.yml
3.注解(Dubbo包下的@Reference注解)
@Controller
@RequestMapping("/stu")
public class StuController {

@Reference
private IStuService stuService;

@Reference
private IClassService classService;

@RequestMapping("/list")
public String list(ModelMap map){
//远程调用服务的提供者
List<Student> studentList = stuService.queryAll();
map.put("studentList",studentList);
return "stulist";
}