这篇文章主要介绍了Dubbo怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
依赖:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--接口定义-->
<dependency>
<groupId>com.example</groupId>
<artifactId>api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.3</version>
</dependency>
<!--zookeeper 依赖-->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
服务提供方配置
package com.example.order.service;
import com.example.api.Order;
import com.example.api.OrderService;
import org.apache.dubbo.config.annotation.Service;
import java.util.Date;
@Service
public class OrderServiceImpl implements OrderService {
@Override
public Order getOrder() {
Order order = new Order();
order.setId(1L);
order.setOrderName("xxx");
order.setCreateTime(new Date());
return order;
}
}
application.yml
server:
port: 4059
tomcat:
uri-encoding: UTF-8
servlet:
context-path: /order
# session:
# timeout: 300s
dubbo:
application:
###########注册到注册中心的名称############
name: ordder
###########采用协议和端口号################
protocol:
###########采用dubbo协议####################
name: dubbo
###########发布dubbo端口号为40591###########
port: 40591
registry:
###########注册中心地址#####################
address: zookeeper://192.168.0.18:2181
scan:
############实现类扫包范围###################
base-packages: com.example.order.service
spring:
output:
ansi:
enabled: always
服务消费者
package com.example.user.controller;
import com.example.api.OrderService;
import org.apache.dubbo.config.annotation.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@Reference
private OrderService orderService;
@RequestMapping("/order")
public Object getUser() {
return this.orderService.getOrder();
}
}
application.yml
server:
port: 4058
tomcat:
uri-encoding: UTF-8
servlet:
context-path: /user
# session:
# timeout: 300s
dubbo:
application:
##### 注册服务的名称
name: user
##### 注册中心地址
registry:
address: zookeeper://192.168.0.18:2181
##### 调用服务超时时间
consumer:
timeout: 5000
spring:
output:
ansi:
enabled: always
注意项目启用要使用 @EnableDubbo
接口注册要使用: Service
接口引用要使用:Reference
@EnableDubbo
org.apache.dubbo.config.annotation.Service
org.apache.dubbo.config.annotation.Reference
@Configuration
@EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.simple.annotation.impl")
@PropertySource("classpath:/spring/dubbo-provider.properties")
static public class ProviderConfiguration {
}
@Configuration
@EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.simple.annotation.action")
@PropertySource("classpath:/spring/dubbo-consumer.properties")
@ComponentScan(value = {"org.apache.dubbo.samples.simple.annotation.action"})
static public class ConsumerConfiguration {
}
感谢你能够认真阅读完这篇文章,希望小编分享的“Dubbo怎么用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/2552286/blog/3086430