手记

Maven-maven多模块项目搭建+Dubbo分布式服务框架

maven多模块项目搭建

最近呢学校校企合作培训,老师给我们出了一道题让做一个秒杀系统。要求前后端分离,要有独立的商品服务,独立的库存服务,独立的交易服务。经过团队的协商我们决定使用maven多模块,来将这些服务进行整合,到最后统一一键暴露接口服务,而不用再一个个启动服务了。


1.新建maven项目


2.选择项目存放的路径后,选择创建一个简单的maven项目

3.填写Group Id和Artifact Id,也可以自定义版本号

4.项目的目录结构很简单

5.这里我们要看一下pom.xml,这里Packaging需要改为pom


接下来我们构建里面的子模块(seckill_interface)

1.在已经建成的项目上右键新建project此时选择创建Maven Module

2.此时项目类型选择为maven-archetype-quickstart

3.建成之后的项目结构为


接下创建提供服务的模块儿(user_backService,business_backService,commodity_backService,stock_backService)

这四个独立的服务项目构建过程与seckill_interface构建过程一样
最终结构如下图


为了使这些服务能跑起来需要我们去创建一个如下类型的maven子项目(web)


然后填写Group Id和Artifact Id,也可以自定义版本号

到现在为止,整个项目的架子是搭好了。(搭建webApp类型的maven子项目其实是依赖前面的接口的4个服务的。)

最终open_backService是被打成war包进行发布的,其他的依赖都会被打成jar被Open_backService引用。


接下来我们配置相关接口服务整个项目结构如下图

最主要的在于包【top.softzztiedu.service】中。
我们将服务写成接口通过Dubbo进行服务治理
我们的服务如何暴露呢,当然是在open_backService中了(见下图)

【1】配置remote-provider.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: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:service interface="top.softzztiedu.service.UserService" ref="UserService" timeout="100000"/>
    <dubbo:service interface="top.softzztiedu.service.BusinessService" ref="BusinessService" timeout="100000"/>
    <dubbo:service interface="top.softzztiedu.service.CommodityService" ref="CommodityService" timeout="100000"/>
    <dubbo:service interface="top.softzztiedu.service.StockService" ref="StockService" timeout="100000"/>

    <!-- 和本地bean一样实现服务 -->
    <bean id="UserService" class="top.softzztiedu.service.impl.UserServiceImpl"/>
    <bean id="BusinessService" class="top.softzztiedu.service.impl.BusinessServiceImpl"/>
    <bean id="CommodityService" class="top.softzztiedu.service.impl.CommodityServiceImpl"/>
    <bean id="StockService" class="top.softzztiedu.service.impl.StockServiceImpl"/>

</beans>

【2】配置spring-dubbo.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: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:consumer check="false" />

    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="seckill_backService"/>

    <!-- 使用multicast广播注册中心暴露服务地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" client="zkclient"/>

    <!-- 用dubbo协议在20881端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20881" />

</beans>

注:详情查看源码与环境部署文档

https://github.com/iamsongci/seckill_backService/

26人推荐
随时随地看视频
慕课网APP

热门评论

关注老师很久了  感觉好多干货

dubbo调试工具,相信你用得上,http://www.vbox.top

http://img.mukewang.com/599c52a50001180a12190239.jpg

大神问下我的业务类注入不了 啊

查看全部评论