farseer-go是基于Golang模块化完整的基础设施框架
,创建现代化Web应用
和APIs
使用目前最为流行的组件,并用模块化技术来使用这些组件。
框架完美支持 DDD领域驱动
的战术设计,如仓储资源库
、应用层事务
、领域事件
、应用层动态WebAPI
。
距离上一次v0.6.0版本,经历51天
,今天终于发布v0.7.0
版本啦。这次发布更新的内容比较多
farseer-gov0.7.0
by 2023.03.03
fs v0.6.0 -> v0.7.0 / 2023.03.03
collections v0.3.0 -> v0.4.0 / 2023.03.03
mapper v0.2.0 ->
cache v0.1.1 -> v0.2.0 / 2023.03.03
cacheMemory v0.1.0 -> v0.2.0 / 2023.03.03
redis v0.1.0 -> v0.2.0 / 2023.03.03
data v0.1.1 -> v0.2.0 / 2023.03.03
eventBus v0.1.0 -> v0.2.0 / 2023.03.03
queue v0.1.0 -> v0.2.0 / 2023.03.03
tasks v0.1.1 -> v0.2.0 / 2023.03.03
utils v0.2.0 -> v0.3.0 / 2023.03.03
webapi v0.2.0 -> v0.3.0 / 2023.03.03
etcd v0.1.0 ->
rabbit v0.1.0 -> v0.2.0 / 2023.03.03
fShedule v0.0.0 -> v0.1.0 / 2023.03.03
async v0.1.0-alpha ->
elasticSearch v0.1.0-alpha ->
本新迭代新增了fShedule
模块,是调度中心2.0的客户端。感兴趣的可以看官方文档
同时FShedule调度中心2.0完整使用了farseer-gov0.7.0
,github开源,也可以帮助大家更好理解farseer-go的使用。
fs v0.7.0
/ 2023.03.03
- 新增:IsDtoModelIgnoreInterface函数
- 新增:
事件通用接口
- 新增:
container.ResolveIns
将现有中实例内的字段做注入操作 - 新增:
日志等级判断
- 新增:增加毫秒打印
- 新增:
时间轮算法
- 新增:控制台颜色打印输出
- 新增:
GetSubNodes
增加对环境变量的支持 - 新增:
ResolveAll
从容器中获取所有实例 - 新增:
健康检查
,不通过则直接退出应用 - 调整:flog.panic,err非nil时才执行
- 调整:配置设置
默认值
时,增加GetSubNodes读取
- 调整:将事件参数移到fs模块
- 调整:订阅函数统一到fs模块
- 调整:打印日志,取消使用chan
- 调整:框架启动回调,增加标题
- 调整:error日志增加源文件、行号输出
- 调整:日志输出格式
- 修复:types.GetRealType获了取真实类型时,需判断值是否为nil
- 修复:容器增加读写锁,解决并发读写问题
collections v0.4.0
/ 2023.03.03
- 新增:List集合增加
AddRange
方法 - 新增:
ReadonlyDictionary
对象 - 调整:序列化实现
- 修复:json反序列时,lock为nil的问题
- 修复:判断是否为空时,同时判断锁是否初始化过
cache v0.2.0
/ 2023.03.03
- 增加:设置定义将
缓存定时同步
- 调整:抽象出
ICacheManager
接口,并注册到容器中 - 调整:重新设计缓存模块
- 调整:注册缓存时,增加ICacheManage返回值
- 调整:修改cacheId为any类型
cacheMemory v0.2.0
/ 2023.03.03
- 调整:抽象出
ICacheManager
接口,并注册到容器中 - 调整:增加Lock锁
- 调整:重新设计缓存模块
- 调整:SetProfiles函数返回cache.ICacheManage[TEntity]类型
- 调整:EnableItemNullToLoadALl重命名为EnableItemNullToLoadAll
- 调整:time.After方式,避免内存泄露
redis v0.2.0
/ 2023.03.03
- 新增:
订阅功能
- 新增:
RegisterEvent
函数,可以通过core.IEvent
接口获取 - 新增:获取原生的客户端
- 新增:
Redis健康检查
- 新增:
选举功能
- 调整:cache缓存
- 调整:SetProfiles增加增加ICacheManage返回值
- 调整:configure.ParseConfig -> configure.ParseString函数名称
- 调整:ToEntity增加exists返回值
- 调整:Redis使用方式,改为redis.IClient接口方式使用
- 调整:time.After方式,避免内存泄露
- 调整:修改cacheId为any类型
- 调整:统一使用fs.Context
data v0.2.0
/ 2023.03.03
- 新增:
UpdateOrInsert
方法 - 新增:
批量写入
- 新增:
数据库健康检查
- 新增:
自动创建表功能
- 调整:configure.ParseConfig -> configure.ParseString函数名称
- 调整:time.After方式,避免内存泄露
- 调整:异常时,不使用panic
- 调整:数据找不到时,不提示
- 调整:日志输出格式
- 调整:空闲连接数为最大连接的1/3
- 调整:重写数据库open逻辑
eventBus v0.2.0
/ 2023.03.03
- 新增:
RegisterEvent
函数,可以通过core.IEvent
接口获取 - 调整:PublishEvent、PublishEventAsync 增加error返回
- 调整:增加try以避免事件函数出现panic异常。
- 调整:事件注册到core.IEvent接口,与redis共用一个接口。
queue v0.2.0
/ 2023.03.03
- 新增:读写锁防止并发读写问题
tasks v0.2.0
/ 2023.03.03
- 优化代码
utils v0.3.0
/ 2023.03.03
- 调整:httpRequest增加statusCode返回
- 调整:httpRequest取消打印错误消息
- 调整:httpRequest取消重试
- 调整:httpRequest自动转换[]byte
- 调整:修改http错误时的说明文字
- 调整:exec/shell ctx 默认第一个参数
- 修复:httpRequest x-www-form-urlencoded错误的body组装
- 修复:有可能导致panic
webapi v0.3.0
/ 2023.03.03
- 新增:增加
https
的支持 - 新增:
DTO
模式下的json Tag自定义字段名称
- 新增:对外使用http包的Request和Response
- 新增:minimalApi入参为
dto模式
时,支持interface注入
- 新增:
开启pprof功能
- 新增:
实现多开实例
- 新增:
实现API函数自动容器注入
- 调整:invoke接口用时
- 调整:构造Action入的函数名为BuildActionInValue
- 调整:注册失败时os.exit改为panic
- 调整:Run函数取地址不再判断第一个参数是否为空
- 调整:改为使用自定义ServeMux对象
- 调整:移除init方法
- 调整:httpContext.Header改为只读字典类型
- 调整:BodyString赋值,交由callResult处理
- 调整:Method支持多个类型,用|分隔,如(POST|GET|PUT|DELETE)
- 调整:修改HttpRequest字段命名
- 优化:优化中间件初始化过程,大幅提升每次API请求的性能。
- 优化:提前确定基础类型,减少运行时判断
- 修复:异常时,无法转换exp为string的错误
- 修复:routing中间件未过滤OPTIONS引起CORS失败的问题
rabbit v0.2.0
/ 2023.03.03
- 调整:time.After方式,避免内存泄露
- 修复:日志格式错误