dubbo简单环境搭建

简单环境搭建

搭建工具

jdk1.8+idea+maven+spring

构建多模块

dubbo_par 父模块

  父模块中pom.xml引入dubbo坐标

<dependency>    <groupId>com.alibaba</groupId>    <artifactId>dubbo</artifactId>    <version>2.5.6</version></dependency>

dubbo_api 服务公共接口

  实体类 简单模拟数据库

public class User implements Serializable {
    private static final long serialVersionUID = -6267484068304517004L;

    private Integer userId;
    private String uname;
} 

  定义服务接口

public interface IUserService {  //通过id 查询用户
    public User queryUserById(Integer userId);
}

dubbo_provider 服务提供方

  pom.xml中引入公共服务接口坐标

 <!--引入公共接口坐标-->
 <dependency>
       <groupId>com.shsxt</groupId>
       <artifactId>dubbo_demo_api</artifactId>
       <version>1.0-SNAPSHOT</version>
 </dependency>

  

  配置provider.xml

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://code.alibabatech.com/schema/dubbo
       http://code.alibabatech.com/schema/dubbo/dubbo.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">
    <!--自动扫描-->
    <context:component-scan base-package="com.xpx.provider"></context:component-scan>

    <!--dubbo配置-->
    <!--配置名称-->
    <dubbo:application name="dubbo_provider"></dubbo:application>
    <!--multicast 注册中心 address="multicast://224.5.6.7:1234" 广播地址 接受广播来实现服务注册-->
    <dubbo:registry address="multicast://224.5.6.7:1234"></dubbo:registry>
    <!--配置协议 20880dubbo的默认端口-->
    <dubbo:protocol name="dubbo" port="20880"></dubbo:protocol>
    <!--配置注册服务-->
    <dubbo:service interface="com.xpx.api.service.IUserService" ref="userServiceImpl"></dubbo:service>
</beans>

  服务接口实现

@Service
public class UserServiceImpl implements IUserService {

    private Map<Integer,User> users ;

    public UserServiceImpl() {
        users = new HashMap<>();
        users.put(1,new User(1,"dubbo"));
    }

    @Override
    public User queryUserById(Integer userId) {
        return users.get(userId);
    }
}

  测试提供服务方

public class Publisher {
    public static void main(String args[]) throws IOException {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("provider.xml");
        context.start();
        System.in.read();
    }
}

dubbo_consumer 消费服务方

  pom.xml中引入公共服务接口坐标

 <!--引入公共接口坐标-->
 <dependency>
       <groupId>com.shsxt</groupId>
       <artifactId>dubbo_demo_api</artifactId>
       <version>1.0-SNAPSHOT</version>
 </dependency>

  配置consumer.xml

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://code.alibabatech.com/schema/dubbo
       http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!--dubbo应用名称-->
    <dubbo:application name="dubbo_consumer"></dubbo:application>
    <!--注册中心 address="multicast://224.5.6.7:1234" 广播地址 接受广播来实现服务注册-->
    <dubbo:registry address="multicast://224.5.6.7:1234"></dubbo:registry>
    <!--配置订阅的服务-->
    <dubbo:reference interface="com.xpx.api.service.IUserService" id="userService"></dubbo:reference>
    <bean class="com.xpx.consumer.controller.UserController" id="userController">
        <property name="userService" ref="userService"></property>
    </bean>
</beans>

  controller

public class UserController {
    private UserService userService;

//    没有配置自动扫描用set注入
    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    public User querUserById(Integer userId){
        return userService.queryUserById(userId);
    }
}

  测试

public class TestConsumer {
    public static void main(String args[]){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("consumer.xml");
        UserController userController = (UserController) applicationContext.getBean("userController");
        User user = userController.querUserById(1);
        System.out.println(user);
    }
}

  结果成功

User{id=1, uname=‘dubbo‘}

原文地址:https://www.cnblogs.com/xpx951201/p/10225253.html

时间: 2024-10-30 11:30:44

dubbo简单环境搭建的相关文章

Dubbo 简单环境搭建

本文旨在搭建dubbo 基础演示示例,并使用dubbo Admin进行管理. 一.dubbo-admin: 下载地址:https://github.com/apache/incubator-dubbo-ops 执行命令: cd incubator-dubbo-ops && mvn package 打包成功: [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ dubbo-registry-simple --- [INFO]

【2020-03-21】Dubbo本地环境搭建-实现服务注册和消费

