一、系统架构的演变
1、单体架构:所有模块都在一个war包,问题:代码耦合、迭代困难、扩展受限
2、分布式:按照业务逻辑把系统拆分成独立的模块,问题:公共业务逻辑无法复用
3、SOA架构:在分布式的基础上,把模块拆成服务层、表现层,问题:esb(mule不支持集群、wso2臃肿)
二、dubbo介绍
1、什么是dubbo?
dubbo是阿里巴巴一个开源的rpc(远程调用)框架,能和spring无缝集成
2、dubbo角色如下:
consumer:表现层(controller、jsp)
registry:注册中心(zookeeper)
provider:服务提供者(service、mapper)
三、zookeeper介绍
1、什么是zookeeper?
zookepper负责地址的注册与查找,是服务提供者和服务消费者的注册中心
2、zookeeper的安装和启动
1、安装
1)上传并解压
cd /usr/upload
tar -zxvf zookeeper-3.4.11.tar.gz -C /usr/local
2)拷贝配置文件
cd /usr/local/zookeeper-3.4.11/conf
cp zoo_sample.cfg zoo.cfg
3)修改配置文件
vim /usr/local/zookeeper-3.4.11/conf/zoo.cfg:
dataDir=/usr/local/zookeeper-3.4.11/data
4)创建目录
cd /usr/local/zookeeper-3.4.11
mkdir data
2、启动和关闭
cd /usr/local/zookeeper-3.4.11/bin
./zkServer.sh star
./zkServer.sh stop
./zkServer.sh status
./zkServer.sh restart
四、dubbo入门
1、创建工程
dubbox_parent:定义依赖
dubbox_interface:service接口
dubbox_provider:service实现类
dubbox_consumer:controller
2、发布服务:dubbox_provider
1)service
@Service//dubbo
public class HelloServiceImpl implements HelloService{
}
2)application.properties
#zookeeper地址
dubbo.registry.address=zookeeper://192.168.204.128:2181
#当前服务的名字
dubbo.application.name=dubbox-provider
#通讯协议:Dubbo、RMI、http、WebService
dubbo.protocol.name=dubbo
3)app
@EnableDubbo//开启dubbo功能
3、发布服务:dubbox_consumer
1)controller
public class HelloController {
@Reference
private HelloService helloService;//从zookeeper中查找helloService类型的接口
}
2)application.properties
#zookeeper地址
dubbo.registry.address=zookeeper://192.168.204.128:2181
#当前服务的名字
dubbo.application.name=dubbox-consumer
#通讯协议:Dubbo、RMI、http、WebService
dubbo.protocol.name=dubbo
3)app
@EnableDubbo//开启dubbo功能