你的位置:首页 > 软件开发 > ASP.net > 初见微服务之服务注册与发现

初见微服务之服务注册与发现

发布时间:2016-06-09 06:00:07
什么是服务注册与发现 微服务将传统的"巨石"应用拆分成一个一个的组件应用,每个组件应用提供特定的服务,可以是一个,也可以是多个,并且组件所含服务应该是可以动态扩展的,随着时间推移、系统进化,可任意拆分、合并。 组件化应用和颗粒化的服务, ...

什么是服务注册与发现

   微服务将传统的"巨石"应用拆分成一个一个的组件应用,每个组件应用提供特定的服务,可以是一个,也可以是多个,并且组件所含服务应该是可以动态扩展的,随着时间推移、系统进化,可任意拆分、合并。

   组件化应用和颗粒化的服务,遍布在系统的各个角落,由不同的项目成员进行维护,微服务的核心是化整为零、各司其职,这就要求开发人员不得操作其业务或服务范围以外的数据模型等资源,只能通过接口的访问,使用某一服务。

   由于服务的跨度很大(公司很大的情况下)、数量很多(数以百计甚至更多),为保障系统的正常运行,必然需要有一个中心化的组件完成对各个服务的整合,即将分散于各处的服务进行汇总,汇总的信息可以是提供服务的组件名称、地址、数量等,每个组件拥有一个监听设备,当本组件内的某个服务的状态变化时报告至中心化的组件进行状态的更新。服务的调用方在请求某项服务时首先到中心化组件获取可提供该项服务的组件信息(IP、端口等),通过默认或自定义的策略选择该服务的某一提供者进行访问,实现服务的调用。

   随着分布式系统的发展,出现了越来越多的分布式调度系统,典型的有Zookeeper、Consul、etcd,在分布式系统中需要解决的一个问题即拜占庭将军问题,参考网站8btc(比特币咨询网站)《拜占庭将军问题深入探讨》http://www.8btc.com/baizhantingjiangjun

  其中Zookeeper最为成熟,是Yahoo贡献给Apache基金会的一个顶级开源项目,基于Paxos算法,参考维基百科条目Paxos (computer science) https://en.wikipedia.org/wiki/Paxos_(computer_science),是Hadoop和HBase的重要组件。

   下面一段是官网对于Zk的介绍。

ZooKeeper is a high-performance coordination service for distributed applications. It exposes common services - such as naming, configuration management, synchronization, and group services - in a simple interface so you don't have to write them from scratch. You can use it off-the-shelf to implement consensus, group management, leader election, and presence protocols. And you can build on it for your own, specific needs.

       Zk是为分布式应用设计的一个高性能协调服务,提供了如下的通用服务,如命名、配置管理、通过锁和分组服务,封装成简单易用的接口而无需开发人员从头编写代码。可以拿来即用,应用的领域有取得共识、分组管理、领导者选举和协议呈现。还可以按需自定义功能。

Zk和etcd的比较如下表

 

语言

算法

存储方式

量级

Zookeeper

Java

Paxos

名称空间(文件系统)

etcd

Go

Raft

K-V存储


原标题:初见微服务之服务注册与发现

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录