前言 本周主题:加班工作.本周内忙于CRUD不能自拔,基本每天都是九点半下班,下周上线,明天还要加班推进进度.今天是休息日,于是重拾起了dubbo,打算近期深入了解一下其使用和原理.之所以说是重拾,是因为去年自学过一次,但那次主要是针对源码的流程,在实战上欠缺,且对其理解未深入到架构层次,只能说是基本理解.现在的我跟去年比起来,对技术的理解上有了一些提升,经验也更丰富,故本次目标是做深入研究,且看能从中吸收多少要义. 今天先记录一下dubbo本地服务的简易搭建流程. 一.环境准备 本次搭建用zo

Dubbo简介-环境搭建

一.简介: 1. 什么是RPC: RPC[Remote Procedure Call]是指远程调用过程,是一种进程间通信方式,它是一种技术的思想,而不是规范.它允许程序调用另一个地址空间(通常在共享网络的另一台服务器上)的过程或函数,而不是程序员显示编码这个远程调用的细节.即程序员无论是调用本地还是远程的函数,本质上编写的调用代码基本相同. RPC有两个核心:通讯.序列化. RPC框架有很多:dubbo.gRPC.Thrift.HSF(High Seep Service Framework) 2

dubbo分布式系统---环境搭建

分布式系统的特点:1.面向接口代理的高性能RPC调用:A服务调用B服务器的接口,直接调用即可.其中使用zookeeper注册中心进行关联)2.智能的负载均衡:服务器与服务器之间实现分流处理,解决并发问题.3.运行期间实现流量调度:灰度发布(例:在生产环境发布时,可先更新一部分服务器的代码,后稳定运行后,再更新另一部分服务器的代码) 下边整理了一下分布式架构的流程图,大致如下图:下边开始搭建dubbo服务:1.首先需要搭建注册中心,dubbo官方推荐使用zookeeper,这里搭建的也是zooke

GitLab+本地Nginx简单环境搭建

最近找工作,闲着逛github就看到gitlab这么个东西,说是比github功能多些.所以果断去官网看了看,然后在自己的虚拟机上简单搭建了一个. gitlab官网:https://about.gitlab.com/ 环境:centos6.9    nginx/1.14.0 我选择的是免费的那个,官网的安装步骤写的很明白,只要按照要求复制粘贴官网的命令就可以了.邮箱和域名可以不用管. 安装好之后服务是会启动.但是如果你的服务器上有进程占用了80端口(我的是因为自己的nginx占用),那么服务是启

dubbo开发环境搭建与tomcat集成、DEMO示例(最完整版本、带管理控制台、监控中心、zookeeper)

以windows为例,linux基本相同,开发环境一般linux,个人环境一般windows(如果不开额外vm的话). 示例以dubbo官方自带demo为例子,进行整合和稍加修改测试. 0.dubbox是dubbo的当当fork版本,特性上最主要是集成了REST.就核心功能而言,dubbo和大部分其他rpc框架比如spring cloud类似,由客户端.服务端.服务注册与发现中心.监控中心以及管理中心组成.如下: 1.安装zookeeper,从https://zookeeper.apache.o

vue + webpack + gulp 简单环境 搭建

一.物料准备 废话不多说,直接上 package.json { "name": "vwp", "version": "1.0.0", "description": "vue test", "main": "index.js", "dependencies": { "vue": "^1.0.26&qu

JavaEE Maven简单环境搭建

软件152 蒲双 一.下载 1.jdk1.8.zip(1.7以上为最佳): 2.eclipse-jee-mars-2.zip: 3.maven 3.3.9.zip: 4.maven仓库(.m2文件) 二.安装(解压) 1.选择一个工作盘,如 E:盘,建立目录 jee(这里根据自己的意愿建立目录,本人以建立 jee 为例: 2.将压缩包放到jee目录下,并解压,Jdk根目录为 E:\jee\jdk1.8:eclipse根目录为 E:\jee\eclipse,eclipse,工作目录为E:\jee\

Dubbo分布式环境搭建测试(依赖mybatis,spring,druid)

此文档针对初学者. 废话不多说,先上源码: http://git.oschina.net/alexgaoyh/Dubbo-parent http://git.oschina.net/alexgaoyh/Dubbo-parent/attach_files Maven项目,只需要注意下图中红色箭头标注的三个模块即可: Dubbo-api: API接口,被 Dubbo-test-provider(服务提供者),Dubbo-test-consumer(服务消费者)依赖: Dubbo-api 模块没什么多