Skip to content

Latest commit

 

History

History
384 lines (252 loc) · 12.8 KB

CHANGELOG.adoc

File metadata and controls

384 lines (252 loc) · 12.8 KB

版本

通道说明

Important

Dew有多个版本通道,使用时请谨慎选择:

  1. GA General Availability,正式版本,通过内部测试没有已知错误并且经过生产验证,生产环境首选!

  2. RC Release Candidate,发行候选版本,通过内部测试没有已知错误,可用于生产环境。

  3. Beta 公开测试版本,没有已知的Major类型Bug,但允许存在个别minor类型Bugs,生产环境使用需要谨慎评估!

  4. Alpha 内部测试版本,很早期的测试版本,未经过内部测试,可能存在较多Bugs,此版本类似技术预览版(Technical Preview),切 不可 用于生产环境!

  5. SNAPSHOT 快照版本,类似Nightly版本,更新频繁此不保证质量,切 不可 用于生产环境!

Tip
Dew 版本号遵循 semver 规范。

发行记录

3.0.0-RC(开发中)
Features
  • 删除 Spring Cloud`支持,由 `Kubernetes/K3s + Istio 替代

  • 支持根据Swagger文档自动生成并上传SDk到maven仓库(By sdkgen-maven-plugin 插件)

  • 支持 OpenAPI V3

  • 添加更多功能

Improvement
  • 依赖包升级 Spring Boot:3.x

  • 使用 block list 代替 black list

  • 使用 springdoc-openapi 替换 springfox-swagger

2.1.0-RC
Features
  • 支持自定义annotations/labels/env

  • JDK升级到11

  • 依赖包升级 Spring Boot:2.2.4.RELEASE,Spring Cloud:2.2.1.RELEASE,……

