Skip to content
/ hlr Public

封装服务启动所需模块(微服务架构)

Notifications You must be signed in to change notification settings

heliangrui/hlr

Repository files navigation

hlr

功能

功能 组件 优势说明
服务通讯 feign(http-rest), dubbo3(rpc) 服务之间可以采用http-rest内网通讯,也可以继续采用rpc来高并发通讯,基于注册中心进行服务注册和发现,所有的consumer自己在内存里维护目标provider的地址列表,并根据灰度策略和均衡策略进行调用
注册和发现 nacos-discovery(mse) 专注可用性(AP),不追求强一致性(但是也会保障最终一致性)。采用阿里云云产品,可以提供服务高可用性,方便升级扩展
无损下线 spring-cloud-actuator 通过在容器下线之前先调用graceshutdown,摘除注册地址,并通知到所有consumer,然后再关闭服务进程,避免下线过程中的瞬时报错
灰度发布+标签动态路由 spring-cloud-gateway 给需要灰度或者定义路由的服务打tag,然后在请求的时候在header上打tag标签,就可以按照预定的规则定义路由。这样可以做到重要服务可白天发布,开发环境下多个开发人员可以只在自己的version里流转,公共的服务则共享,避免资源浪费
配置管理 nacos-config(开源自建)+ cfg4u 配置集中化治理,版本管理,配置共享,多环境配置,动态配置。继续保留cfg4u提供分布式kv配置能力
限流+熔断 sentinel(开源自建) 在线可视化配置限流/熔断规则,也可以通过nacos-config进行预配置
网关路由 spring-cloud-gateway 配合nacos-config实现在线路由管理,可设置多种断言(可实现ip白名单)和过滤器(统一鉴权,日志输出,地址白名单,用户黑白名单,开发环境带swagger整合能力,链路追踪)
认证鉴权(暂未作) jwt+AzDGCrypt 行业标准协议,结合自研方案,可以做到安全+高效+通用,并提供token刷新机制,服务不需要单独做认证了
生命周期管理 spring-cloud-actuator 多种端点探针,可以替代jmx,减少端口暴露,所有程序都可以配置/actuator/health非常适合作为readiness和liveness探针,而且只要请求经过网关,默认不能访问到actuator
链路追踪 spring-cloud-gateway 所有请求,只要经过gateway,会自动标记跟踪的traceId(不经过gateway也可以手动设置),在后面的微服务调用过程中,都会进行透传,并输出到log4j,请求返回后会在header回写traceId,方便问题查询
接口文档(暂未实现) spring-cloud-gateway+swagger 网关具备查询所有微服务的能力,只要微服务自己集成了swagger,就可以在网关上可以集中化管理所有后面的swaggerui,减少集成的成本
定时任务 @Scheduled spring自带定时任务,简单配置就可以实现强大的定时任务

模块功能测试dome

https://github.com/heliangrui/HlrMsaDome.git

About

封装服务启动所需模块(微服务架构)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages