SpringBoot整合Dubbo

 

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

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

 

Dubbo的原理springboot

 SpringBoot整合Dubbo服务器

整合服务提供者app

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.启动类上配置包的扫描spring-boot

@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"; }
相关文章
相关标签/搜索