由于易课寄在线购课系统是基于 SOA 架构,表现层和服务层是不同的工程。所以要实现课程列表查询需要两个系统之间进行通信。 如何实现远程通信? 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 Dubbo 就是资源调度和治理中心的管理工具。 调用关系说明: Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于 Spring 的 Schema 扩展进行加载。 单一工程中 Spring 的配置 远程服务 在本地服务的基础上,只需做简单配置,即可完成远程化。 将上面的 local.xml 配置拆分成两份,将服务定义部分放在服务提供方 remote-provider.xml,将服务引用部分放在服务消费方 remote-consumer.xml,并在提供方增加暴露服务配置 <dubbo:service>,在消费方增加引用服务配置 <dubbo:reference>。 发布服务: 调用服务: 请参阅下面的笔记: CentOS 6学习笔记(八)–CentOS6环境安装Dubbo 1、在 ecourses-bms-service 工程中添加 Dubbo 依赖的jar包。 2、在 Spring 的配置文件中添加 Dubbo 的约束,然后使用 dubbo:service 发布服务。 添加 Dubbo 的依赖 ecourses-bms-web 添加对 ecourses-bms-interface 的依赖 修改 springmvc.xml,在 SpringMVC 的配置文件中添加服务的引用。
分析
Dubbo
什么是 Dubbo
Dubbo的架构
节点角色说明:
使用方法
<bean id="xxxService" class="com.xxx.XxxServiceImpl" /> <bean id="xxxAction" class="com.xxx.XxxAction"> <property name="xxxService" ref="xxxService" /> </bean>
<!-- 和本地服务一样实现远程服务 --> <bean id="xxxService" class="com.xxx.XxxServiceImpl" /> <!-- 增加暴露远程服务配置 --> <dubbo:service interface="com.xxx.XxxService" ref="xxxService" />
<!-- 增加引用远程服务配置 --> <dubbo:reference id="xxxService" interface="com.xxx.XxxService" /> <!-- 和本地服务一样使用远程服务 --> <bean id="xxxAction" class="com.xxx.XxxAction"> <property name="xxxService" ref="xxxService" /> </bean>
注册中心
ZooKeeper 介绍与安装
工程改造
服务层工程
<!-- dubbo相关 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:dubbo="https://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="https://code.alibabatech.com/schema/dubbo https://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 使用dubbo发布服务 --> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="ecourses-bms" /> <dubbo:registry protocol="zookeeper" address="zookeeper:2181" /> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 声明需要暴露的服务接口 --> <dubbo:service interface="cn.ecourses.service.ItemService" ref="itemServiceImpl" timeout="600000"/> <dubbo:service interface="cn.ecourses.service.ItemCatService" ref="itemCatServiceImpl" timeout="600000"/> <dubbo:service interface="cn.ecourses.service.ItemDescService" ref="itemDescServiceImpl" timeout="600000"/> <dubbo:service interface="cn.ecourses.service.ItemParamService" ref="itemParamServiceImpl" timeout="600000"/> <dubbo:service interface="cn.ecourses.service.ItemParamItemService" ref="itemParamItemServiceImpl" timeout="600000"/> <dubbo:service interface="cn.ecourses.service.UserService" ref="userServiceImpl" timeout="600000"/> <dubbo:service interface="cn.ecourses.service.AdminService" ref="adminServiceImpl" timeout="600000"/> <dubbo:service interface="cn.ecourses.service.LoginService" ref="loginServiceImpl" timeout="600000"/> <dubbo:service interface="cn.ecourses.service.TokenService" ref="tokenServiceImpl" timeout="600000"/> <dubbo:service interface="cn.ecourses.service.BmsOrderUserService" ref="bmsOrderUserServiceImpl" timeout="600000"/> <dubbo:service interface="cn.ecourses.service.BmsOrderListService" ref="bmsOrderListServiceImpl" timeout="600000"/> </beans>
表现层工程
<!-- dubbo相关 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> </dependency>
<dependency> <groupId>cn.ecourses</groupId> <artifactId>ecourses-bms-interface</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:dubbo="https://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="https://code.alibabatech.com/schema/dubbo https://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 引用dubbo服务 --> <dubbo:application name="ecourses-bms-web"/> <dubbo:registry protocol="zookeeper" address="zookeeper:2181"/> <dubbo:reference interface="cn.ecourses.service.ItemService" id="itemService" /> <dubbo:reference interface="cn.ecourses.service.ItemCatService" id="itemCatService" /> <dubbo:reference interface="cn.ecourses.service.ItemDescService" id="itemDescService" /> <dubbo:reference interface="cn.ecourses.service.ItemParamItemService" id="itemParamItemService" /> <dubbo:reference interface="cn.ecourses.service.ItemParamService" id="itemParamService" /> <dubbo:reference interface="cn.ecourses.service.UserService" id="userService" /> <dubbo:reference interface="cn.ecourses.service.AdminService" id="adminService" /> <dubbo:reference interface="cn.ecourses.service.LoginService" id="loginService" /> <dubbo:reference interface="cn.ecourses.service.TokenService" id="tokenService" /> <dubbo:reference interface="cn.ecourses.service.BmsOrderUserService" id="bmsOrderUserService" /> <dubbo:reference interface="cn.ecourses.service.BmsOrderListService" id="bmsOrderListService" /> <dubbo:reference interface="cn.ecourses.content.service.ContentCategoryService" id="contentCategoryService" /> <dubbo:reference interface="cn.ecourses.content.service.ContentService" id="contentService" /> <dubbo:reference interface="cn.ecourses.search.service.SearchItemService" id="searchItemService" /> </beans>
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算