一、环境的安装
1、zookeeper环境搭建:
(1).官网下载zookeeper后得到压缩文件,解压后打开解压文件,进入该目录;
(2).进入zookeeper-3.4.11\conf 将里面的zoo_sample.cfg重新复制一份,并改名为zoo.cfg
并且我们打开该文件,可以看见zookeeper的默认端口号为2181
(3).进入bin目录,执行zkServer.cmd zkCli.cmd 启动zookeeper服务
2、Dubbo控制台admin和监控中心的环境搭建
(1)下载dubbo相关服务
(2)进入\incubator-dubbo-ops-master\dubbo-admin\src\main\resources,查看application.properties,发现默认端口号为7001
server.port=7001 spring.velocity.cache=false spring.velocity.charset=UTF-8 spring.velocity.layout-url=/templates/default.vm spring.messages.fallback-to-system-locale=false spring.messages.basename=i18n/message spring.root.password=root spring.guest.password=guest
(3)进入incubator-dubbo-ops-master\dubbo-admin 使用mvn package将项目打包
获得jar 包
通过 java -jar命令运行jar包即可
只会在网页通过端口号7001即可访问
默认账号和密码都为root
3、监控中心的搭建
(1)进入dubbo-monitor-simple\src\main\resources\conf目录下打开dubbo.propertie文件
发现默认端口号为8080
(2)dubbo-monitor-simple进入该目录通过 mvn package将其打包
(3)进入打包后的target目录会看到压缩文件(dubbo-monitor-simple-2.0.0-assembly.tar.gz),将其进行解压,然后进入target/dubbo-monitor-simple-2.0.0/assembly.bin/目录执行 ./start.sh start 启动我们的监控中心
然后http+ip+8089来访问我们的监控中心
二、项目创建
1、创建消费者与提供者的公有对象与接口,将其单独创建一个项目
此处将该项目打包到仓库
2、创建提供者项目
在pom中分别导入dubbo依赖,和之前创建的项目
<dependency> <groupId>org.example</groupId> <artifactId>gmall-interface</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>0.2.0</version> <exclusions> <exclusion> <artifactId>spring</artifactId> <groupId>org.springframework</groupId> </exclusion> </exclusions> </dependency>
配置application.properties配置文件
#指定当前应用姓名 dubbo.application.name=boot-user-service-provider #指定注册中心位置 dubbo.registry.address=127.0.0.1:2181 dubbo.registry.protocol=zookeeper #指定通信协议和端口号 dubbo.protocol.name=dubbo dubbo.protocol.port=20880 #连接监控中心 dubbo.monitor.protocol=registry
在UserSe'rvice上添加注解@Service 注意:不是spring的注解,是dubbo的
将该服务暴漏
@Service public class UserServiceImpl implements UserService { public List<UserAddress> getUserAddressList(String userId) { System.out.println("UserServiceImpl.....old..."); // TODO Auto-generated method stub UserAddress address1 = new UserAddress(1, "北京市昌平区宏福科技园综合楼3层", "1", "李老师", "010-56253825", "Y"); UserAddress address2 = new UserAddress(2, "深圳市宝安区西部硅谷大厦B座3层(深圳分校)", "1", "王老师", "010-56253825", "N"); /*try { Thread.sleep(4000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ return Arrays.asList(address1,address2); } }
3、创建消费者项目
在pom中导入依赖
<dependency> <groupId>org.example</groupId> <artifactId>gmall-interface</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>0.2.0</version> </dependency>
配置spring配置文件
#因为之前监控中心调用了端口号8080,所以此处将服务器的端口号改为8081 server.port=8081 dubbo.application.name=boot-order-service-consumer dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.monitor.protocol=registry
控制层代码
@Controller public class OrderController { @Autowired private OrderService orderService; @ResponseBody @RequestMapping("/initOrder") public List<UserAddress> initOrder(@RequestParam("uid")String userId) { return orderService.initOrder(userId); } }
消费者实现类
@Service public class OrderServiceImpl implements OrderService { @Reference UserService userService; public List<UserAddress> initOrder(String userId) { //1.查询用户收获地址 List<UserAddress> userAddressList = userService.getUserAddressList(userId); return userAddressList; } }
运行
@EnableDubbo//调用注解 @SpringBootApplication public class BootOrderServiceConsumerApplication { public static void main(String[] args) { SpringApplication.run(BootOrderServiceConsumerApplication.class, args); } }
查看结果