赞
踩
https://download.csdn.net/download/weixin_43195884/87409766
1. 创建父工程。
2. 创建子工程api,存放各个模块之间依赖的service代码
3. 创建子工程服务端提供接口的项目
5. 创建子工程消费者项目client
5. 在client项目和provider项目中引入依赖
- <!--导入simpleapi依赖-->
- <dependency>
- <groupId>org.simpleapi</groupId>
- <artifactId>simple-api</artifactId>
- <version>1.0-SNAPSHOT</version>
- </dependency>
- <!-- springboot启动类的依赖 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter</artifactId>
- <version>2.2.1.RELEASE</version>
- </dependency>
- <!-- springboot启动类的依赖 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <version>2.2.1.RELEASE</version>
- </dependency>
- <!--dubbo依赖-->
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-dubbo</artifactId>
- <version>2.2.1.RELEASE</version>
- </dependency>
- <!--nacos依赖-->
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
- <version>2.1.1.RELEASE</version>
- </dependency>
6. 在provider项目中编写代码,首先,在主类中引入注解:@EnableDiscoveryClient
7. 在application.properties文件中配置dubbo的地址、nacos的注册地址
- #服务名称
- spring.application.name=provider
- #dubbo默认的扫描包路径
- dubbo.scan.base-packages=com.provider.service
- #配置dubbo的端口 可以是-1 代表从20880自选端口 这里是单机 无需配置
- dubbo.protocol.port=20880
- #配置dubbo的名称
- dubbo.protocol.name=dubbo
- #设置nacos的注册地址
- spring.cloud.nacos.discovery.server-addr=localhost:8848
8. 在provider项目中编写serviceipl实现类,实现代码,注意,此处需要使用dubbo的service注解
- @Service
- public class OrderServiceImpl implements OrderService {
- @Override
- public String getOrderStatus() {
- return "订单已完成";
- }
- }
9. 打开client消费者项目,在主类上增加注解@enablediscoveryclient
10. 在cilent项目中配置服务名称、nacos的注册地址
- #服务名称
- spring.application.name=client
- #设置nacos的注册地址
- spring.cloud.nacos.discovery.server-addr=localhost:8848
11. 编写controller代码,注意此处需要使用dubbo的reference注解
- @RestController
- public class OrderController {
-
- //使用dubbo注解 注入远程调用的接口
- @Reference
- OrderService orderService;
-
- @RequestMapping("getOrderInfo")
- public String getOrderInfo(){
- return orderService.getOrderStatus();
- }
-
- @RequestMapping("getOrderInfo1")
- public String getOrderInfo1(){
- return "success";
- }
- }
12. 启动本地的nacos服务、启动provider、client项目,nacos使用可参考:
微服务入门篇(二),万字长文带你实操作SpringCloudAlibaba微服务组件_只为code醉的博客-CSDN博客
Nacos启动:打开黑窗口,进入目录:D:\nacos\nacos\bin
输入命令:startup.cmd -m standalone
13. 浏览器访问controller接口,返回以下信息:
1. 此处还是使用上面的项目,引入dubbo和zookeeper的依赖:
- <dependency>
- <groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-spring-boot-starter</artifactId>
- <version>2.7.3</version>
- </dependency>
- <dependency>
- <groupId>com.github.sgroschupf</groupId>
- <artifactId>zkclient</artifactId>
- <version>0.1</version>
- </dependency>
-
- <!-- 引入zookeeper -->
- <dependency>
- <groupId>org.apache.curator</groupId>
- <artifactId>curator-framework</artifactId>
- <version>2.12.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.curator</groupId>
- <artifactId>curator-recipes</artifactId>
- <version>2.12.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.zookeeper</groupId>
- <artifactId>zookeeper</artifactId>
- <version>3.4.14</version>
- <!--排除这个slf4j-log4j12 -->
- <exclusions>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
2. 在application.properties文件中配置以下信息:
- #服务名称
- spring.application.name=provider
- #dubbo默认的扫描包路径
- dubbo.scan.base-packages=com.provider.service
- #配置dubbo的端口 可以是-1 代表从20880自选端口 这里是单机 无需配置
- dubbo.protocol.port=20880
- #配置dubbo的名称
- dubbo.protocol.name=dubbo
- ##设置nacos的注册地址
- #spring.cloud.nacos.discovery.server-addr=localhost:8848
-
- #将服务注册到zookeeper服务器上
- dubbo.registry.address=zookeeper://192.168.56.10:2181
-
3. 在服务提供项目中,编写service类,注意,此处的service注解是dubbo的
- import org.apache.dubbo.config.annotation.Service;
- import org.simpleapi.service.OrderService;
-
- @Service
- public class OrderServiceImpl implements OrderService {
- @Override
- public String getOrderStatus() {
- return "订单已完成";
- }
- }
-
4. 在消费方中同样导入上面的依赖,同时,调用service接口,注意,此处使用的reference注解是dubbo的
- import org.apache.dubbo.config.annotation.Reference;
- import org.simpleapi.service.OrderService;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- @RestController
- public class OrderController {
-
- //使用dubbo注解 注入远程调用的接口
- @Reference
- OrderService orderService;
-
- @RequestMapping("getOrderInfo")
- public String getOrderInfo(){
- return orderService.getOrderStatus();
- }
-
- @RequestMapping("getOrderInfo1")
- public String getOrderInfo1(){
- return "success";
- }
- }
-
5. 同样的在application.properties文件中也需要配置zookeeper的注册消息
- #服务名称
- spring.application.name=client
- ##设置nacos的注册地址
- #spring.cloud.nacos.discovery.server-addr=localhost:8848
- #将服务注册到zookeeper服务器上
- dubbo.registry.address=zookeeper://192.168.56.10:2181
6. 浏览器访问controller接口,返回以下信息:
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。