整体架构图


使用或对接方


Web及API网关


各业务系统微服务


数据存储


运行环境

微服务与容器化


微服务


利用SpringCloud微服务解决方案,构建一个弹性 、

可伸缩、可扩展性高的系统


容器化


利用K8S&Docker快速部署和管理微服务,并进行

服务的资源隔离与资源伸缩


注册中心


利用spring eureka搭建微服务注册中心,提供服务发现与注册并实

现负载均衡和故障转移。通过Eureka可能轻松的构建一个弹性、 可伸

缩、可扩展性的注册中心。Eureka负 载均衡器,通过对流量、资源使

用等因素,提供了更加合理的加权负载均衡策略服务。Eureka 具有心

跳检测、健康检查和客户端缓存等多种机制提高了服务系统的灵活性


Eureka Server

提供服务注册和发现


Service Provider

服务提供方

将自身服务注册到Eureka,从而使服务消费方能够找到


Service Consumer

服务消费方

从Eureka获取注册服务列表,从而能够消费服务

spring cloud zul|网关


Zuul的核心是过滤器,这些过滤器

类型对应于请求的典型生命周期


PRE:这种过 滤器在请求被路由之前调用。我们可利用这种过滤器实现身

份验证、在集群中选择请求的微服务、记录调试信息等。


ROUTING:这种过滤器将请求路由到微服务。这种过滤器用于构建发送给

微服务的请求,并使用Apache HtpCllen威Nettix Rlboon请求微服务。


POST:这种过滤器在路由到微服务以后执行。这种过滤器可用来为响应添

加标准的HTTP Header.收集统计信息和指标、将响应从微服务发送给客

户端等。


ERROR:在其他阶段发生错误时执行该过滤器。除了默认的过滤器类型,

Zuul还允许我们创建自定义的过滤器类型。例如,我们可以定制一种

STATIC类型的过滤器。直接在Zuu中生成响应,而不将请求转发到后端的

微服务。

Netflix Hystrix


Zuul的核心是过滤器,这些过滤器

类型对应于请求的典型生命周期


PRE:这种过 滤器在请求被路由之前调用。我们可利用这种过滤器实现身

份验证、在集群中选择请求的微服务、记录调试信息等。


ROUTING:这种过滤器将请求路由到微服务。这种过滤器用于构建发送給

微服务的请求,井使用Apache Htpllent或Nettx Rlboon请求微服务。


POST:这种过滤器在路由到微服务以后执行。这种过滤器可用来为响应添

加标准的HTTP Header.收集统计信息和指标、将响应从微服务发送给客

户端等。


ERROR:在其他阶段发生错误时执行该过滤器。除了默认的过滤器类型,

Zuul还允许我们创建自定义的过滤器类型。例如,我们可以定制一种

STATIC类型的过滤器,直接在Zuw中生 成响应,而不将请求转发到后端的

微服务。

配置中心Apollo


Apollo (阿波罗)是携程框架部门门研发的分布式配置中心,

能够集中化管理应用不同环境、不同集群的配置,配置修

改后能够实时推送到应用端,并且具备规范的权限、流程

治理等特性,适用于微服务配置管理场景


提供界面操作管理

统一管理不同环境、不同集群的配置

配置修改实时生效(热发布)

版本发布管理

灰度发布

权限管理、发布审核、操作审计

客户端配置信息监控

全链路日志跟踪


Pinpoint是一-款对Java编写的大

规模分布式系统的APM工具,

追踪每个请求的完整调用链路,

收集调用链路上每个服务的

性能数据


Pinpoint四大组件


Pinpoint-Collector:收集各种性能数据

Pinpoint- Agent:和自己运行的应用关联起来的探针

Pinpoint-Web:将收集到的数据显示成WEB网页形式

HBase Storage:收集到的数据存到HBase中

分布式文件系统   fastdfs


FastDFS是一个开源的高性能分布式文件系统(DFS)。

它的主要功能包括:文件存储,文件同步和文件访问,

以及高容量和负载平衡。主要解决了海量数据存储问题,

特别适合以中小文件(建议范围: 4KB < file_ size <50

0MB)为载体的在线服务。


FastDFS系统有三个角色:跟踪服务器(Tracker Server)、

存储服务器(Storage Server)和客户端(Client)。


Tracker Server:跟踪服务器,主要做调度工作,起到

均衡的作用:负责管理所有的storage server和

group.每个storage在启动后会连接Tracker. 告知

自己所属group等信息,井保持周期性心挑。


Storage Server:存储服务器,主要提供容量和备份服

务:以group为单位,每个group内可以有多台

storage server,数据互为备份。


Cilient:客户端,上传下载数据的服务容,也就是我们

自己的项目所部署在的服务器。

模板引擎    FreeMarker


FreeMarker是一个模板引擎, 一个基于模板生成文本

输出的通用工具,使用纯Java编写FreeMarker被设计

用来生成HTML Web页面,特别是基于MVC模式的应

用程序


FreeMarker的特性:

()不限输出目标

使用FreeMarker可以输出各种文本,如HTML、 XML、 RTF、 Java源代码等等,这样很容易嵌入各种类型的软件产品中。

(2)通用

FreeMarker是轻量级,只需要基本的Java环境,不需要任何的Web或其它环境支持。所以任何Jawa工程都可以通用,

(3)插件式模板载入器

FreeMarker可以从任何源载入模板,如本地文件、数据库等等

(4)按需生成文本

可以将生成的文本流保存到本地文件、作为Emal发送、从Web应用程序发送它返回结Web浏览器。

(5)强大的模板语言

FreeMarker拥有所有常用的指令: include. 1/elsei/eise 循环结构等。

可以在模板中创建和改变变量

几乎在任何地方都可以使用复杂表达式来指定值

(6)通用数据模型

FreeMarker不是直接反射到Java对象,Java对象通过插件式对象封装,以变量方式在模板中显示。

(7)为MVC模式设计

分离可视化设计和应用程序逻辑:分离页面设计员和程序员。

分布式日志服务

flume+ kafka+EL .K


Flume:分布式的日志收集系统,它将各个服务

器中的数据收集起来并送到指定的地方去。

Kafka:接收用户日志的消息队列

Logstash:做日志解析,统- -成json输出给

Elasticsearch

Elasticsearch:实时日志分析服务的核心技术,

一个schemaless,实时的数据存储服务,通过

index组织数据,兼具强大的搜索和统计功能。

Kibana:基于Elasticsearch的数据 可视化组件,

具备超强的数据可视化能力。

容器化部署docker


Images: Docker镜像, 用于创建Docker容器的模板


Container: Docker容器,独立运行的一个或者一组应用


Client: Docker客户端,使用Docker Api与Docker的守护

进程通信。


Host: Docker主机,一个物理或者虚拟的机器用于执行

Docker守护进程和容器


Registiy: Docker仓库,用来保存镜像


Machine: -个简化Docker安装的命令行工具,比如VirtualBox、

Digital Ocean、Microsoft Azure。

动态扩容与缩容


监控中心实时监控每个微服务的压力状况


达到设置阈值则会自动创建并启动新的节点


若微服务压力下去后则会自动释放新增的资源