本文源码GitHub地址:知了一笑https://github.com/cicadasmile/middle-ware-parent
一、Dubbo框架简介
1、框架依赖
图例说明:
1)图中小方块 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表层或模块,蓝色的表示与业务有交互,绿色的表示只对 Dubbo 内部交互。2)图中背景方块 Consumer, Provider, Registry, Monitor 代表部署逻辑拓扑节点。3)图中蓝色虚线为初始化时调用,红色虚线为运行时异步调用,红色实线为运行时同步调用。4)图中只包含 RPC 的层,不包含 Remoting 的层,Remoting 整体都隐含在 Protocol 中。
2、核心角色说明
1)Provider 暴露服务的服务提供方2)Consumer 调用远程服务的服务消费方(负载均衡)3)Registry 服务注册与发现的注册中心(监控、心跳、踢出、重入)4)Monitor 服务消费者和提供者在内存中累计调用次数和调用时间,主动定时每分钟发送一次统计数据到监控中心。5)Container 服务运行容器:远程调用、序列化
二、与SpringBoot2.0整合
1、核心依赖
com.alibaba.boot dubbo-spring-boot-starter 0.2.0
2、项目结构说明
结构说明
dubbo-consume:服务消费方dubbo-provider:服务提供方dubbo-common:公共代码块,Dubbo接口,实体类
3、核心配置
1)提供方配置
server: tomcat: uri-encoding: UTF-8 max-threads: 1000 min-spare-threads: 30 port: 7007 connection-timeout: 5000msspring: application: name: block-dubbo-provider# Dubbo 配置文件dubbo: application: name: block-dubbo-provider registry: address: 127.0.0.1:2181 protocol: zookeeper protocol: name: dubbo port: 20880 scan: base-packages: com.boot.consume
2)消费方配置
server: tomcat: uri-encoding: UTF-8 max-threads: 1000 min-spare-threads: 30 port: 7008 connection-timeout: 5000msspring: application: name: block-dubbo-consume# Dubbo 配置文件dubbo: application: name: block-dubbo-consume registry: address: 127.0.0.1:2181 protocol: zookeeper
三、演示案例
1、服务远程调用
1)提供方服务接口
注意这里的注解
com.alibaba.dubbo.config.annotation.Service
@Service@Componentpublic class DubboServiceImpl implements DubboService { private static Logger LOGGER = LoggerFactory.getLogger(DubboServiceImpl.class) ; @Override public String getInfo(String param) { LOGGER.info("字符参数:{}