dubbo

1 篇文章 0 订阅
  1. 集中式应用就是:在一个应用中包含了应用运行的所有需要的资源。
  2. 分布式的应用分成客户端和服务端,客户端的controller调用服务端的service是通过网络传输来调用。
    这种通过网络在不了解底层协议情况下TCP/UDP用controller像调用本地服务一样调用远程的service的技术叫做RPC技术。远程过程调用协议。RPC技术的底层原理:就是对象的序列化、反序列化以及序列化后数据的传输。

  3. ZooKeeper是分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。服务端服务的注册和客户端服务的调用。

  4. 1,解压到无中文空格的目录中
    2,修改配置文件
        zoo_sample.cfg复制修改成zoo.cfg(默认找它)
         # 内存数据的备份地址
         新建data目录, 把目录放在dataDir后(不能有中文)
       dataDir=F://zookeeper-3.4.5//data
       # 存放日志地址
      新建log目录, 把目录放在dataLogDir后(不能有中文)
         dataLogDir=F://zookeeper-3.4.5//log
    3,双击bin目录下的zkServer.cmd,运行zookeeper  
           clientPort 注册中心对外提供的端口(给B/S用)

  5. (springboot 提供的spring-boot-starter-dubbo 只支持注解方式,如果要使用xml方式只能自己导入dubbo.jar包)
    导入dubbo相关依赖
     <!-- dubbo -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.5.3</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
             <!--zookeeper-->
            <dependency>
                <groupId>com.101tec</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.4.5</version>
            </dependency>

  6. 客户端直接连接服务端,当前用户目录下添加dubbo-resolve.properties文件,该文件内容是服务列表。
    register=”false”去用户目录下去找dubbo-resolve.properties文件

  7. 缓存服务列表:首次连接服务端后,会拉取存在zookeeper中的服务列表保存到客户端中,叫dubbo.cache自动生成,可自定义。如果dubbo-resolve.properties 文件中有此服务的地址则不会再放入缓存,配<dubbo:register   file="${user.home}/dubbo.cache"

  8. 一,shop-parent
    |—shop-api-goods(商品系统的api,不需继承parent)
    |—shop-server-goods(商品系统)
    |—shop-api-order(订单系统的api 不需继承parent)
    |—shop-server-order(订单系统)
    |—shop-client-mgrsite(后台管理系统)
    |—shop-clinet-website(移动端接口)

    二、添加项目相关依赖
             1、在parent项目添加springboot项目  C/B子项目继承parent , C/B都需要 启动单独运行在自己的服务器上(内嵌Tomcat)
             2、api包让parent管理,service和client依赖, api不继承parent只作为parent子模块,
             3、在parent添加springboot-web依赖        
             4、在parent添加连接数据库的相关依赖  连接jar
             5、在parent里添加dubbo依赖 ,C/B都需要
             6、创建springboot应用的启动类

    三,各个服务service系统整合mybatis,service层调数据库
            1、在application.properties配置文件中添加如下配置信息:
                  #数据库连接地址
                  spring.datasource.url=jdbc:mysql://localhost:3306/coding_shop
                  #MySQL驱动
                  spring.datasource.driverClassName=com.mysql.jdbc.Driver
                  #数据库账号
                  spring.datasource.username=root
                  #数据库密码
                  spring.datasource.password=root
                  #阿里巴巴Druid连接池
                  spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
                  #mybatis的mapper.xml配置文件路径
                  mybatis.mapperLocations=classpath:mapper/*.xml
                  #mybatis的mapper.xml配置文件domain对象别名扫描路径
                  mybatis.typeAliasesPackage=cn.wolfcode.shop.api.domain      

            2、各个服务,在启动类添加如下注解:

                  //扫描mybatis接口的注解
                   service里贴
                  @MapperScan("cn.wolfcode.server.goods.mapper")生成包下接口代理实现类
                  //开启事务管理
                  @EnableTransactionManagement

    四、各个服务系统整合mybatis-generator插件
            1、在各个服务service系统的pom文件中添加mybatis-generator插件
            2、在resources目录下添加generatorConfig.xml文件,不能夸项目生成domain所以现在service生成在考到api里 改Mapper domain 路径
        
    五、各个服务系统整合dubbo发布服务程序 xml方式注解方式 springboot属性配置方式
            1、在application.properties配置文件中添加如下配置信息:
                  #dubbo服务名
                  spring.dubbo.application.name=shop-server
                  #注册中中心
                  spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
                  #spring.dubbo.registry.register=true
                  #dubbo的RPC协议
                  spring.dubbo.protocol.name=dubbo
                  #dubbo的RPC端口
                  spring.dubbo.protocol.port=20880
                  #发布服务扫描的路径
                  spring.dubbo.scan=com.xmg.shop.server.service.impl    

    六、发布一个服务(以发布商品服务为例)
            1、使用mybatis-genenrator插件生成domain类、mapper接口、mapper.xml文件
            2、把domain类剪切到对应的api项目中
            3、在对应的api项目中创建一个服务接口
            4、创建服务实现类
                    在该实现类上贴上@Service注解,贴上了该注解就代表了该类需要发布服务
                   注意:
                   1、该注解是com.alibaba.dubbo.config.annotation包下的注解不是spring的注解(整合了spring的@service)
                   2、贴上该注解的服务实现类必须要在上面的配置项spring.dubbo.scan=xxx能够扫描到的路径下
            5、启动springboot应用

    七、各个客户端整合dubbo引用服务程序
            1、在application.properties配置文件中添加如下配置信息:
                    #dubbo应用名
                    spring.dubbo.application.name=shop-client-mgrsite
                    #连接的注册中心地址
                    spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
                    #引用服务扫描的路径
                    spring.dubbo.scan=cn.wolfcode.client.mgrsite.controller

    八、引用服务(以商品controller为例)
            1、创建商品的controller调用商品的服务
                    在该controller需要注入服务的依赖上贴上@Refrence注解,贴上该注解就可以自动的把需要引用的服务注入进来

    在client 的启动类上没有引入service的properties文件

  9. 服务监控中心使用步骤:
    部署方式①service.xml里配置项目路径②把可运行的war包放到Tomcat的webapp目录下(不需上下文路径可直接放到root目录下,要把war解压,不然把war包名当做上下文路径[或者在webapp下新建test把war解压到test上下文路径就是test])    
    1,下载服务监控中心
    监控部署在服务器的服务状态 要读取注册中心的服务
    2,修改配置文件
        (1,修改webapps/root/WEB-INF/dubbo.properties文件的zookeeper地址
         (2,启动tomcat
    3,访问服务监控中心
       访问:http://localhost:8099
        账号和密码都是root

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值