基于dubbo的分布式架构
2016-01-07 14:39
316 查看
DUBBO
DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架准备工作
zookeeper-3.3(Apache网站下载)tomcat7.0(Apache官网下载)
dubbo-monitor-simple-2.5(github下载最新代码打包tar.gz)
dubbo-admin-2.5(github下载最新代码打包war)
maven开发环境(eclipse+maven)
启动zookeeper
解压zookeeper,目录名称为zookeeper重命名zookeeper/conf目录下的zoo_sample.cfg为zoo.cfg
执行zookeeper/bin目录下zkServer.cmd(linux下为zkServer.sh)
部署dubbo-monitor-simple
解压dubbo-monitor-simple,目录名称为dubbo-monitor-simple执行dubbo-monitor-simple/bin目录下start.cmd(linux下为start.sh)
访问http://127.0.0.1:8080查看监控中心
部署dubbo-admin
解压tomcat,目录名称为tomcat,配置端口为8081将war包复制到tomca/webapps目录内
执行tomcat/bin目录下的startup.bat(linux为startup.sh)启动tomcat
访问http://127.0.0.1:8081/dubbo-admin查看管理控制台
定义API
创建Maven simple项目dubbo-api定义接口如下:
public interface OrderService { public Order create(Order order); }
public interface ProductService { public Product findByName(String name); }
发布服务
添加服务依赖<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo-api</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>${dubbo.version}</version> </dependency> </dependencies>
实现服务
@Service public class OrderServiceImpl implements OrderService{ public Order create(Order order) { return new Order(); } }
@Service public class ProductServiceImpl implements ProductService{ public Product findByName(String name) { return new Product(); } }
注册服务
<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-2.5.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" /> </beans>
订阅服务
添加服务依赖<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo-api</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>${dubbo.version}</version> </dependency> </dependencies>
订阅服务
<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-2.5.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService" /> </beans>
调用服务
@Controller public class OrderController { @Autowired private OrderService orderService; public Order createOrder(Order order){ return orderService.create(order); } }
@Controller public class ProductContr { @Autowired private ProductService productService; public Product FindProduct(String name){ return productService.findByName(name); } }
系统架构图
关于Ngix以及Mysql的集群部署请持续关注本博客,学无止境,本博客如果存在纰漏,欢迎指正。
请尊重原创如有引用请标明博客出处,谢谢。
相关文章推荐
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- C#分布式事务的超时处理实例分析
- Erlang分布式节点中的注册进程使用实例
- Shell脚本实现自动安装zookeeper
- C++实现的分布式游戏服务端引擎KBEngine详解
- 基于Zookeeper的使用详解
- ASP.NET通过分布式Session提升性能
- Spring+Mybatis+Mysql搭建分布式数据库访问框架的方法
- 分享一个简单易用的RPC开源项目—Tatala
- 手把手教你配置Hbase完全分布式环境
- mesos + marathon + docker部署
- 基于zk的配置管理
- Glusterfs:趋于成熟的集群文件系统
- 关于glusterfs的directory-layout-spread参数
- tomcat集群扩展session集中管理,Memcached-session-manager...
- dubbo-2.5.4-SNAPSHOT 小bug处理。
- Redis集群快速搭建
- SolrCloud4.9+zookeeper在CentOS上的搭建与安装
- dubbo + spring + mybaits 的pom文件列一
- 基于外部ZooKeeper的GlusterFS作为分布式文件系统的完全分布式HBase集群安装指南