yushuyong / grpc-nebula-java

微服务治理框架Java实现

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

微服务治理框架(Java版)

1. 项目简介

微服务治理框架(Java版),基于开源项目 grpc-java 进行开发,新增如下特性:

  • 服务自动注册与发现。采用zookeeper为注册中心,服务与注册中心之间保持长链接,具有心跳检测机制,能够周期性的检查服务的状态,确保服务可用性状态一致性,可处理服务进程意外终止、服务器宕机等场景。
  • 服务调用负载均衡。对于多实例的服务的调用,提供对多个服务实例的负载均衡调度,实现负载按照预定的调度算法进行调度执行。
  • 服务流量控制。通过设置请求数或连接数上限,动态实现对各服务接口的流控管理。
  • 服务访问控制与黑白名单机制。提供多种形式的服务访问控制策略,能够根据设定的安全策略对调用者进行安全检查,支持黑白名单等安全机制。
  • 服务调用异常处理。当一个服务有多个服务器实例时,如果客户端调用A服务器连续多次出错,框架会自动将了客户端的HTTP/2连接切换到提供相同服务的B服务器。
  • 服务端支持主备切换
  • 服务端支持服务分组、多机房支持
  • 服务端支持注册到多套注册中心
  • 区分内部外部服务,内部服务外部服务分别注册到不同的注册中心

2. 项目背景

微服务治理框架是由东方证券和博云联合开发。

随着东方证券业务的多年发展,已有大量的业务及支撑系统上线运营对外提供服务,服务与服务之间开始呈现复杂的依赖关系,系统运维的复杂度急剧增加。特别是由于以往系统建设主要由各厂商开发等因素的影响,东方证券内部存在大量的异构业务系统,对外暴露的接口也呈现多种形式,进一步增加了系统开发、运维的难度。

东方证券内已经建设或正在建设的业务系统种类繁多,包括网上交易、APP、互联网中台、集中交易、账户系统、清算系统等,除此之外还有很多正在规划的业务系统。各业务系统一般由不同的项目团队或供应商开发,并交付给东方证券的系统运行部门统一运维,在这个过程中存在诸多问题。

针对以上需求,同时根据东方证券大中台能力中心整体建设规划,基于gRPC框架技术,新增服务治理特性,构建微服务治理平台,从而实现东方证券内部及外部服务的统一化管理,构建服务调用关系及拓扑结构,优化改进服务质量。

本次开源的内容为东方证券微服务治理平台的RPC框架。

3. 开发环境搭建与配置

4. 开发手册

About

微服务治理框架Java实现

License:Apache License 2.0


Languages

Language:Java 98.3%Language:C++ 0.7%Language:Starlark 0.4%Language:Shell 0.4%Language:Batchfile 0.1%Language:Python 0.0%Language:Dockerfile 0.0%