Skip to content
This repository has been archived by the owner on Jun 6, 2018. It is now read-only.

Overview

Calvin Xiao edited this page Dec 20, 2016 · 30 revisions

1. 设计原则

  • 兼顾简单与高效,支持跨语言的传输层
  • Java First(无代码生成),契约式编程
  • 贴近SpringBoot Restful的开发体验
  • 比Spring Cloud 更好的服务路由与治理能力

2. 传输层设计

1.传输协议:

简单通用的HTTP,支持多路复用与头压缩的HTTP/2。

Netty的封装较为低级,为了快速投入生产,暂时使用Jetty支持。

2.负载协议:

简单通用的JSON,二进制的ProtocolBuf

为了达成 Java First无生成代码的设计原则,均使用Jackson实现(不过Jackson目前只支持Protocolbuf V2)

3.跨语言实现:

以Java为主,HTTP/HTTP2/JSON/ProtocolBuf均有跨语言实现。

Java语言的服务路由功能在客户端实现,而其他语言必须通过Proxy。

3. Java First契约式编程 与 SpringBoot开发体验。

客户端通过服务方提供的SDK,使用接口类直接调用服务。

集成Swagger,在接口上使用Annotation定义,提供在线测试与文档中心功能。

集成SpringBoot。

无代码生成的过程,通过Java Proxy/CGLib反射/Jackson ProtocolBuf等方式实现框架。

4. 服务路由与治理能力

  • 基于ZK/etcd的服务注册与发现

  • 支持权重的负载均衡策略,自定义规则路由

  • 超时,重试,熔断,限流,降级

  • 配置中心集成

  • 分布式调用链监控系统集成

Clone this wiki locally