分布式我的理解概述和dubbo实现简述

什么是分布式?为何使用分布式?

我的有一些浅薄的理解但愿能够批评指正,从概念和应用 两个方面概述:
      1、概念:分布式也叫分布式服务,也就是说 他是 一种面向服务思想的程序设计和架构风格,典型的特色是模块化的开发方式。对业务拆分,程序解耦,以应对咱们网站或者平台 日渐复杂和庞大的实际业务场景。这样有几个个很是实际的好处是:
第1,服务之间解耦,相对独立,提升了程序的 伸缩性 利于咱们 针对业务扩展 的实际场景的开发需求。
2. 经过分布式的独立部署 大大缓解维护工做 与 数据库访问的 压力,
3. 模块化开发能够 把 咱们 都能用到的资源 剥离出来 提升资源的 高复用性。
比如如,流水线的生产方式,将一件复杂繁琐的工程 细分红 简单而高效的小任务。说道这里,咱们就的考虑几个问题,就是应用方面的,好比 分布式服务的管理通讯就是 相对独立的服务与服务之间怎么调用 与合做的,分布式事务的具体实现。
       2、分布式的具体应用
      在分布式的服务治理这块,咱们选择使用的是alibaba的 dubbo框架 实现,由于dubbo比较简单高效,除了能够提供服务还能实现软负载均衡,固然也有别的好比apche的xcf框架,wso2, mule等企业应用轻量级的框架,惋惜我我的经历有限,了解的很少,之后再探讨。
  数据库

通常 咱们 选择 dubbo+zookeeper  第三方插件实现分布式
dubbo的实现原理是:服务在容器中启动时,生产者/service提供方 会暴露本身的服务端口地址 也就是在注册中心--zookeeper 注册本身的服务,消费者若是须要调用服务就到注册中心去找,拿到地址经过反射调用到对应的服务。监控中心会每分钟进行统计。
注册中心:官方推荐zookeeper,固然,也有其余的注册中心能够使用,好比Redis、Multicast、Simple,这里只说zookeeper,其余的之后再整理 详说架构

Zookeeper:
它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。若是从功能简单理解就是 提供分布式的 的树形目录地址服务
建议使用dubbo-2.3.3以上版本的zookeeper注册中心客户端
zk工做流程:生产者/服务提供方 启动时,向dubbo对应的生产者目录写下本身的URL地址(企业通常是 ip+端口)
消费者/服务调用方 启动时,向dubbo订阅生产者地址也就是从zk获取生产者地址,并写下消费者的url
监控中心记录下全部的URL
zk支持的功能:1.当生产者挂掉时,自动删除生产者信息
2.重启时自动恢复注册数据和订阅请求数据
3.会话过时时也会 自动恢复注册和订阅 数据
具体的使用:
当设置<dubbo:registry check="false" />时,记录失败注册和订阅请求,后台定时重试。
可经过<dubbo:registry username="admin" password="1234" />设置zookeeper登陆信息。
可经过<dubbo:registry group="dubbo" />设置zookeeper的根节点,不设置将使用无根树。
支持*号通配符<dubbo:reference group="*" version="*" />,可订阅服务的全部分组和全部版本的提供者。
从2.2.0版本开始缺省为zkclient实现,以提高zookeeper客户端的健状性。
缺省配置:
<dubbo:registry ... client="zkclient" />
或:
dubbo.registry.client=zkclient
或:
zookeeper://10.20.153.10:2181?client=zkclient负载均衡

Curator Zookeeper Registry框架

从2.3.0版本开始支持可选curator实现。
若是须要改成curator实现,请配置:
<dubbo:registry ... client="curator" />
或:
dubbo.registry.client=curator
或:
zookeeper://10.20.153.10:2181?client=curator分布式

Zookeeper单机配置:
<dubbo:registry address="zookeeper://10.20.153.10:2181" />
Or:
<dubbo:registry protocol="zookeeper" address="10.20.153.10:2181" />
Zookeeper集群配置:
<dubbo:registry address="zookeeper://10.20.153.10:2181?backup=10.20.153.11:2181,10.20.153.12:2181" />
Or:
<dubbo:registry protocol="zookeeper" address="10.20.153.10:2181,10.20.153.11:2181,10.20.153.12:2181" />
同一Zookeeper,分红多组注册中心:
<dubbo:registry id="chinaRegistry" protocol="zookeeper" address="10.20.153.10:2181" group="china" />
<dubbo:registry id="intlRegistry" protocol="zookeeper" address="10.20.153.10:2181" group="intl" />模块化

zookeeper工做原理图:

相关文章
相关标签/搜索