栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

基于SpringCloud微服务体系封装的微服务框架

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于SpringCloud微服务体系封装的微服务框架

基于SpringCloud微服务体系封装的微服务框架

文章目录
  • 基于SpringCloud微服务体系封装的微服务框架
  • 前言
  • 一.badger 后端核心组件
  • 二.各包的用途介绍
    • 2.1 badger-core
    • 2.2 badger-web-core
    • 2.3 badger-feign
    • 2.4 badger-swagger
    • 2.5 badger-design
    • 2.6 badger-event-hub
    • 2.7 badger-kafka
    • 2.8 badger-error-record
    • 2.9 badger-cache
    • 2.10 badger-web-starter
  • 三.代码地址


前言

关于SpringCloud微服务框架玩的时间比较久了,工作实践中不断总结,迭代,不知不觉中发现自己一开始写的几个小包已经发展成能适应绝大部分场景的微服务框架了,最近整理了一下,分享给各位.

至于为什么叫honey-badger,取自非洲有个动物叫蜜獾,俗称平头哥,这个动物有一个特点就是:不服就干


一.badger 后端核心组件

1.0.1-SNAPSHOT 版本介绍:

简介:

本项目可以提供以下依赖包:

  • badger-core
  • badger-cache
  • badger-design
  • badger-feign
  • badger-web-core
  • badger-web-starter
  • badger-swagger
  • badger-error-record
  • badger-event-hub
  • badger-kafka
二.各包的用途介绍 2.1 badger-core

该包提供了一些后端公共基础核心依赖,比如:枚举,常量,通用业务异常封装,核心通用注解等

引用使用:


    com.honey
    badger-core
    ${badger.version}

2.2 badger-web-core

该包主要是针对web服务请求做一些封装

  • 增加请求拦截,基于MDC,从请求头中获取相应的参数供日志统一打印
  • 增加了通过AOP将响应体统一封装返回
  • 新增了针对ahas埋点限流异常的捕获,以特定业务异常码GP5429返回,http status为429
{
  "code": "GP5429",
  "message": "too many request"
}  
  • 联合badger-feign包,针对微服务集群内部调用(路径中包含/_private/的并且同时添加注解@Raw都默认为内部调用),http status异常码改为206返回,同时响应体默认不做任何处理,原生返回.不用担心的是,当请求真正返回调用方时,会以正常的业务异常返回,如此操作只是为了降低微服务内部调用成本

引用使用:


    com.honey
    badger-web-core
    ${badger.version}

2.3 badger-feign

基于SpringCloud原生feign封装了该包,该包主要提供一下功能:

  • 与nacos联动,可自动获取服务注册集群,进行路由
  • 针对Feign的请求进行拦截,添加traceId,用来做全链路追踪,便于分布式项目中排错使用
  • 针对Feign调用后的异常返回统一进行拦截,封装,统一打印规范日志,便于分布式项目中排错使用

引用使用:


    com.honey
    badger-feign
    ${badger.version}

2.4 badger-swagger

该Swagger组件主要是基于knife4j 进行扩展而来,拥有了更为绚丽的UI以及丰富的便捷操作,同时支持 用户名+密码 的鉴权

引用使用:


    com.honey
    badger-swagger
    ${badger.version}

2.5 badger-design

该设计模式公共包意在使开发人员更加便利的使用经典设计模式,并降低使用成本,同时也可统一使用规范,目前仅提供了常用的策略模式

引用使用:


    com.honey
    badger-design
    ${badger.version}

2.6 badger-event-hub

核心功能

  • 启动类无注解,无须指定开启event hub功能
  • 事件发送使用注解方式,无代码侵入。同时也支持无AOP的方式,增加灵活度
  • 事件接收listener由Spring Boot自动扫描注册,无须指定,写法和Rabbit/Kafka相似

引用使用:


    com.honey
    badger-event-hub
    ${badger.version}

2.7 badger-kafka

Kafka核心包,目前主要提供了producer的多实例配置,消费者的还未完成

引用使用:


    com.honey
    badger-kafka
    ${badger.version}

2.8 badger-error-record

该异常记录公共包主要是为了使开发人员当遇到业务出现异常错误时兜底记录当时的数据信息,以便事后请求重放或者数据恢复
此公共包提供两种方式供选择

  1. 基于aop的注解方式
    @BadgerNeedErrorRecord
  2. 手动编程方式
    errorRecordHandler.produceErrorRecordMsg(new ErrorRecordHelper<>().getErrorRecord())

引用使用:


    com.honey
    badger-error-record
    ${badger.version}

2.9 badger-cache

该核心包自定义了Spring Cache的核心实现,提供了更为灵活且丰富的缓存能力

主要提供的能力有:

  • 1.缓存配置信息更新便捷
  • 2.远程缓存服务失联时,支持自定义的应对策略:快速失败/跳过异常

引用使用:


    com.honey
    badger-cache
    ${badger.version}

2.10 badger-web-starter

该包主要是针对web服务的POM引用做了简单的聚合,便于精简POM依赖项目

引用使用:


    com.honey
    badger-web-starter
    ${badger.version}

三.代码地址

github.com/haokinglong/honey-badger

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821162.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号