Dubbox
Dubbox
SOA架构:SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式。
Dubbox:Dubbox是一个分布式服务框架
Dubbox执行原理:1.服务容器负责启动,加载,运行服务提供者。服务提供者在启动时,向注册中心注册自己提供的服务。2.服务消费者在启动时,向注册中心订阅自己所需的服务。注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。3.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。4.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计,数据到监控中心。因此,启动bubbox服务的方式需要先打开service层,再打开web层
ZooKeeper:充当服务的注册中心导入依赖:
<dependencies><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.8.4</version> </dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.6</version></dependency><dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId><version>0.1</version></dependency> <dependency><groupId>javassist</groupId><artifactId>javassist</artifactId><version>3.11.0.GA</version></dependency>
</dependencies>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:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">...
</beans>提供者(service):<!--给当前service起一个名字,不重复即可--><dubbox:applicaiton name="pinyougou-manager-service"/><!--配置注册中心zookeeper的地址,用于注册服务,2181是zookeeper的默认端口号--><dubbox:registry address="zookeeper://192.168.25.128:2181"/><!--配置包扫描:扫描com.alibaba.dubbo.config.annotation.Service发布服务功能,把对象放入IOC容器--><dubbox:annotation package="com.pinyougou.manager.service.impl"/><!-- 配置一个提供者启动服务要监听的端口,默认是20880. --><dubbo:protocol name="dubbo" port="20880"></dubbo:protocol>消费者(web):<dubbox:application name="com.pinyougou.pinyougou-manager-web"/><!--配置注册中心zookeeper的地址,用于订阅服务--><dubbox:registry address="zookeeper://192.168.25.128:2181"/><!--使用@Reference注解代替@Autowired注解来注入--><dubbo:annotation package="com.pinyougou.controller" /> 特殊的标签:<!--当配置了密码加密类后,需要在web层直接操作dao,可以使用reference标签解决注入问题--><dubbox:reference id="sellerService" interfce="com.pinyougou.sellergoods.service.SellerService"/>
SPU = Standard Product Unit (标准产品单位)
SKU=stock keeping unit(库存量单位)