欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Dubbo初体验

时间:2023-04-22
Dubbo初体验

Apache Dubbo 是一款高性能、轻量级的开源服务框架。提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。 一、Dubbo如何实现远程通信?


服务消费者去注册中心订阅到服务提供者的信息。然后通过dubbo进行远程调用。

二、demo 1、创建maven项目,命名为my-dubbo-demo 2、创建my-dubbo-demo的module,类型为maven 命名my-service-interfaces创建接口DeviceService
3、创建my-dubbo-demo的module,类型为maven 命名device-service-providerpom.xml

<?xml version="1.0" encoding="UTF-8"?> my-dubbo-demo com.hao 1.0-SNAPSHOT 4.0.0 device-service-provider org.slf4j slf4j-api 1.8.0-alpha2 org.apache.dubbo dubbo 2.7.3 org.apache.curator curator-framework 4.1.0 org.apache.curator curator-client 4.1.0 org.apache.curator curator-recipes 4.1.0 org.apache.zookeeper zookeeper 3.4.13 com.hao my-service-interfaces 1.0-SNAPSHOT compile

编写具体的提供服务的实现类

编写bean配置文件,将dubbo和spring ioc整合,把服务提供到dubbo中.provider.xml

<?xml version="1.0" encoding="UTF-8"?>

启动ioc容器,关联bean配置文件,provider.java

package com.hao.device.service.impl;import org.springframework.context.support.ClassPathXmlApplicationContext;import java.io.IOException;public class Provider { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"provider.xml"}); context.start(); System.out.println("服务已注册!"); try { // 按任意键退出 System.in.read(); } catch (IOException e) { e.printStackTrace(); } }}

4、创建my-dubbo-demo的module,类型为maven 命名device-service-consumerpom.xml

<?xml version="1.0" encoding="UTF-8"?> my-dubbo-demo com.hao 1.0-SNAPSHOT 4.0.0 device-service-consumer my-service-interfaces com.hao 1.0-SNAPSHOT org.apache.dubbo dubbo 2.7.3 org.apache.curator curator-framework 4.1.0 org.apache.curator curator-client 4.1.0 org.apache.curator curator-recipes 4.1.0 org.apache.zookeeper zookeeper 3.4.13

编写bean配置文件,将dubbo和spring ioc整合,把服务提供到dubbo中.consumer.xml

<?xml version="1.0" encoding="UTF-8"?>

启动ioc容器,关联bean配置文件 Consumer.java

package com.hao.device.consumer;import com.hao.service.api.device.DeviceService;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Consumer { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"consumer.xml"}); context.start(); DeviceService deviceService = (DeviceService) context.getBean("deviceService"); String result = deviceService.getDeviceNameByID(1001); System.out.println(result); }}

三、服务代理过程

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。