jimu是一个基于.Net6.0开发的微服务框架,旨在提供简单易用的微服务解决方案。该框架参考了众多开源库和思想,充分利用了诸如DotNetty、consul.net、Flurl.Http、Json.net、Log4net和Quartz.net等开源库,支持分布式架构、高并发和负载均衡,实现了服务治理的功能,如服务注册、发现、健康检测和RPC调用。
jimu(积木)的中文名赋予了此框架开发项目的期望:像搭积木一样简单、快速和可控。希望通过jimu框架,使项目安全、可靠、稳定,整体架构可拓展、高并发和分布式。
- 使用 Apache License 2.0 开源协议
- jimu最核心的思想是IOC(控制反转)和DI(依赖注入),通过配置文件使用了autofac将组件注入到框架中,用组件来驱动框架,使框架更具弹性。
- 服务注册与发现: consul
- 动态网关
- 基于DotNetty的RPC
- JWT鉴权
- 负载均衡:轮询
- 容错策略: 重试
- 容器发布docker
- 路由配置:Attribute注解
- 日志记录:log4net, nlog
- Api文档: swagger
- 链路跟踪: skywalking
- RESTful: Attribute注解
- 健康监测
- 文件上传下载:多文件和单文件
- uri跳转: 服务端跳转指定的URL
- ORM:Dapper
- DDD: MiniDDD
- 缓存:Memcached
- 消息队列:RabbitMq
启动consul;
设置Samples/ApiGateway, Samples/Server.Auth, Samples/Server.Order, Samples/Server.User为启动项;
打开http://localhost:54762/swagger/index.html
JimuLog4netOptions: Log4net日志组件
JimuNLogOptions: NLog组件
JwtAuthorizationOptions: Jwt授权
ConsulOptions:使用Consul作为服务发现组件
TransportOptions:服务调用的传输组件
ServiceOptions:服务配置
数据库接入Dapper
MiniDDD是一个轻量级的DDD框架,MiniDDD Repository就是基于该框架的数据仓储,支持以下仓储:
- Dapper
- EF
- SqlSugar
JimuLog4netOptions: Log4net日志组件
JimuNLogOptions: NLog组件
JwtAuthorizationOptions: Jwt授权,支持在客户端实现jwt授权,服务端不需要配置
ConsulOptions:使用Consul作为服务发现组件
DiscoveryOptions:客户端会缓存已发现的服务,设定刷新频率
FaultTolerantOptions:服务调用时的容错机制
HealthCheckOptions:根据已发现服务的IP和端口定时进行服务器心跳监测(客户端主动连接)
LoadBalanceOptions
ServiceProxyOptions
TokenGetterOptions
TransportOptions:服务调用的传输组件
未经允许不得转载:大白鲨游戏网 » jimu 微服务框架简介