本期推荐的 open-capacity-platform是基于layui+springcloud的企业级微服务框架(用户权限管理,配置中心管理,应用管理…)
项目简介
open-capacity-platform是基于layui+springcloud的企业级微服务框架,其核心的设计目标是分离前后端,快速开发部署,学习简单,功能强大,提供快速接入核心接口能力,其目标是帮助企业搭建一套类似百度能力开放平台的框架;
特点:
- 基于layui前后端分离的企业级微服务架构
- 兼容spring cloud netflix & spring cloud alibaba
- 优化Spring Security内部实现,实现API调用的统一出口和权限认证授权中心
- 提供完善的企业微服务流量监控,日志监控能力
- 通用的微服务架构应用非功能性(NFR)需求,更容易地在不同的项目中复用
- 提供完善的压力测试方案
- 提供完善的灰度发布方案
- 提供完善的微服务部署方案
代码结构
快速开始
环境版本:
JDK安装:
yum install java-1.8.0-openjdk\* -y
Mysql:
wget http://repo.mysql.com//mysql57-community-release-el6-8.noarch.rpm
yum localinstall mysql57-community-release-el6-8.noarch.rpm
项目导入:
选择从
https://gitee.com/owenwangwen/open-capacity-platform 下载到本地的地址
选择open-capacity-platform,鼠标右键,run as maven build …
输入 clean package install ,编译安装
IDEA项目导入流程在更多文档中
启动项目
注册中心
register-center/eureka-server
api网关(全局路由的入口)
api-gateway 和 new-api-gateway
一个是采用zuul ,另一个是采用springcloudgateway,在以后的文档会有介绍,选择其中一个启动就行
认证中心
业务中心
web管理
架构设计图
总体介绍
OCP能力平台满足微服务架构应用的非功能性需求(Non-functional Requirements,NFR),非功能性需求与应用本身无关,在项目开发中积累的与非功能性需求相关的经验,可以更容易地在不同的项目中复用。
服务管理
通过OCP能力平台,可以调用注册中心提供的各种管理接口来实现服务的管理。根据我的经验,服务管理一般包括以下几种操作:
- 服务上下线。当上线一个新服务的时候,可以通过调用注册中心的服务添加接口,新添加一个服务,同样要下线一个已有服务的时候,也可以通过调用注册中心的服务注销接口,删除一个服务。
- 节点添加/删除。当需要给服务新添加节点时候,可以通过调用注册中心的节点注册接口,来给服务新增加一个节点。而当有故障节点出现或者想临时下线一些节点时,可以通过调用注册中心的节点反注册接口,来删除节点。
- 服务查询。这个操作会调用注册中心的服务查询接口,可以查询当前注册中心里共注册了多少个服务,每个服务的详细信息。
- 服务节点查询。这个操作会调用注册中心的节点查询接口,来查询某个服务下一共有多少个节点。
服务治理
通过OCP能力平台,可以调用配置中心提供的接口,动态地修改各种配置来实现服务的治理。根据我的经验,常用的服务治理手段包括以下几种:
- 限流。一般是在系统出现故障的时候,比如像微博因为热点突发事件的发生,可能会在短时间内流量翻几倍,超出系统的最大容量。这个时候就需要调用配置中心的接口,去修改非核心服务的限流阈值,从而减少非核心服务的调用,给核心服务留出充足的冗余度。
- 降级。跟限流一样,降级也是系统出现故障时的应对方案。要么是因为突发流量的到来,导致系统的容量不足,这时可以通过降级一些非核心业务,来增加系统的冗余度;要么是因为某些依赖服务的问题,导致系统被拖慢,这时可以降级对依赖服务的调用,避免被拖死。
服务监控
OCP能力平台一般包括两个层面的监控。一个是整体监控,比如服务依赖拓扑图,将整个系统内服务间的调用关系和依赖关系进行可视化的展示;一个是具体服务监控,比如服务的QPS、AvgTime、P999等监控指标。其中整体监控可以使用服务追踪系统提供的服务依赖拓扑图,而具体服务监控则可以通过Grafana等监控系统UI来展示。