基于dubbo的分布式架构

DUBBO

DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架

准备工作

  1. zookeeper-3.3(Apache网站下载)
  2. tomcat7.0(Apache官网下载)
  3. dubbo-monitor-simple-2.5(github下载最新代码打包tar.gz)
  4. dubbo-admin-2.5(github下载最新代码打包war)
  5. maven开发环境(eclipse+maven)

启动zookeeper

  1. 解压zookeeper,目录名称为zookeeper
  2. 重命名zookeeper/conf目录下的zoo_sample.cfg为zoo.cfg
  3. 执行zookeeper/bin目录下zkServer.cmd(linux下为zkServer.sh)

部署dubbo-monitor-simple

  1. 解压dubbo-monitor-simple,目录名称为dubbo-monitor-simple
  2. 执行dubbo-monitor-simple/bin目录下start.cmd(linux下为start.sh)
  3. 访问http://127.0.0.1:8080查看监控中心

部署dubbo-admin

  1. 解压tomcat,目录名称为tomcat,配置端口为8081
  2. 将war包复制到tomca/webapps目录内
  3. 执行tomcat/bin目录下的startup.bat(linux为startup.sh)启动tomcat
  4. 访问http://127.0.0.1:8081/dubbo-admin查看管理控制台

定义API

  1. 创建Maven simple项目dubbo-api
  2. 定义接口如下:
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的集群部署请持续关注本博客,学无止境,本博客如果存在纰漏,欢迎指正。
请尊重原创如有引用请标明博客出处,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值