Giter Site home page Giter Site logo

adonis2014 / grpc-nebula-java Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jonsmall/grpc-nebula-java

0.0 1.0 0.0 2.59 MB

微服务治理框架Java实现

License: Apache License 2.0

Python 0.03% Java 98.33% Shell 0.39% Batchfile 0.09% Dockerfile 0.01% C++ 0.73% Starlark 0.42%

grpc-nebula-java's Introduction

微服务治理框架(Java版)

1. 项目简介

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

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

2. 项目背景

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

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

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

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

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

3. 开发环境搭建与配置

4. 开发手册

grpc-nebula-java's People

Contributors

jaredtan95 avatar shoppingsee avatar tiandaochouqin866 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.