Springboot整合Dubbo

一、环境的安装

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);
	}

}

 查看结果

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值