Skip to content

Latest commit

 

History

History
44 lines (31 loc) · 3.71 KB

sirius.md

File metadata and controls

44 lines (31 loc) · 3.71 KB

sirius天狼星

siriusEA 元数据服务器,提供服务发现,全局时钟服务,全局配置服务,全局id服务。sirius 服务是 EA 服务的基础服务, EA 服务都会依赖 sirius 服务。 sirius 服务是基于raft一致性算法实现的,保证了服务的高可用性和一致性。同时 sirius 可以作为独立服务,为集群提供服务发现,全局时钟服务,全局配置服务,全局id服务。

sirius应用

服务发现

服务发现是微服务架构中的一个重要组成部分,服务发现的目的是让服务之间能够相互发现,相互调用。sirius 服务发现功能是基于raft一致性算法实现的, 保证了服务的高可用性和一致性。sirius 服务发现功能支持服务注册,服务发现,服务心跳检测,服务负载均衡等功能。

业界的服务发现方案有很多,melon 集成了部分已知的服务发现方案,如 ·consul。为什么我们还要再造一个轮子,出于以下几个原因:

  • 快速部署 - 服务尽量独立化,闭环化,减少依赖,减少部署复杂度。
  • 多语言支持 - 服务发现是基础服务,需要支持多语言,sirius 服务发现支持多语言,通过 protobuf数据格式和 http协议进行通信,避免多语言之间的依赖 c++支持 二进制protobuf协议。
  • 减少用户心智负担 - 服务发现是基础服务,使用如 etcd, consul等服务发现方案,需要用户自己部署,维护相应的开源软件,接入api,特别是生产环境的运维成本 高,sirius基于 c++开发,在设计时,我们进行高度的模块化设计,大量模块已经下沉到melonturbo北斗各个模块中, 并经过上万个单元测试用例测试通过模块逻辑非常清晰,用户很容易从源码级别对项目有深入的理解, 方便用户进行二次开发。

全局配置服务

全局配置服务是微服务架构中的一个重要组成部分,全局配置服务的目的是让服务之间能够共享配置信息。sirius 全局配置服务与其他配置服务不同的是, sirius 配置服务带有版本控制。在真实的生产环境中,配置的更新通常是一个复杂的过程,需要考虑配置的版本控制,配置的回滚,配置的发布等问题。sirius的配置 服务设计为配置不可变,配置的更新是通过发布新的配置版本,然后通过配置版本进行切换,这样可以保证配置的一致性,配置的可追溯性。通过git仓库同样可以实现 配置的版本控制,但是git仓库在生产环境中使用比较复杂,时效性不高,sirius配置服务是基于raft一致性算法实现的,保证了服务的高可用性和一致性。

全局时钟服务

全局时钟服务在数据的应用中是非常重要的,全局时钟服务可以保证数据的一致性,数据的时序性。sirius 全局时钟服务是基于raft一致性算法实现的, 保证了服务的高可用性和一致性。sirius 全局时钟服务支持全局时钟同步,全局时钟查询,全局时钟更新等功能。

全局id服务

与全局时钟服务类似,全局id服务在数据的应用中是非常重要的,全局id服务可以保证数据的唯一性,数据的时序性。sirius 全局id服务是基于raft一致性算法实现的, 当然任何应用如果有全局的id需求,都可以使用全局id服务sirius 全局id服务支持全局id生成,全局id查询,全局id更新等功能。