1.新建Maven Project, 里面只有接口(dubbo-service)

  1.1 为什么这么做?

RPC框架,不希望Consumer知道具体实现.如果实现类和接口在同一个项目中,Consumer依赖这个项目时,就会知道实现类具体实现.

2.新建Maven Project, 写接口的实现类(dubbo-service-impl)

3.在duboo-service-impl中配置pom.xml

  3.1 依赖接口

  3.2 依赖dubbo,去掉老版本spring

  3.3 依赖新版本spring

  3.4 依赖zookeeper客户端工具zkClient

<dependencies>

<dependency>

<groupId>com.bjsxt</groupId>

<artifactId>dubbo-service</artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency>

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>dubbo</artifactId>

<version>2.5.3</version>

<exclusions>

<exclusion>

<artifactId>spring</artifactId>

<groupId>org.springframework</groupId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>4.1.6.RELEASE</version>

</dependency>

<!-- 访问zookeeper的客户端jar -->

<dependency>

<groupId>com.101tec</groupId>

<artifactId>zkclient</artifactId>

<version>0.10</version>

</dependency>

</dependencies>

4.新建实现类,并实现接口方法.

5.新建配置文件applicationContext-dubbo.xml,并配置

  5.1 <dubbo:application/> 给provider起名,在monitor或管理工具中区别是哪个provider

  5.2 <dubbo:registry/> 配置注册中心

    5.2.1 address:注册中心的ip和端口

    5.2.2 protocol使用哪种注册中心

  5.3 <dubbo:protocol/> 配置协议

    5.3.1 name 使用什么协议

    5.3.2 port: consumer invoke provider时的端口号

  5.4 <dubbo:service/> 注册接口

    5.4.1 ref 引用接口实现类<bean>的id值

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

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://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

<!-- 给当前Provider自定义个名字 -->

<dubbo:application name="dubbo-service"/>

<!-- 配置注册中心  -->

<dubbo:registry address="192.168.139.130:2181" protocol="zookeeper"></dubbo:registry>

<!-- 配置端口 -->

<dubbo:protocol name="dubbo" port="20888"></dubbo:protocol>

<!-- 注册功能 -->

<dubbo:service interface="com.bjsxt.service.DemoService" ref="demoServiceImpl"></dubbo:service>

<bean id="demoServiceImpl" class="com.bjsxt.service.impl.DemoServiceImpl"></bean>

</beans>

6.启动容器

  6.1 通过spring方式启动

  6.1.1 applicationContext-dubbo.xml位置没有要求

ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext-dubbo.xml");

ac.start();

System.out.println("启动成功");

