了解 、使用 Dubbo+ zookeeper

  • 先了解一下:

             Dubbo也是一套微服务框架,他与SpringCloud的区别就是,他支持多种协议,而SpringCloud只支持Http协议。
     	    Zookeeper是一个开源的分布式应用程序协调服务,分布式应用程序可以基于Zookeeper实现数据发布/订阅、负载均衡、分布式协调/通知、集群管   理、分布式锁和分布式队列等功能。(注册中心)
     	    Dubbo的消费者和生产者是分开的  :它的消费者包含项目中的controller和页面;生产这包含项目的service和dao;这样拆分可以减轻服务站点压力
    

2.使用

  • 先写一个生产者 productor 额外引入依赖

     	<dependency>
     	<groupId>io.dubbo.springboot</groupId>
     	<artifactId>spring­boot­starter­dubbo</artifactId>
     	<version>1.0.0</version>
     	</dependency>
     	<dependency>
     	<groupId>org.apache.zookeeper</groupId>
     	<artifactId>zookeeper</artifactId>
     	<version>3.4.6</version>
     	<exclusions>
     	<exclusion>
     	<groupId>org.slf4j</groupId>
     	<artifactId>slf4j­log4j12</artifactId>
     	</exclusion>
     	<exclusion>
     	<groupId>log4j</groupId>
     	<artifactId>log4j</artifactId>
     	</exclusion>
     	</exclusions>
     	</dependency>
    
    • 配置文件

          spring.dubbo.application.name=provider ­­服务名称
        	spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 ­­ 注册中心地址
        	spring.dubbo.protocol.name=dubbo ­­ dubbo 协议
        	spring.dubbo.protocol.port=20880
        	spring.dubbo.scan=com.jaycekon.dubbo.service ­­声明需要暴露的服务接口
        	
      #yml 文件
      spring:
          application:
            name: tree_dubbo
          dubbo :
            application:
              name : tree_dubbo_provider
            registry:
              address: zookeeper://127.0.0.1:2181
            protocol :
              name: dubbo
              port: 20880
            scan: com.jk.service
      
  • 暴露service之后 ,在是service层加@service 该注解注意使用dubbo注解 ,导错了就很难找到

  • 单独启动 zookeeper 解压后的bin下 (cmd.exe)

  • 浏览器登录 127.0.0.1:2181 可以查看

  • 建一个消费者
    pom.xml 文件导入依赖后

    		spring:
     			  application:
     			    name: servername
     			  dubbo:
     			    application:
     			      name: tree_consumer
     			    registry:
     			      address: zookeeper://127.0.0.1:2181
     			    scan: com.jk.service
    
  • 实现类中 使用@Reference 注解注入公共接口

  • 再新建一个公共项目可以是maven项目,公共部分都放在这里,使用maven命令install 打jar包,将依赖引入到生产者、消费者的pom.xml中。

  • 注意:

  •  1.把热部署依赖去掉(出错可能会是这个)
     2. 实体对象需要序列化
     3.修改D:\SoftWare\zookeeper-3.4.8\conf下的:zoo_sample.cfg文件名,改
     为:zoo.cfg
     4.   zoo.cfg  文件中
           dataDir=E:\\jinke\\study\\zookeeper-3.4.12\\data
           dataDirLog=E:\\jinke\\study\\zookeeper-3.4.12\\log
         
     5.dubbo 控制台可搭 可不搭    解压到Tomcat webapp Root下;(得启动Tomcat)
    

猜你喜欢

转载自blog.csdn.net/cxy_chh/article/details/90678669