首先启动zookeeper

dubbo集群,使用两个dubbo,一个服务,一个调用,使用zookeeper管理

zeekeeper的功能:管理集群,保证集群成员的数据一致性和动作的协调

服务端:

  server.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:application name="server_first"></dubbo:application>
<!--协议,所使用服务的名称name="dubbo";提供服务的端口号port="20880"默认-->
<!--dubbo提供服务的端口-->
<dubbo:protocol name="dubbo" port="20880"></dubbo:protocol>
<!--指定注册中心:把服务注册到zookeeper中,要找到这个服务要到zookeeper中-->
<!--<dubbo:registry address="zookeeper://localhost:2181"/>或者如下,两种方式一样-->
<dubbo:registry address="zookeeper://localhost" port="2181"></dubbo:registry> <!--向外界提供的什么服务,如下-->
<bean class="service.FirstServiceImp" id="first"></bean>
<!--向外提供的服务-->
<dubbo:service interface="service.FirstService" ref="first"></dubbo:service>
<!--外界使用通过zookeeper找到ref="first"就可使用-->
</beans>

建立接口,要处理的内容

package service;

/**
* Created by MY on 2017/8/3.
*/
public interface FirstService {
int sum(int x,int y);
}

创建实现类,实现接口

package service;

/**
* Created by MY on 2017/8/3.
*/
public class FirstServiceImp implements FirstService{
@Override
public int sum(int x,int y){
System.out.println("sum()调用了");
return x+y;
}
}

创建启动server.xml文件的类

package test;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

/**
* Created by MY on 2017/8/3.
*/
public class DubboServer {
public static void main(String[] args) {
//查找配置文件,读取配置文件启动
ClassPathXmlApplicationContext cxt = new ClassPathXmlApplicationContext("server.xml"); try {
//不退出当前的进程
//输入后才退出
System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
} }

最后把服务端打包成jar包,在控制台将service下的FirstService.class打包成jar包

F:\IDEA doc\dubbo2\out\production\dubbo2>jar cvf a.jar service/FirstService.class

客户端

  除了添加响应的jar包,服务端打包的jar包也要添加进去

  client.cml配置

  创建DubboClient类,启动client.xml文件,调用服务端接口中的方法

package test;

import org.springframework.context.support.ClassPathXmlApplicationContext;
import service.FirstService; /**
* Created by MY on 2017/8/3.
*/
public class DubboClien {
public static void main(String[] args) {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("client.xml"); FirstService fs = (FirstService) ctx.getBean("fc");
int s=fs.sum(3,4);
System.out.println("--"+s);
}
}

dubbo面向服务使用的更多相关文章

  1. 聊聊SOA面向服务架构

    什么是SOA SOA(Service-Oriented Architecture),即面向服务的架构.SOA是一种粗粒度.松耦合服务架构,服务之间通过简单.精确定义接口进行通讯,不涉及底层编程接口和通 ...

  2. Dubbo分布式服务框架入门

    参考http://blog.csdn.net/u013142781/article/details/50387583 一.Dubbo概念介绍 1.1.Dubbo是什么? Dubbo是一个分布式服务框架 ...

  3. SOA面向服务的架构理解

    Ø  单一应用架构 ·当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本. Ø  垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几 ...

  4. Dubbo 分布式服务框架简介

    1.分布式服务框架 1.1 Dubbo 简介 Dubbo 是一个分布式服务框架,以及阿里巴巴内部的 SOA 服务化治理方案的核心框架.其功能主要包括:高性能 NIO 通讯及多协议集成,服务动态寻址与路 ...

  5. [.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店

    一.前言 在前面专题一中,我已经介绍了我写这系列文章的初衷了.由于dax.net中的DDD框架和Byteart Retail案例并没有对其形成过程做一步步分析,而是把整个DDD的实现案例展现给我们,这 ...

  6. 说说面向服务的体系架构SOA

    序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微软的这些技术也确实推动着面 ...

  7. Puzzle 面向服务/切面(AOP/IOC)开发框架 For .Net

    Puzzle 面向服务/切面AOP开发框架 For .Net AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效 ...

  8. Atitit 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系

    Atitit 面向对象编程(OOP).面向组件编程(COP).面向方面编程(AOP)和面向服务编程(SOP)的区别和联系 1. 面向组件编程(COP) 所以,组件比起对象来的进步就在于通用的规范的引入 ...

  9. (转)漫谈SOA(面向服务架构)

    http://blog.csdn.net/luohuacanyue/article/details/12521699 面向服务架构的思想在整个软件的架构中已经不是什么新鲜的东西.我简单的认为服务化是模 ...

随机推荐

  1. Linux下安装Beego:go install: cannot install cross-compiled binaries when GOBIN is set

    Linux下安装Beego出错 问题:go install: cannot install cross-compiled binaries when GOBIN is set 遇到这个问题一般是在环境 ...

  2. Golint的简易使用方法

    根据作者的说法: Golint is a linter for Go source code. Golint differs from gofmt. Gofmt reformats Go source ...

  3. Matlab 装自定义模块

    Matlab for Mac 右上角有一个set path选项. 点进去再点击 add with subfolders. 把你下载好的且解压过的工具箱添加进去 然后点save. 重启,就可以直接用了.

  4. 远端访问MySQL

    磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL杂记页     回到顶级页面:PostgreSQL索引页 [作者 高健@博客园  luckyjackgao@gmail. ...

  5. Direct3D中 SetStreamSource 函数与数据流

    Microsoft? DirectX? 8.0引入了数据流的概念,用来把数据绑定到着色器使用的输入寄存器.一个数据流是一个成员数据的数组,每个成员由一个或多个元素构成,这些元素代表单个实体,如位置.法 ...

  6. 4 jdngo vue-rotue

    . 执行linux命令 与mac命令   git base 3 初始化操作  页面加载完成,发起请求  window.onload

  7. [BZOJ4883][Lydsy1705月赛]棋盘上的守卫[最小基环树森林]

    题意 有一大小为 \(n*m\) 的棋盘,要在一些位置放置一些守卫,每个守卫只能保护当前行列之一,同时在每个格子放置守卫有一个代价 \(w\) ,问要使得所有格子都能够被保护,需要最少多少的代价. \ ...

  8. windows下启动与停止服务

    net start 服务名 例如:net start mysql net stop 服务名 例如:net stop mysql

  9. 指定路由器(DR/BDR)和非指定路由器(DROTHER)的区别

    一:名词解释 DR:designated router 指定路由器. BDR:backup designated router 备份指定路由器. 二:DR/BDR出现的缘由 在广播网和NBMA网络中, ...

  10. 关于判断用户输入的是不是int类型,这次没有正则表达式

    末尾没有目的地的出租车,污点证人禁止入内!!! 不同的尝试有不同的方法 关于int类型的判断,我尝试了这么一个方法,可行,只是笨 正则表达式我没有搞清楚,没办法给大家讲解,欢迎各位明白人讲解,或者是我 ...