Skip to content

Latest commit

 

History

History
137 lines (90 loc) · 4.21 KB

README.md

File metadata and controls

137 lines (90 loc) · 4.21 KB

此项目是我在学习微服务时写的练手项目,目前是最基本的实现,后续有时间会不断更新。

## 功能模块:

  • 服务注册(Consul):
    服务启动自动注册,服务关闭时自动下线 注册,下线,获取服务: IServiceRegistryManage

  • 网关(Ocelot):
    Consul集成
    服务调用负载均衡
    限流
    熔断
    认证
    聚合所有微服务Swagger
    与配置中心集成

  • 容错(Http):
    熔断
    重试
    超时
    资源隔离
    与配置中心集成(通过在appsetting中配置)

  • 配置中心:
    使用Consul作为配置中心,可区分生产环境测试环境等

  • 日志中心(ELK集成):
    简单集成已实现(log4net)

  • 链路监控(Skywalking):
    链路监控(初版) 请求会话日志聚合(未完成)

  • 事件总线(CAP):
    RabbitMQ作为消息中间件 Mysql作为消息存储

  • Log:
    Log4net: 记录物理日志
    ELK: 每天记录一个index

  • 身份验证:
    jwt方案: 认证,授权,获取用户信息 (ioc注入:IUserHelper)

  • IOC,AOP:
    Autofac: 默认读取当前项目下所有的class注入 (配置文件中需要配置项目名称,可通过NotAOP,NotInject设置不注入,不走切面)
    AOP:
    日志切面: 通过配置文件控制是否开启, 方法需要是虚方法
    事务切面: 通过配置文件控制是否开启, 方法需要是虚方法,并且添加特性[UseTran]

  • ORM: SqlSugar:
    sql日志, 泛型仓储

  • Redis:
    注入: IRedisBasketRepository

  • 全局异常处理:
    采用Filter拦截

  • 实体映射(AutoMapper):
    项目下新建一个Mappers文件夹,继承Profile,在构造函数里创建映射关系即可

命名规范:

  • 类名: 驼峰,首字母大写
    case: UserService, UserHelper
  • 方法/属性: 驼峰,首字母大写
    case: GetUser, ListUser
  • 字段: 驼峰,首字母小写
    case: userService, userHelper
  • 枚举: 驼峰,首字母大写,必须以Enum结尾
    case: UserStatusEnum
    枚举项: 驼峰,首字母大写
    case: Enable, Disable
  • 常量: 驼峰,首字母大写(部分常量使用下划线间隔)
    case: ConsulConfigName, RedisConfigName, Claim_UserID, Claim_UserName

模块截图:

配置中心:

  1. 文件夹:

  1. 配置文件

  1. 配置详情


注册中心

  1. 所有实例

  1. 节点详情


网关

  1. 聚合swagger文档

链路监控

  1. 仪表盘

  1. 拓扑图

  2. 链路追踪

  1. 告警

ELK