探花项目合成开发文档
以下分二部份,第一javaspringboot 用 dubbo 第二部份 springcloud 使用dubbo
开发架构核心 ,我们采用Dubbo 来做远程通信,
解决Dubbo通信 ,我们需要借助注册发现。第一步安装注册发现,第二步安装doubbo 的管理端,这二是图形端的查看工具

以下是服务层提供的微服务代码,一般操作中,这个服务层service 消费端和服务端要包名,接口名,都要一样。所以不方便管理,所以在下面的优化中要单独抽出服务层
服务导需要依赖
<?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"> <parent> <artifactId>dubbo-demo</artifactId> <groupId>cn.itcast</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>user-provider</artifactId> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <!--dubbo的起步依赖--> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.8</version> </dependency> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-registry-nacos</artifactId> <version>2.7.8</version> </dependency> </dependencies> </project>
第二步修改配置,以下配置位于resources 目录,服务提供层的微服务
#tomcat 的端口
server: port: 18080 spring: datasource: url: jdbc:mysql://localhost:3306/dubbo-demo?useSSL=false username: root password: root driver-class-name: com.mysql.jdbc.Driver application: name: user-provider logging: level: cn.itcast: debug pattern: dateformat: HH:mm:ss:SSS #配置dubbo提供者 #dubbo协议和访问端口 dubbo: protocol: name: dubbo port: 20881 #注册中心的地址 registry: address: nacos://127.0.0.1:8848 #dubbo注解的包扫描 scan: base-packages: cn.itcast.user.service
爆露服务 将服务层的实现层@Service 改成 @DubboService 备注: 红色表示重要的地方
// 暴露 Dubbo 服务 @DubboService public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public String queryUsername(Long id) { return userMapper.findById(id).getUsername(); } }
服务消费层编写,重点是消费层也要有服务的包,要和提供层包名一样,不过这儿是接口,没有实现,也不需要实现,
然后在控制层调用的时候

配置的话简单很多。

依融包也

因为无论是消费者还是服务提供者都要写服务层,改动不便,所以我们将需要远程的服务接口单独拧成一个包,打包,让别微服务依赖,
将接口抽取为独立模块,并且把接口有关的域都放到这个模块中。
他的设计是单独将服务层对象的和服务层的接口单独拧出来,但是服务提供者的servic实现的方法仍然没有动
如果是多版本管理

第二部份说是springcloud 整合dubbos

浙公网安备 33010602011771号