分布式框架dubbox

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QuietHRH/article/details/82973689

1 SOA架构

SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式。从服务、基于服务开发和服务的结果来看,面向服务是一种思考方式。

soa

2 分布式框架dubbo

Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为Dubbox

Dubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbox就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbox这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架。

dubbo

节点角色说明:

  • Provider: 暴露服务的服务提供方。
  • Consumer: 调用远程服务的服务消费方。
  • Registry: 服务注册与发现的注册中心。
  • Monitor: 统计服务的调用次调和调用时间的监控中心。
  • Container: 服务运行容器。

调用关系说明:

  1. 服务容器负责启动,加载,运行服务提供者。
  2. 服务提供者在启动时,向注册中心注册自己提供的服务。
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推

送变更数据给消费者。

  1. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,

如果调用失败,再选另一台调用。

  1. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计

数据到监控中心。

Service注解与原来不同,需要引入com.alibaba包下的

@Service
1.和原来的注解是一个效果,也就是当前类是一个bean
2.发布服务,暴露方法
@Reference
1.去注册中心找该接口的信息
2.根据信息发送流,获取该接口的实现类的流,产生代理对象

	<!-- 20880是默认端口,项目子模块如果部署在多台服务器,则不用修改,如果是测试机,就要改成不同端口-->
	<dubbo:protocol name="dubbo" port="20880"/>	
	<!--指定应用名称-->
    <dubbo:application name="dubboxdemo-service"/>
    <!--连接zookeeper注册中心-->
    <dubbo:registry address="zookeeper://192.168.35.128:2181"/>
    <!--包注解扫描-->
    <dubbo:annotation package="com.hrh.dubbodemo.service" />

在这里插入图片描述

3 zookeeper

官方推荐使用 zookeeper 注册中心。注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。

Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbox 服务的注册中心,工业强度较高,可用于生产环境。
在这里插入图片描述

4 项目依赖关系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

dao层

  • dao<–pojo

service层(商家商品服务):

  • sellergoods_service<–sellergoods_interface<–pojo

web层(运营商管理平台):

  • manage_web<–sellergoods_interface<–pojo

web层(商家管理平台):

  • shop_web<–sellergoods_interface<–pojo

web<–dubbo–service<–dao

猜你喜欢

转载自blog.csdn.net/QuietHRH/article/details/82973689