Skip to content

Latest commit

 

History

History
107 lines (64 loc) · 3.6 KB

文档.md

File metadata and controls

107 lines (64 loc) · 3.6 KB

介绍

背景

随着时间的推移各种语言与技术百家齐放,同样公司发展技术与架构不停的迭代,入口流量更加难以管理。

多种语言

因历史,发展,技术等原因整个技术体系存在多种语言

多种RPC框架

不同的语言有不同的RPC架构,相同语言也有多种RPC架构框

多种环境

开发环境,测试环境,正式环境,各种云环境的流量管理

流量接入服务治理

在业务流量接入层,也想拥有业务系统的服务注册与发现。

需求

有能力统一所有入口流量,支持多语言多网络协议多RPC框架,能支持业务与技术的流量复杂场景

提供流量管理,监控,提供各种基于流量的各种能力

向管理赋能,运维赋能,测试赋能。

架构

client

目前只支持java的client,目前client的作用主要是注册实例与接口,采集接口信息。支持认证信息穿透,以后还会赋予更多能力

console

elecron的管理中心,对

注册中心

注册中心分为elecron 注册中心与其他注册中心。主要是存放elecron的能力信息与其他基本信息。其他注册中心是已经存在现有技术架构的注册中心,elecron支持这些注册中心,可以方便引入或者切换elecron

core

core是流量接入层,负责流量的接入,识别,处理,转换等。

部署

性能

高性能的注册中心

需要持久化组织与策略数据,所以需要有层级,能持久化,能保证数据唯一行并且高性能的key-value数据库。在众多注册中心与key-value数据库中选择了etcd。

core全程优化
  1. 全流程异步
  2. 异步IO
  3. 内存优化
  4. 不重复创建

高可用

core与console是无状态的,etcd与MySQL自身天然支持高可用

部署

云支持

多协议与RPC的支持

支持单一的网络协议与RPC无法统一流量入口。所以要统一流量入口必须支持常用的网络协议与RPC框架,同时能支持协议之间的转换

注册中心

electron支持两类注册中心,一类是electron依赖的注册中心,一类是RPC框架支持的注册中心,方便用户基于以前的架构快速接入到electron和从其他网关无缝写入到electron

electron注册中心:

  1. etcd
  2. 自研(规划中)

其他注册中心:

  1. nacos(未支持)
  2. consul
  3. eureka

electron-core

RPC能力

electron除了支持一些rpc框架与网络协议之外,还支持应用项目里面一些RPC能力。比如直接读取缓存,把请求发到MQ里面。

能力

从接收到请求到响应请求之间是基于责任链模式的调用模型,支持异步责任链。

具体的能力

console 设计与能力

console作为electron的管理中心,方便用户管理。核心思想是向管理赋能,向测试赋能,向运维赋能。下面的图详细列出了console的各项能力