这次主要是对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. Java 之 缓冲流

    一.缓冲流概述 缓冲流,也叫高效流,是对四个 FileXXX 流的增强,所有也有四个流,按照类型分类: 字节缓冲流:BufferedInputStream,BufferedOutputStream 字 ...

  2. Android状态栏和导航栏

    1.隐藏状态栏或导航栏 View decordView = getWindow().getDecorView(); /*SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI ...

  3. echart——关系图graph详解

    VueEchart组件见上一篇 <template> <VueEcharts :options="options" auto-resize /> </ ...

  4. @Transactional 同一个类中无事务方法a()内部调用有事务方法b()的问题

    https://blog.csdn.net/u010235716/article/details/90171802 1. 事务的4种特性       序号 参数 含义1 原子性(Atomicity) ...

  5. c# 值传递

  6. python ORM模块sqlalchemy的使用

    1.安装sqlalchemy pip install sqlalchemy 2.导入必要的包及模块 import sqlalchemy from sqlalchemy.ext.declarative ...

  7. JS函数篇【2】

    什么是函数 函数的作用,可以写一次代码,然后反复地重用这个代码. <h3 onload="add2(1,2,3);add3(4,5,6)"></h3> &l ...

  8. Alpha2版本相互测试

    [作业信息] Q A 作业所属课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign/ 作业要求 https: ...

  9. Go语言的反射

    反射是语言里面是非常重要的一个特性,我们经常会看见这个词,但是对于反射没有一个很好的理解,主要是因为对于反射的使用场景不太熟悉. 一.理解变量的内在机制 1.类型信息,元信息,是预先定义好的,静态的. ...

  10. H5s播放rtsp和rtmp视频

    最近接触的几个项目都有对接视频的功能,目前国内视频厂商以海康和大华为主,其对应的视频流格式也不一致,导致对接起来很麻烦.有幸在客户那接触到一种新的视频对接解决方案,支持Html5标准.废话不多少,看一 ...