Redis是内存高速缓存数据库,远程数据库服务,key-value存储系统。数据存储到磁盘,断电或者重启后,持久存储。
redis:说白了,就是不可能每次去数据库查询来消耗内存,就是采用key-value的方式在本地缓存。
dubbo:应用可以通过高性能的远程调用,实现服务的输入输出功能,与Spring框架无缝集成。
dubbo:说白了,就是为了解决远程服务调用,弄得像本地调用一样。
zookeeper:分布式应用程序协调软件。说白了就是协助分布式部署。
Provide:服务提供者;Registry:服务注册中心;
Consumer:服务消费者;subscribe:订阅。
notify:通知;invoke:调用;Monitor:统计调用次数和时间的日志服务的监控中心。
服务消费者 向服务注册中心订阅服务,服务注册中心通知服务消费者,返回订阅的响应。
服务消费者调用服务提供者的服务,调用的次数以及日志信息都位于监控中心Monitor。
API通过dubbo远程调用服务BSSS,API的dubbo配置:
<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.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
<dubbo:application name="${dubbo.appName}" />
<!-- 使用ZOOKEEPER注册中心暴露服务地址 -->
<dubbo:registry protocol="zookeeper" address="${dubbo.registry}" username="${dubbo.username}" password="${dubbo.password}" />
<dubbo:consumer timeout="${dubbo.timeout}"/>
<!-- 关闭所有服务的启动时检查:(没有提供者时报错)
<dubbo:registry check="false" />-->
<!-- 生成远程服务代理,可以像使用本地bean一样使用demoService -->
<!-- check="false" 关闭所有服务的启动时检查:(true没有提供者时报错) -->
<dubbo:reference check="false" retries="0" interface="com.qdone.api.service.MerBusniessService" id="merBusniessService" />
BSSS的dubbo配置:
<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.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!--当前应用配置 -->
<!-- 连接注册中心配置 -->
<dubbo:application name="${dubbo.application.name}" />
<dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" username="${dubbo.registry.username}" password="${dubbo.registry.password}" />
<dubbo:provider protocol="dubbo" port="${dubbo.provider.port}" threads="${dubbo.provider.threads}" />
<!-- johnli 2016/01/01 -->
<dubbo:service interface="com.qdone.api.service.MerAssoService" ref="merAssoService" />
<dubbo:service interface="com.qdone.api.service.MerBusniessService" ref="merBusniessService" />
说明:其实就是将bsss服务的接口在api配置,去zookeeper注册中心去订阅服务。bsss的接口在dubbo配置文件暴露,通过zookeeper的配置去注册服务。