这次主要是对dubbo 和zookeeper的配置做个记录,以便以后自己忘记了,或者踩的坑再次被踩

快速阅读

zookeerer类似 springcloud中的Eureka都做为注册中心,用srpingboot建立三个项目生产者,消费者,公共接口,引用阿里的dubbo做为rpc框架, 生产者负责实现接口的业务逻辑 并且在zookeeper注册中心中注册,同是消费者也连接zookeeper注册中心进行消息调用 。

优点:

做为分布式服务架构,将核心业务抽取出来,稳定服务器,同时扩展方便 。可以针对高并发数据进行快速合理的扩展和监控。提高集群的利用率

zookeeper的配置

  1. 下载zookeeper 我用的版本是3.4.13

    http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

  2. linux服务器解压

    下载以后放到linux服务器上直接解压就可以了。

    [root@bogon hcb]# tar zxvf zookeeper-3.4.13.tar.gz -C /usr
  3. 备份zoo.cfg配置文件

    直接把zoo_sample.cfg改名就可以了。o

    mv /usr/zookeeper-3.4.13/conf/zoo_sample.cfg zoo.cfg
  4. 启动zookeeper

    我是因为已经启动过了,显示 already running

    [root@bogon bin]# ./zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /usr/zookeeper-3.4.13/bin/../conf/zoo.cfg
    Starting zookeeper ... already running as process 2521.
  5. 查看zookeeper状态

    如果有standalone表示启动正常 可以正常使用

    [root@bogon bin]# ./zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/zookeeper-3.4.13/bin/../conf/zoo.cfg
    Mode: standalone
  6. 检查是否可以正常使用

    用telnet 来测试

    telnet 192.168.159.131 2181

    虚拟机的linux可以ping通

    但是win7主机外面无法ping通

    这一般是因为linux的防火墙问题,直接关闭就可以了

  7. 关闭linux 防火墙

    1. 检查防火墙状态,

      显示状态为running表示防火墙正在运行

      [root@bogon bin]# firewall-cmd --state
      running
    2. 关闭linux防火墙,并再次查询状态

      [root@bogon bin]# systemctl stop firewalld.service
      [root@bogon bin]# firewall-cmd --state
      not running
    3. 禁止开机启动防火墙

      [root@bogon bin]# systemctl disable firewalld.service
      Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
      Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

      在win主机上再次telnet,可以成功连接

      创建spring boot项目进行连接zookeeper

      1. 用Ideal创建一个maven项目 ,在项目里添加三个module

        这三个项目分别是生产者dubboprovider 消费者dubboconsumer 接口duoboapi

        创建一个maven的项目

        输入项目名字

        下一步

        进入项目界面

        新建provider module

        同样的方法 创建其它两个module,结果如下所示三个module创建完毕

      2. 配置主项目 pom.xml

        引用三个主要的依赖,

        dubbo-spring-boot-starter: 在spring容器中注入特定bean ,集成了dubbo和spring boot

        zookeeper:zookeeper的依赖

        zkclient:zookeeper的客户端依赖

         <dependencies>
        <dependency>
        <groupId>com.alibaba.spring.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>1.0.2</version>
        </dependency>
        <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.4.13</version>
        </dependency>
        <dependency>
        <groupId>com.101tec</groupId>
        <artifactId>zkclient</artifactId>
        <version>0.10</version>
        </dependency>
        </dependencies>
      3. 定义接口

        在dubboapi 模块中java下,新建一个类com.hcb.Service.IHelloService

        package com.hcb.Service;
        
        public interface  IHelloService {
        String SayHello(String name);
        }
      4. 实现 生产者模块

        在该模块的pom.xml引用接口

        <groupId>com.hcb</groupId>
        <artifactId>dubboprovider</artifactId>
        <dependencies>
        <dependency>
        <groupId>com.hcb</groupId>
        <artifactId>dubboapi</artifactId>
        <version>1.0-SNAPSHOT</version>
        </dependency>
        </dependencies>

        新建main入口方法

        引用@SpringBootApplication,@EnableDubboConfiguration 注解

        • @SpringBootApplication 整合了三个注解。(默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan

        • @Configuration 是和@Bean 把实体model翻译成了xml的配置文件 ,使配置更简单

        • @EnableAutoConfiguration 能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。

        • @ComponentScan 会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。

        • @EnableDubboConfiguration, 表示要开启dubbo功能.

        参考:https://www.cnblogs.com/MaxElephant/p/8108140.html

        package com.hcb;
        
        import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
        import org.springframework.boot.SpringApplication;
        import org.springframework.boot.autoconfigure.SpringBootApplication; import java.util.concurrent.CountDownLatch; @SpringBootApplication
        @EnableDubboConfiguration
        public class provider {
        public static void main(String[] args) throws InterruptedException {
        SpringApplication.run(provider.class,args);
        new CountDownLatch(1).await();
        }
        }

        定义一个类com.hcb.Service.HelloService 来实现 接口

        @Service注解,将自动注册到Spring容器,不需要再定义bean了

        @component (把普通pojo实例化到spring容器中,相当于配置文件中的

        泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),

        package com.hcb.Service;
        
        import com.alibaba.dubbo.config.annotation.Service;
        import org.springframework.stereotype.Component; @Service
        @Component
        public class HelloSevice implements IHelloService {
        public String SayHello(String name){
        return "hi "+name;
        }
        }

        resoruces中新建application.properties配置 文件

        指定名字并给出要注册的zookeepr的地址

        spring.dubbo.appname=dubboprovider
        spring.dubbo.registry=zookeeper://192.168.159.131:2181

        启动

        在provider类中在击main方法所在的类,然后选择run

        程序正常启动不报错

      5. 消费者模块的配置

        1. 消费者consume中pom.xml的配置 ,

          引入接口和spring-boot-starter-web 是指这是一个web模块

          spring-boot-starter-web如果用2.1.5.RELEASE 会报错,先用1.5.3

             <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
          <version>1.5.3.RELEASE</version>
          </dependency>
          <dependency>
          <groupId>com.hcb</groupId>
          <artifactId>dubboapi</artifactId>
          <version>1.0-SNAPSHOT</version>
          </dependency>
        2. 建立配置文件 和provider一样,名字换成consumer就可以

          spring.dubbo.appname=dubboconsumer
          spring.dubbo.registry=zookeeper://192.168.159.131:2181
        3. 建立启动类

          package com.hcb;
          
          import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
          import org.springframework.boot.SpringApplication;
          import org.springframework.boot.autoconfigure.SpringBootApplication; import java.util.concurrent.CountDownLatch; @SpringBootApplication
          @EnableDubboConfiguration
          public class Consumer {
          public static void main(String[] args) {
          SpringApplication.run(Consumer.class,args);
          }
          }
        4. 建立controll类实现接口

          package com.hcb;
          
          import com.alibaba.dubbo.config.annotation.Reference;
          import com.hcb.Service.IHelloService;
          import org.springframework.web.bind.annotation.RequestMapping;
          import org.springframework.web.bind.annotation.RequestParam;
          import org.springframework.web.bind.annotation.RestController; @RestController
          @RequestMapping("/hello")
          public class HelloController {
          @Reference
          IHelloService ihelloService; @RequestMapping
          public String hello(@RequestParam String name){
          return ihelloService.SayHello(name);
          }
          }
        5. 启动消费者

        6. 测试

          浏览器中输入 http://localhost:8080/hello?name=%E6%A1%82%E6%9E%97

          正确显示出来

源码下载地址:

链接:https://pan.baidu.com/s/1WO2BQnsmIxP04mWNZin93A

提取码:5h0w

dubbo zookeeper图解入门配置的更多相关文章

  1. dubbo+zookeeper集群配置

    集群服务注册到多台zookeeper配置: <dubbo:registry protocol="zookeeper" address="10.20.153.10:2 ...

  2. SpringBoot+Dubbo+ZooKeeper+Maven入门实践

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11798626.html 注*** 本实例为仅适合初学者,关于dubbo和springboot以 ...

  3. MAC环境下idea:maven+Spring+Dubbo+Zookeeper简单工程搭建

    : 一:安装软件:tomcatZookeeperDubbo+admin 二:工程: 总工程  API    Pom.xml:不用引用任何东西  Provider    Pom.xml:要denpend ...

  4. Maven+SpringMVC+Dubbo 简单的入门demo配置

    转载自:https://cloud.tencent.com/developer/article/1010636 之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程 ...

  5. dubbo+zookeeper伪集群配置

    zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一个主控.协 ...

  6. 170328、Maven+SpringMVC+Dubbo 简单的入门demo配置

    之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程序猿来说,真是一个好消息.最近有时间了,打算做一个demo把dubbo在本地跑起来先. 先copy一段dubbo ...

  7. Dubbo + Zookeeper 简单配置

    Dubbo + Zookeeper Zookeeper 下载及配置 下载到本机/usr/local目录 wget https://mirrors.tuna.tsinghua.edu.cn/apache ...

  8. java:zookeeper集群配置,dubbo

    1.zookeeper集群配置: 2.dubbo:(配置见视频)

  9. (转)Dubbo + Zookeeper入门初探

    一.搭建java和tomcat环境 二.搭建zookeeper 三.搭建dubbo监控中心 四.配置项目 4.1 服务提供方代码 4.2 服务使用方代码 五.测试 2018年2月15日,阿里巴巴的du ...

随机推荐

  1. H5新增input标签

    1.电子邮件 <input type="email" name="email"/> 默认正则:输入内容必须有@符号,@后面必须有内容 2.搜索框 & ...

  2. VSCode 搭建 React Native 环境

    安装 React Native Tools 在插件市场搜索 react 找到 React Native Tools 进行安装: 创建的react-native的工程拖入vscode中 点击F5即可运行 ...

  3. Java 之 字节缓冲流

    一.字节缓冲输出流 java.io.BufferedOutputStream extends OutputStream BufferedOutputStream:字节缓冲输出流. 继承自父类的共性成员 ...

  4. rsync 进行本地拷贝

    带杠还是不带杠 带杠表示拷贝目录里面的内容不包括目录本身 重要的是源路径带不带杠,目标路径没关系 rsync -az /root/test/src/ /root/test/dest/ rsync -a ...

  5. Redis 知识 整理

    简介 安装 启动 注意事项 使用命令 通用命令 数据结构 字符串(string) 哈希(hash) 队列(list) 集合(set) 有序集合(zset) 位图(bitcount) 事务 订阅与发布 ...

  6. Spring Boot 揭秘与实战之RabbitMQ

    Spring Boot 整合 RabbitMQ Spring Boot 整合 RabbitMQ 是非常容易,只需要两个步骤. 首先,在 pom.xml 中增加 RabbitMQ 依赖. <dep ...

  7. 【leetcode】513.Find Bottom Left Tree Value

    原题 Given a binary tree, find the leftmost value in the last row of the tree. Example 1: Input: 2 / 1 ...

  8. 提速1000倍,预测延迟少于1ms,百度飞桨发布基于ERNIE的语义理解开发套件

    提速1000倍,预测延迟少于1ms,百度飞桨发布基于ERNIE的语义理解开发套件 11月5日,在『WAVE Summit+』2019 深度学习开发者秋季峰会上,百度对外发布基于 ERNIE 的语义理解 ...

  9. 织梦阿里云OSS解决方案

    准备工作 申请OSS账号,并且创建一个public-read的bucket.这里需要权限为public-read是因为后面需要匿名访问. 详细步骤 1.开启织梦远程附件功能2.现在织梦还有远程附件还有 ...

  10. python+request 常用基础学习笔记

    1.pycharm,避免控制台输出的json内容中文出现乱码. #注:乱码为Unicode格式:\u6d4b\u8bd5.加入如下代码后正确返回中文:测试 get_result = r.json() ...