一、架构体系
首先是前端UI框架,前端UI框架主要是调用数据接口,多服务都访问网关进行数据请求操作。前端框架随意选,无要求。
GateWay,网关负责对所有的请求拦截,鉴权授权,对请求缓存,限流,降级,熔断等操作,保护服务实例,防止服务实例外泄。并且提供负载均衡算法和其他附加功能。这里的框架使用的是Ocelot。
Consul作为服务实例集群注册与发现。能实现服务集群的动态管理,自动检测【比如心跳检测】,自动销毁错误的集群服务实例。这一点比Ngnix要好。
服务集群,可以是相同的代码发布在不同的进程,机器,以及域中,具体的代码逻辑就在这里。
DB,数据库,存储数据。可以分库分表,也可以数据库集群,无限制。
二、服务集群搭建
这里用的典型的接口形式,Model类库层,Service接口类库和Service类库,以及写逻辑的ServiceInstance服务实例。
ServiceInstance服务实例中,需要有些配置的地方。
1、支持传递命令行参数。
2、注册接口中间件,并引用Consul,这样每次当服务实例启动的时候都会向Consul注册,之后consul会主动发起检测调用端口,即接口健康检查,如果接口在单位时间里能正常返回,这断言该接口还生存,如果服务实例挂掉,或者其他原因,导致没有及时响应,则consul会断言该服务接口实例死亡,在60秒或者更久的设定时间【官方文档至少是60秒】,该服务实例会被自动排除。
3、心跳健康检查。
写一个接口,可以直接返回ok,Consul会检查这个接口,如果调用成功,则判定该服务实例还在生存。
4、Consul配置文件,配置好后写入服务实例startup
5、网关配置,具体要看官网:https://ocelot.readthedocs.io/en/latest/index.html
6、添加配置文件。
7、startup配置
8、每个节点模块单独做集群,单独部署。
源代码:链接: https://pan.baidu.com/s/1sPjMNjuLiHSHhSnDH6XeQg 提取码: 7czg
源代码只是基本实现了部分功能,并经过了实际的测试,后期需要使用的朋友,需要自行扩充哈,很多功能还需要继续完善和测试。