Improvement
2.0.0-RC
Features
  • 升级到Spring Boot 2.x

  • 全面支持Kubernetes容器化微服务架构

  • 引入DevOps流程

  • 独立通知功能到notification

  • 支持MQTT的MQ实现

  • 支持多个Redis连接 [framework-user-manual-cluster-redis-mutli-connection]

  • 支持简单的基于角色的URL拦截功能

  • 支持全局请求内容中字符串自动去前后空格( dew.basic.format.auto-trim-from-req = true

Improvement
  • 核心模块通过checkstyle检查

  • dew-jdbc 被移除,请直接使用其它数据库管理工具

  • cluster-spi-eureka 被移除,请用 cluster-spi-redis 代替其集群选举功能

  • 权限认证Token处理优化 [framework-user-manual-auth]

1.5.1-RC
Improvement
  • 升级 dew-common 允许请求与响应编码不同

Fixed
  • 修复 Dew.Util.getRealIP 错误

1.5.0-RC
Features
  • 使用小泰科技Fork版本做为开源版本

  • 添加领导者选举的Redis实现

  • 添加消息通知(钉钉或邮件)

  • 添加生成系统级(多服务)统一离线文档功能

  • 添加MQ消费的HA功能

  • 默认使用micrometer做为指标采集工具

  • 添加对Scala的支持

Improvement
  • 分布式锁中删除lock、lockWithFun操作

  • 分布式锁由可重入改为不可重入

  • redis增加hash incr操作 和 hash decr操作

  • 增加swagger-bootstrap-ui,优化swaggerUI的显示

  • spring-boot升级至1.5.13.RELEASE版本

  • spring-cloud升级到Edgware.SR4版本

  • dew-common升级到1.4.7版本

  • boot-starter默认启用HTTP服务

  • 移除ShardingJDBC的内容

  • 移除服务脚手架功能

  • 移除mybatis-starter模块

  • 暂时移除Dew JDBC模块

Fixed
  • 修复指标采集内存溢出问题

迁移指南(从1.3.4-RC到此版本)
  • 配置变更: 拆分dew.cluster.distdew.cluster.lockdew.cluster.map

  • 配置变更: dew.cluster.election.config.election-period-sec to dew.cluster.config.election-period-sec

  • 功能变更: 领导者选举、分布式锁、分布式Map的实例化方式由 dew.cluster.election/lock/map 修改成 dew.cluster.election/lock/map.instance(…​)

  • 功能变更: 领导者选举isLeader接口需要等待选举产生后再返回(之前逻辑是每次启动时会设置成false再执行选举)

  • 功能变更: 相同Dew.Info.instance的实例在选举过期周期内重启任能保持原先状态

  • 功能变更: 移除服务脚手架,需要手工添加需要的接口服务

  • 功能变更: 移除mybatis-starter模块,请使用mybatis官方方案

  • 功能变更: swagger-ui.html 变更成 doc.html

  • 功能变更: Dew.Info.instanceUUID修改成服务名@Profile@IP:端口

  • 功能变更: 升级后的Tomcat版本不支持Host中带有'_'这种非规范符号

1.3.4-RC
Features
  • rabbitmq 增加topic exchange

1.3.2-RC
Features
  • 去掉logback-es依赖,使用logstash从日志文件进行采集

1.3.1-RC
Fixed
  • #93 修复mybatis-starter对于sharding-jdbc数据源的强制加载

1.3.0-RC
Features
  • #87 局部使用sharding-jdbc,mybatis实现,增加mybatis-starter模块

  • #89 支持配置提示

  • #91 Dew实例加载机制优化

Improvement
  • #82 metrics指标增加线程、内存、cpu、磁盘等统计

  • #86 ErrorController增加zuul日志追踪支持

Fixed
  • #92 修复logback-elasticsearch日志压力过大时导致的内存泄漏

升级指南
  1. 修改pom.xml中dew版本号为1.3.0-RC

  2. 1.3.0-RC版本中已移除启动类配置,直接用@SpringBootApplication@SpringCloudApplication

  3. 启动类需要的注解不要忘记自行添加,如@EnableTransactionManagement@EnableScheduling

  4. 新增的mybatis-starter模块,详见使用说明

1.2.2-RC
Fixed
  • #45 邮件通知修正

  • #85 日志配置优化

1.2.1-RC
Fixed
  • #38 RabbitMQ消息未设置持久化

  • 使用 统一响应——协议无关 类型时,降级HTTP状态码改为500

1.2.0-RC
Features
  • #75 添加幂等处理功能, #77 可选策略类型Bloom Filter尚在开发中

  • #72 实现针对服务整体及每个接口的TPS、最大/平均/90%响应时间Metrics统计

Improvement
  • #68 支持自定义离线文档文件名

  • #70 更友好地获取本机Host

  • #76 cluster.cache 支持更多类型的操作

  • #53 统一响应——协议无关 降级由 1000 改成 555 以提升兼容性

  • #79 增加是否启用默认文档配置

  • #80 增加注解启用Dew功能

  • Swagger文档去除全局token参数

Fixed
  • #43 swagger2markup-maven-plugin 在使用 spring.content-path 无效

1.1.0-RC 迁移到 1.2.0-RC
  1. 使用 统一响应——协议无关 类型时,UI端由原来只需要获取200状态下的数据改成需要获取 200 和 555 状态下的数据,两者对UI端没有区别。( @See https://rep.360taihe.com/csp/dew-framework/issues/53 )

1.1.0-RC
Features
  • [功能] #45 支持服务调用( Hystrix )异常邮件通知

  • [功能] #51 适配新版 用户权限中心 SDK

  • [功能] #59 #49 #15 统一日志规范,适配 sleuth 日志到 ES

Improvement
  • [优化] #53 统一响应——协议无关 类型的http返回码由统一的200改成 2001000 ,前者表示操作成功或不需要降级的错误,后者表示需要做降级(Hystrix fallback)的错误

  • [优化] #50 Dew JDBC 更好地支持没有 Entity 注解的对象

  • [优化] #52 对于java8时间,url参数转换支持String转LocalDateTime,LocalDate、LocalTime,long转LocalDateTime(但json数据不支持),long转Instant

  • [优化] #55 #58 其它一些优化

1.1.0-beta1 迁移到 1.1.0-RC
  1. 使用 统一响应——协议无关 类型时,UI端由原来只需要获取200状态下的数据改成需要获取 200 和 1000 状态下的数据,两者对UI端没有区别。( @See https://rep.360taihe.com/csp/dew-framework/issues/53 )

1.1.0-beta1
Features
  • [功能] #19 支持局部 ShardingJDBC(由于ShardingJDBC 2.0还未RC,测试发现存在较多问题,此功能需要等待官方RC)

Improvement
  • [优化] 支持Java8时间处理

  • [优化] #34 模块Spring化,boot-core 更名为 boot-starter , cloud-core 更名为 cloud-starter

  • [优化] #40 Dew JDBC 独立成 jdbc-starter , 确保核心模块 boot-starter 更轻量

  • [优化] Dew JDBC 性能优化

  • [文档] #47 添加性能调优章节

Fixed
  • [修正] 统一错误拦截返回指定为 MediaType=APPLICATION_JSON_UTF8 以解决 Feign 调用解码错误

1.0.0-RC/betaX 迁移到 1.1.0

1.1.0 修正了 1.0.0 版本的几个设计缺陷,需要做如下的迁移操作:

  • Maven: Dew 框架的版本修正成 1.1.0-X,目前是 1.1.0-beta1

  • Maven: boot-core 更名为 boot-starter , cloud-core 更名为 cloud-starter

  • 核心代码: com.tairanchina.csp.dew.Dew 包路径改成 com.tairanchina.csp.dew.Dew

  • Dew JDBC 模块(使用MyBatis等其它持久化框架的项目可以忽略)

    • SafeEntity 的创建/更新时间 由 Date 换成了 LocalDateTime

    • 所有 entity 包 迁移到 com.tairanchina.csp.dew.jdbc.entity

    • 使用 JdbcTemplate 原生方法时 原来是: Dew.ds().jdbc.xx ,需要修改成 ((DewDS)Dew.ds).jdbc.xx

1.0.0-RC
Features
  • [功能]支持新版用户权限中心认证适配(* 新版用户权限中心Release后,此功能代码会有一定变更)

  • [功能]新增SqlBuilder用于快速构建SQL语句

  • [移除]由于 Spring Cloud Thrift RPC 测试不够充分,此版本中暂时移除

Improvement
  • [功能]支持rabbit confirm(单条)模式

    ((RabbitClusterMQ)Dew.cluster.mq).publish(String topic, String message, boolean confirm)
    ((RabbitClusterMQ)Dew.cluster.mq).request(String address, String message, boolean confirm)
  • [功能]支持 EnabledColumn 结果反转,EnabledColumn用于标识是否启用状态的注解,默认是true是否用,false是禁用,但有些情况下状态字段会使用`del_flag`表示是否删除,这时需要设置结果反转

  • [功能]统一Body及Url Path/Query的异常捕获

  • [功能] tryLock 支持重入

  • [测试]引入 embedded redis 以支持单元测试

  • [文档]添加 以宠物商店为例的 新手入门 章节

  • [修改]原 dew.dao.base-package 改成 dew.jdbc.base-packages 支持多个路径

Fixed
  • 修正Redis锁 Unlock 处理的线程问题

  • 修正jacoco单元测试覆盖率偏少的问题

1.0.0-beta5
Features
  • 添加服务调用限制(可定义A服务不允许B服务调用,防止服务双向依赖) e.g.

    dew.security.exclude-services:
     - serviceB
     - serviceC
  • 添加对Thrift的支持

  • 支持集群Leader Election(非严格模式)

  • 整合Spring Boot Cache

Improvement
  • 优化CURD脚手架

  • 支持UUID形式的主键

  • 优化注解自定义查询( @Select ),通过测试

  • 支持自定义异常配置,见 异常处理 章节

  • 添加Bean分组校验说明,见 异常处理 章节

  • 添加 Sonar 代码质量检查,配置 sonar.host.url 执行 mvn clean verify sonar:sonar

  • 【需要迁移】使用Druid数据库连接池(注意数据库连接配置变更)

  • 【需要迁移】删除 DaoImpl 兼容性类

  • 【需要迁移】将 Dew.e 移到 Dew.E.e,添加 Dew.E.checkXX`异常检查方法,见 `异常处理 章节

Fixed
  • 修正事务失败,重试成功后还是被回滚的问题

1.0.0-beta4
Features
  • 整合 Spring boot adminTurbine,可直观的监控各个性能及访问指标

  • 添加实验功能:使用注解自定义查询( @Select

Improvement
  • 添加了几个自定义验证方式

  • 添加性能测试报告

  • 移除 DaoImpl ,改用接口 DewDao

Warning
为确保兼容, DaoImpl 在这一版本中未物理移除,如有条件请迁移至 DewDao
1.0.0-beta3
Features
  1. Cluster的MQ添加RabbitMQ SPI

Improvement
  1. 支持自定义http错误码( Dew.e(String code, E ex, StandardCode customHttpCode) )

  2. 对加了字段校验(@Valid)的对象,如果检验失败会返回错误详细

  3. 开放将ResultSet转成对象的方法( ds.convertRsToObj(Map<String, Object> rs, Class<E> entityClazz) )

1.0.0-Beta2
Features
  1. 支持生成Html及PDF版本的离线文档

Improvement
  1. 添加Dubbo整合示例,提供Dubbo服务提供无法处理`声明式事务`的方案

  2. 完善文档并改用asciidoc格式

  3. 统一依赖管理

  4. parent 中添加公司maven库

  5. Hazelcast Client升级到3.8.2

  6. Dew-Common升级到1.3.7

1.0.0-beta1
Features
  1. 多数据源支持,详见说明文档`多数据源支持`章节

Important
原`Dew.ds.xx`接口弃用,改为`Dew.ds().xx`,如需要使用其它数据源请使用`Dew.ds(<DS Name>).xx`
Improvement
  1. 新增`mybatisplus-example`

  2. 改善`Swagger`文档支持

  3. 新增销毁时间支持:boolean tryLock(long waitMillSec, long leaseMillSec)

  4. 锁的等待、销毁时间单位由原来的`秒`改成`毫秒`

Fixed
  1. 修正`tryLock`锁(`Redis`实现),锁被其它线程或JVM占用时等待时间的计算错误