dubbo面向服务使用
首先启动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面向服务使用的更多相关文章
- 聊聊SOA面向服务架构
什么是SOA SOA(Service-Oriented Architecture),即面向服务的架构.SOA是一种粗粒度.松耦合服务架构,服务之间通过简单.精确定义接口进行通讯,不涉及底层编程接口和通 ...
- Dubbo分布式服务框架入门
参考http://blog.csdn.net/u013142781/article/details/50387583 一.Dubbo概念介绍 1.1.Dubbo是什么? Dubbo是一个分布式服务框架 ...
- SOA面向服务的架构理解
Ø 单一应用架构 ·当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本. Ø 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几 ...
- Dubbo 分布式服务框架简介
1.分布式服务框架 1.1 Dubbo 简介 Dubbo 是一个分布式服务框架,以及阿里巴巴内部的 SOA 服务化治理方案的核心框架.其功能主要包括:高性能 NIO 通讯及多协议集成,服务动态寻址与路 ...
- [.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店
一.前言 在前面专题一中,我已经介绍了我写这系列文章的初衷了.由于dax.net中的DDD框架和Byteart Retail案例并没有对其形成过程做一步步分析,而是把整个DDD的实现案例展现给我们,这 ...
- 说说面向服务的体系架构SOA
序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微软的这些技术也确实推动着面 ...
- Puzzle 面向服务/切面(AOP/IOC)开发框架 For .Net
Puzzle 面向服务/切面AOP开发框架 For .Net AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效 ...
- Atitit 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系
Atitit 面向对象编程(OOP).面向组件编程(COP).面向方面编程(AOP)和面向服务编程(SOP)的区别和联系 1. 面向组件编程(COP) 所以,组件比起对象来的进步就在于通用的规范的引入 ...
- (转)漫谈SOA(面向服务架构)
http://blog.csdn.net/luohuacanyue/article/details/12521699 面向服务架构的思想在整个软件的架构中已经不是什么新鲜的东西.我简单的认为服务化是模 ...
随机推荐
- 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 遇到这个问题一般是在环境 ...
- Golint的简易使用方法
根据作者的说法: Golint is a linter for Go source code. Golint differs from gofmt. Gofmt reformats Go source ...
- Matlab 装自定义模块
Matlab for Mac 右上角有一个set path选项. 点进去再点击 add with subfolders. 把你下载好的且解压过的工具箱添加进去 然后点save. 重启,就可以直接用了.
- 远端访问MySQL
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL杂记页 回到顶级页面:PostgreSQL索引页 [作者 高健@博客园 luckyjackgao@gmail. ...
- Direct3D中 SetStreamSource 函数与数据流
Microsoft? DirectX? 8.0引入了数据流的概念,用来把数据绑定到着色器使用的输入寄存器.一个数据流是一个成员数据的数组,每个成员由一个或多个元素构成,这些元素代表单个实体,如位置.法 ...
- 4 jdngo vue-rotue
. 执行linux命令 与mac命令 git base 3 初始化操作 页面加载完成,发起请求 window.onload
- [BZOJ4883][Lydsy1705月赛]棋盘上的守卫[最小基环树森林]
题意 有一大小为 \(n*m\) 的棋盘,要在一些位置放置一些守卫,每个守卫只能保护当前行列之一,同时在每个格子放置守卫有一个代价 \(w\) ,问要使得所有格子都能够被保护,需要最少多少的代价. \ ...
- windows下启动与停止服务
net start 服务名 例如:net start mysql net stop 服务名 例如:net stop mysql
- 指定路由器(DR/BDR)和非指定路由器(DROTHER)的区别
一:名词解释 DR:designated router 指定路由器. BDR:backup designated router 备份指定路由器. 二:DR/BDR出现的缘由 在广播网和NBMA网络中, ...
- 关于判断用户输入的是不是int类型,这次没有正则表达式
末尾没有目的地的出租车,污点证人禁止入内!!! 不同的尝试有不同的方法 关于int类型的判断,我尝试了这么一个方法,可行,只是笨 正则表达式我没有搞清楚,没办法给大家讲解,欢迎各位明白人讲解,或者是我 ...