zoukankan      html  css  js  c++  java
  • dubbo+zookeeper网络架构

    微服务的一般架构图:


    架构图


     使用dubbo+zookeeper实现简化的微服务架构

    dubbo是一个分布式服务框架,是阿里巴巴SOA服务化治理方案的核心框架。zookeeper是一个开源的分布式协调服务,是由雅虎创建的,基于google chubby。

    zookeeper能做什么

    1.数据的发布/订阅(配置中心:disconf)

    2.命名服务

    3.master选举(kafka、hadoop、hbase)

    4.分布式队列

    5.分布式锁

    zookeeper特性

    1.顺序一致性

    从同一个客户端发起的事务请求,最终会严格按照顺序被应用到zookeeper中

    2.原子性

    所有的事务请求的处理结果在整个集群中的所有机器上的应用情况是一致的,也就是说,要么整个集群中的所有机器都成功应用了某一事务、

    要么全都不应用

    3.可靠性

    一旦服务器成功应用了某一个事务数据,并且对客户端做了响应,那么这个数据在整个集群中一定是同步并且保留下来的

    4.实时性

    一旦一个事务被成功应用,客户端就能够立即从服务器端读取到事务变更后的最新数据状态;(zookeeper仅仅保证在一定时间内,近实时)

    zookeeper可以作为dubbo服务的注册中心,两者结合起来可以实现微服务中的 服务注册、发现、负载均衡和健康检查,容错,动态配置管理的功能。

    zk配置说明

    zoo.cfg配置文件分析

    tickTime=2000  zookeeper中最小的时间单位长度 (ms)

    initLimit=10  follower节点启动后与leader节点完成数据同步的时间

    syncLimit=5 leader节点和follower节点进行心跳检测的最大延时时间

    dataDir=/tmp/zookeeper  表示zookeeper服务器存储快照文件的目录

    dataLogDir 表示配置 zookeeper事务日志的存储路径,默认指定在dataDir目录下

    clientPort 表示客户端和服务端建立连接的端口号:2181

    代码说明

    1.下载ZK,开启zk

    本地window系统下载的是:zookeeper-3.4.14,在文件的bin目录下打开zkServer.cmd

    2.建立dubbo工程


    工程目录

            dubbo-api定义接口

           dubbo-consumer1消费端


    消费方配置

            dubbo-provider提供方0

            dubbo-provider1提供方1


    提供方配置

    2个提供方开启成功后,可以查看zk的节点验证


    2个节点数据

    一个提供方端口是20880 ,另外一个提供方端口是20881

    消费方调用是默认采用FailoverClusterInvoker,debug可以看到有2个可调用的节点20880,20881


    可调用的节点

    通过负载均衡策略得到最终的调用方数据,进行调用
    Invoker invoker =this.select(loadbalance, invocation, copyinvokers, invoked);

  • 相关阅读:
    6个laravel常用目录路径函数
    Laravel上传产品图片Uploading img
    Laravel删除产品-CRUD之delete(destroy)
    Laravel编辑产品-CRUD之edit和update
    Laravel展示产品-CRUD之show
    Laravel创建产品-CRUD之Create and Store
    内存泄露从入门到精通三部曲之排查方法篇
    P问题、NP问题、NPC问题、NP难问题的概念
    二维码的生成细节和原理
    一分钟认识GitHub
  • 原文地址:https://www.cnblogs.com/nnavvi/p/11804748.html
Copyright © 2011-2022 走看看