亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Maven-maven多模塊項目搭建+Dubbo分布式服務框架

標簽:
Java WebApp 設計

maven多模块项目搭建

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


1.新建maven项目

New
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人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
全棧工程師
手記
粉絲
218
獲贊與收藏
1546

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消