分布式系统

微服务

总结起来微服务就是将一个单体架构的应用按业务划分为一个个的独立运行的程序即服务,它们之间通过HTTP协议进行通信(也可以采用消息队列来通信,如RoocketMQ,Kafaka等),可以采用不同的编程语言,使用不同的存储技术,自动化部署(如Jenkins)减少人为控制,降低出错概率。服务数量越多,管理起来越复杂,因此采用集中化管理。例如Eureka,Zookeeper等都是比较常见的服务集中化管理框架。

微服务的优势

1)将复杂的业务拆分成多个小的业务,每个业务拆分成一个服务,将复杂的问题简单化。利于分工,降低新人的学习成本。
2)微服务系统是分布式系统,业务与业务之间完全解耦,随着业务的增加可以根据业务再拆分,具有极强的横向扩展能力。面对搞并发的场景可以将服务集群化部署,加强系统负载能力。
3)服务间采用HTTP协议通信,服务与服务之间完全独立。每个服务可以根据业务场景选取合适的编程语言和数据库。
4)微服务每个服务都是独立部署的,每个服务的修改和部署对其他服务没有影响。

微服务和SOA的关系

SOA即面向服务的架构,SOA是根据企业服务总线(ESB)模式来整合集成大量单一庞大的系统,微服务可以说是SOA的一种实现,将复杂的业务组件化。但它比ESB实现的SOA更加的轻便敏捷和简单。

分布式

在这里插入图片描述
在这里插入图片描述

zookeeper入门

Zookeeper是一个高性能,开源分布式应用协调的服务,保证分布式系统高效,稳定的运行。它提供了简单原始的功能,分布式应用可以基于它实现更高级 的服务,比如同步,配置管理,集群管理,名空间。
见连接:
https://blog.csdn.net/qq285016127/article/details/80271672

Zookeeper数据模型

zk的数据模型可以理解为linux的文件目录。
每一个节点称之为znode,可以有子节点,也可以有数据。
每个节点分为零时节点和永久节点,临时节点在客户端断开后消失。
每个zk节点都有各自的版本号,可以通过命令来显示节点信息。
每当节点数据发生变化,该节点的版本号会累加(乐观锁)。
删除/修改过时节点,版本号不匹配则会报错。
每个zk节点存储的数据不宜过大,几k
节点可以设置权限acl,通过权限来限制用户的访问。

见连接
https://www.jianshu.com/p/41971dbae604
https://blog.csdn.net/tomato__/article/details/78549368

zookeeper的作用

  1. master节点选举,主节点挂了,从节点接收工作,并保证此节点是唯一的,保证集群的高可用。

  2. 统一配置文件管理,即只需要部署一台服务器,就可以把相同的配置文件更新到其他所有服务器。

  3. 发布与订阅,类似消息队列MQ,dubbo发布者把数据存在znode上,订阅者读取数据。在这里插入图片描述

  4. 提供分布式锁,分布式环境中不同进程之间争夺资源。在这里插入图片描述

  5. 集群管理,集群保证数据的强一直性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值