名字与配置服务器软件TongNCS
随着互联网技术的发展,传统的应用架构已满足不了实际需求,微服务架构随之产生。微服务这一概念出现于2012年,国外一个软件架构工作组使用了“microservice”一词来描述一种架构模式。2014年,James Lewis和Martin Fowler合写了关于微服务的一篇学术性的文章,详细阐述了微服务,极大地推动了微服务的发展。微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。
在微服务架构下,需要具备极强的动态性及可扩展性,而服务注册与发现机制正是微服务可扩展性的基础。在微服务体系中,服务注册中心是微服务的核心模块,它是微服务架构中对服务的位置信息、心跳信息、元数据信息进行管理的重要基础设施。服务注册中心通过中心化、动态化的方式管理众多微服务实例。
服务注册与发现主要解决了两个问题:
1. 屏蔽、解耦服务之间相互依赖的细节。服务之间的远程调用需要知道对端的IP、端口信息。调用方直接配置被调用方的IP、端口,被调用的IP、端口变化后,调用方也要同步修改。通过服务发现,将服务的IP、端口转化成服务名来调用。
2. 对微服务进行动态配置。微服务架构中,服务数量较多,服务间的相互依赖错综复杂,无论是服务主动停止、意外挂掉,还是因为流量增加对服务实现扩容,这些服务或状态上的动态变化,都需要尽快的通知到被调用方,被调用方采取相应的策略。对于服务注册与发现要实时管理服务的数据和状态,包括服务的注册上线、服务主动下线,异常服务的踢出。
服务发现将服务IP、端口等细节通过服务名抽象给调用者,并动态管理者各个微服务的状态检测、状态更新,服务上线,下线等,这些都是微服务治理的基础,包括,负载均衡,链路跟踪。
作为微服务架构的另一个核心组件,配置中心也在应用开发得到广泛的应用。配置中心的思路就是把项目中各种配置、各种参数、各种开关,全部都放到一个集中的地方进行统一管理,并提供一套标准的接口。当各个服务需要获取配置的时候,就从配置中心进行获取。当配置中心中的各种参数有更新的时候,也能通知到各个服务实时的过来同步最新的信息,使之动态更新。
TongNCS致力于解决微服务中的统一配置、服务注册与发现等问题。它提供了一组简单易用的特性集,帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理,产品同时提供集中的配置管理中心,帮助开发者实现微服务或传统架构下的动态配置读写、配置更新通知、配置实时同步等功能,开发者可以在所有环境中以集中和动态的方式管理所有应用程序或服务的配置信息。
Product architecture
TongNCS由TongNCS开发套件、TongNCS服务器、TongNCS管理控制台三部分组成。
1. TongNCS开发套件
TongNCS开发套件包括所有使用SDK、OpenAPI方式使用TongNCS提供的服务、配置相关功能的软件,TongNCS提供多种语言支持的SDK供开发人员使用,同时提供基于Http协议的OpenAPI,TongNCS包括广泛的开发生态体系,可以方便地在Spring、Springboot、SpringCloud等开发框架中使用TongNCS。
2. TongNCS服务器
TongNCS服务提供统一的系统接入,围绕服务与配置两个主题提供多种技术特性集,服务方面主要包括服务注册、服务发布、服务同步、服务健康检查、路由策略、流量管理等功能,配置方面包括配置创建读取、版本管理、监听管理等功能。
3. TongNCS管理控制台
TongNCS管理控制台基于web图形化方式给开发运维人员提供管理、配置与监控能力。通过管理控制台可对服务service、配置config、命名空间namespace、元数据metadata等实体进行管理与监控,同提供集群管理功能以及用户/角色/权限管理。