System.in.read();

  6.2 使用dubbo提供的方式启动(推荐使用这种方式)

    6.2.1 要求applicationContext-dubbo.xml必须放入类路径下/META-INF/spring/*.xml

Main.main(args);

RPC服务框架dubbo(四):Dubbo中Provider搭建的更多相关文章

  1. RPC服务框架dubbo(一):简介和原理解析

    前置概念 在学习dubbo前,需要先了解SOA和RPC这两个概念. SOA 1.英文名称(Service Oriented Ambiguity) 2.中文名称:面向服务架构 2.1 有一个专门提供服务 ...

  2. 十分钟搭建微服务框架(SpringBoot +Dubbo+Docker+Jenkins源码)

    本文将以原理+实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统. 这套微服务框架能干啥? 这套系统搭建完之后,那可就厉害了: 微服务架构 你的整个应用程 ...

  3. 基于netty轻量的高性能分布式RPC服务框架forest<上篇>

    工作几年,用过不不少RPC框架,也算是读过一些RPC源码.之前也撸过几次RPC框架,但是不断的被自己否定,最近终于又撸了一个,希望能够不断迭代出自己喜欢的样子. 顺便也记录一下撸RPC的过程,一来作为 ...

  4. RSF 分布式 RPC 服务框架的分层设计

    RSF 是个什么东西? 一个高可用.高性能.轻量级的分布式服务框架.支持容灾.负载均衡.集群.一个典型的应用场景是,将同一个服务部署在多个Server上提供 request.response 消息通知 ...

  5. 基于netty轻量的高性能分布式RPC服务框架forest<下篇>

    基于netty轻量的高性能分布式RPC服务框架forest<上篇> 文章已经简单介绍了forest的快速入门,本文旨在介绍forest用户指南. 基本介绍 Forest是一套基于java开 ...

  6. Thrift 个人实战--Thrift RPC服务框架日志的优化

    前言: Thrift作为Facebook开源的RPC框架, 通过IDL中间语言, 并借助代码生成引擎生成各种主流语言的rpc框架服务端/客户端代码. 不过Thrift的实现, 简单使用离实际生产环境还 ...

  7. RPC服务框架探索之Thrift

    前言架构服务化后,需要实现一套方便调用各服务的框架,现在开源如日中天,优先会寻找开源实现,如果没有合适自家公司业务的,才会考虑从零开发,尤其是一切以KPI为准绳的公司,谁会跟钱过不去?N个月之前,公司 ...

  8. 基于开源Dubbo分布式RPC服务框架的部署整合

    一.前言 Dubbo 作为SOA服务化治理方案的核心框架,用于提高业务逻辑的复用.整合.集中管理,具有极高的可靠性(HA)和伸缩性,被应用于阿里巴巴各成员站点,同时在包括JD.当当在内的众多互联网项目 ...

  9. 【Rpc】基于开源Dubbo分布式RPC服务框架的部署整合

    一.前言 Dubbo 作为SOA服务化治理方案的核心框架,用于提高业务逻辑的复用.整合.集中管理,具有极高的可靠性(HA)和伸缩性,被应用于阿里巴巴各成员站点,同时在包括JD.当当在内的众多互联网项目 ...

随机推荐

  1. Linux_Windows7使用VMare安装Centos6.5并使用Xshell连接Centos

      本文章主要是记录虚拟机安装Centos,并在windows使用xshell执行命令的过程,供自己和需要之人学习和使用.    难点主要在于windows和centos网络的设置,实现window连 ...

  2. Spark Client和Cluster两种运行模式的工作流程

    1.client mode: In client mode, the driver is launched in the same process as the client that submits ...

  3. trident介绍

    (一)理论基础 很多其它理论以后再补充,或者參考书籍 1.trident是什么? Trident is a high-level abstraction for doing realtime comp ...

  4. DGN格式转化为shp格式 【转】

    其实本来,我就是需要把一个autocad的dwg/dgn格式的东西导入到google earth里面:但是首先我对dwg/dgn格式的东西根本就不熟:其次我拿到的dwg/dgn格式文件是用的HK80 ...

  5. ScaleIO 1.2 基础

    The ScaleIO virtual SAN consists of 3 software components =================== Meta Data Manager (MDM ...

  6. Glide Picasso Fresco UIL 图片框架 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  7. DNS named.conf文件详解

    配置文件: /etc/named.conf /在NAMED.CONF         配置文件中使用//和/* */来进行注释, options { /*OPTIONS选项用来定义一些影响整个DNS服 ...

  8. NPOI导出Excel时出现错误“Maximum column number is 255”

    此错误并不是NPOI的问题,而是Excel的问题,原因是Excel的最大列255,所以导出的列超过255时就会出现此问题 但Excel2007以上并没有此问题,因为2007以上的列已经增加到16384 ...

  9. Linux使用sar进行性能分析

    转:https://blog.csdn.net/xusensen/article/details/54606401#sar%E7%AE%80%E4%BB%8B Linux使用sar进行性能分析 Lin ...

  10. 更新后android studio 2.0 构建gradle卡在Refreshing Gradle Project 解决办法

    首先打开android studio项目 找到项目目录gradle\wrapper\gradle-wrapper.properties这个文件 你会看到 #Wed Apr 10 15:27:10 PD ...