tnblog
首页
视频
资源
登录

dubbo快速入门-服务提供者&服务消费者03

4992人阅读 2022/8/22 23:06 总访问:1590412 评论:0 收藏:0 手机
分类: Dubbo

续写于 dubbo快速入门-spring和springmvc整合 02



一、dubbo-service模块(服务提供者)
1、pom.xml文件
打war包了可以让该模块独立运行,安装tomcat插件

2、applicationContext.xml的配置,此处的配置中心是zookeeper

3、创建web.xml并配置

4、启动zookeeper
5、启动dubbo-service模块,这需要自行配置,当然也可以下载mavenhelper插件。
6、控制台效果

二、公共接口模块

公共接口模块就是两及以上的模块都需要的模块。在dubbo-pro这个项目中dubbo-service(服务模块)需要UserService这个接口,dubbo=web(消费模块)也需要这个接口。那么就可以把这个接口单独提出来写到一个模块里面,这个模块就是公共接口模块。通俗的讲就是把service层的接口提到一个单独的模块,这个模块就是公共接口模块。
1、创建dubbo-interface(公共接口模块)

3、给公共接口模块执行install命令(maven的install可以将项目/模块本身编译并打包到本地仓库
4、给服务模块和消费模块都导入公共接口模块

三、bubbo-web(服务消费者)
1、springmvc.xml的配置

注意:如果该案例项目没修改dubbo的QoS的,端口为22222以外的端口,项目启动访问后会报错。
因为此处dubbo-service模块和dubbo-web模块用的都是同一台机器上的zookeeper所以会报下面错误

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.        xmlns:context="http://www.springframework.org/schema/context"
  4.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.        xmlns:mvc="http://www.springframework.org/schema/mvc"
  6.        xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
  7.        xsi:schemaLocation="http://www.springframework.org/schema/beans
  8.         http://www.springframework.org/schema/beans/spring-beans.xsd
  9.         http://www.springframework.org/schema/context
  10.         http://www.springframework.org/schema/context/spring-context.xsd
  11.         http://www.springframework.org/schema/mvc
  12.         http://www.springframework.org/schema/mvc/spring-mvc.xsd
  13.         http://dubbo.apache.org/schema/dubbo
  14.         http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
  15.     <!--    扫描sprig的bean-->
  16.     <context:component-scan base-package="com.itheima.controller"/>
  17.     <!--    mvc驱动-->
  18.     <mvc:annotation-driven/>
  19.     <!--dubbo的配置-->
  20.     <!--   1、 配置项目名称,唯一-->
  21.     <dubbo:application name="dubbo-web">
  22.         <!-- 多个模块链接同一个zookeeper报错解决办法-->
  23.         <!-- dubbo的QoS是默认开启的,端口为22222,可以通过配置修改端口-->
  24.         <dubbo:parameter key="qos.port" value="33333"/>
  25.     </dubbo:application>
  26.     <!--如果不是链接的同一个zookeeper就可以直接<dubbo:application name="dubbo-web"/>-->
  27.     <!--   2、 配置注册中心-->
  28.     <dubbo:registry address="zookeeper://127.0.0.1:2181"/> <!-- 本地zookeeper-->
  29.     <!--    <dubbo:registry address="zookeeper://192.168.170.145:2181"/>-->
  30.     <!--   3、 配置dubbo的包扫描-->
  31.     <dubbo:annotation package="com.itheima.controller"/>
  32. </beans>

2、web.xml,将spring的加载配置注释掉就行了,因为现在我们是通过dubbo来于服务模块通信的

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://java.sun.com/xml/ns/javaee"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5.           http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  6.          version="3.0">
  7. <!--    &lt;!&ndash;对spring配置的加载&ndash;&gt;-->
  8. <!--    <context-param>-->
  9. <!--        <param-name>contextConfigLocation</param-name>-->
  10. <!--        <param-value>classpath*:spring/applicationContext.xml</param-value>-->
  11. <!--    </context-param>-->
  12. <!--    &lt;!&ndash;启动服务器时,通过监听器加载spring运行环境&ndash;&gt;-->
  13. <!--    <listener>-->
  14. <!--        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>-->
  15. <!--    </listener>-->
  16.     <!--用于解决中文乱码-->
  17.     <filter>
  18.         <filter-name>CharacterEncodingFilter</filter-name>
  19.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  20.         <init-param>
  21.             <param-name>encoding</param-name>
  22.             <param-value>UTF-8</param-value>
  23.         </init-param>
  24.     </filter>
  25.     <filter-mapping>
  26.         <filter-name>CharacterEncodingFilter</filter-name>
  27.         <url-pattern>/*</url-pattern>
  28.     </filter-mapping>
  29.     <!--拦截-->
  30.     <servlet>
  31.         <servlet-name>springmvc</servlet-name>
  32.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  33.         <init-param>
  34.             <param-name>contextConfigLocation</param-name>
  35.             <param-value>classpath*:spring/springmvc.xml</param-value>
  36.         </init-param>
  37.     </servlet>
  38.     <!--    <servlet-mapping>-->
  39.     <!--        <servlet-name>DispatcherServlet</servlet-name>-->
  40.     <!--        <url-pattern>/</url-pattern>-->
  41.     <!--    </servlet-mapping>-->
  42.     <servlet-mapping>
  43.         <servlet-name>springmvc</servlet-name>
  44.         <url-pattern>*.do</url-pattern>
  45.     </servlet-mapping>
  46. </web-app>

3、测试
3.1、启动zookeeper->启动dubbo-service->启动dubbo-web
3.2、访问: http://localhost:8000/user/sayHello.do

评价

dubbo概述 01

一、dubbo概述Dubbo是阿里巴巴公司开源的一个高性能、轻量级的Java RPC框架。致力于提供高性能和透明化的RPC远程服务调用方...

dubbo快速入门-spring和springmvc整合 02

一、案例、1、创建空项目给项目设置jdk创建完后的样子2、设置Maven3、创建模块3.1、创建bubbo-service模块模块的位置:选到...

dubbo高级特性-dubbo-admin安装 01

一、先安装nodejs十分钟掌握Nodejs下载和安装:https://blog.csdn.net/qq_51929833/article/details/123694846二、下载dubbo...

Windows平台分布式架构实践 - 负载均衡

原文地址: https://www.cnblogs.com/atree/p/windows_loadbalancer.html 概述  最近.NET的世界开始闹腾了,微软官方终...

分布式-微服务-集群的区别

1.分布式将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区...

可输入下拉文本框,据输入,动态加载数据 jquery-editable-select

用到一个jquery-editable-select的控件github地址:https://github.com/indrimuska/jquery-editable-select这个插件的原理是...

Python学习 1-安装

Ptyhon非常简单易用的面向对象的脚本语言,跨平台 入门简单python分2个版本 Python2、Python3。Python 2.7 将于 2020 年结...

Python学习 2-基本语法

基础:python脚本语言,不需要编译(像C#、Java、PHP、C++需要编译成机器可识别的语言), 而直接由解释器解释,很多地方类似...

Python学习 3-爬虫基本介绍 及简单实例

爬虫爬虫就是一只猪,蜘蛛。。 网络蜘蛛。互联网是一个网由各个网站组成。无数的蜘蛛就在网上到处爬,根据网址从一个网站爬...

Redis基础安装操作-windows版

一、下载 redis官方没有提供windows版本,需要从微软的git下载releases版二、安装,启动1.解压出来 启动服务 可能会双击会...

Service-stack.redis配置连接池与读写分离(处理并发相关等)

配置连接池与读写分类 //写节点(主节点) List&lt;string&gt;writes=newList&lt;string&gt;(); writes.Add(&quot;123456a...

Service-stack.redis操作Redis 并发相关问题

1:不要循环去创建对象,循环去访问redis的时候要特别注意,应该传一个集合进去处理,而不是循环去处理2:要注意释放对象,使...

皓月有趣论题 - U盘或其他存储设备 存入数据后 质量是否发生改变

转自我的个人博客 http://blog.axibug.com之前、朋友提出“U盘或其他存储设备 存入数据后 质量是否发生改变”的问题。那么...

Python实例 1-日志抓取处理 补错(附日志小技巧)

有时候数据出了问题,可以从日志中恢复数据(如果你没记日志..没备份..→_→..)一、日志展示介绍个平常自己用的小方法,如...

Python实例 2-12306抢票(一) 登陆

开坑年关将近,终于对12306下手了,,平安夜撸代码,攻克了12306的登陆 2018-12-24 22:16:00没错 这篇博客就写从零开始的异...
没有个性,不需要签名
排名
4
文章
473
粉丝
3
评论
2
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术