版本记录

doritos.3.1.0

  1. 基础框架从spring-framework的API层次交互,提升到spring-boot层面。

    spring-framework版本升级为5.0.8spring-boot版本为2.0.4。

  2. 引入spring-cloud-config组件,保持对配置管理中心接入的友好和标准化。

    默认以zookeeper作为配置中心,并与2.3.X版本框架在zookeeper中的配置目录分布结构保持一致。

  3. 引入spring-cloud-bus组件,实现应用各节点间的配置和运行实践的通知和推送。

    RabbitMQ作为消息中间件实现事件的传递。既可以定制应用节点对各类事件的响应,也可以与@RefreshScope配合使用管理spring-bean的生命周期。

  4. 引入spring-cloud-zookeeper组件,替换原来直接使用curator-framework访问zookeeper

    halo框架中所有使用zookeeper的地方都统一归到这个组件中完成。

  5. 通过curator-x-discovery实现基于zookeeper的服务注册发现。

    基于spring-cloud-zookeeper,对curator-x-discovery的扩展实现。

  6. 引入hystrix作为熔断器组件,实现spring方法的消费熔断。

    除了引入hystrix-1.5.12组件之外,通过hystrix-dashboard监控展示断路器运行状况。

  7. 引入ribbon作为客户端负载均衡的选择。可以完成对@RestTemplate的调用拦截和负载均衡调度。

  8. 引入spring-boot-actuator。并定制开发了大量的健康检查信号和应用管理功能。

    打开或定制了redis,数据库,DASC,zookeeper,cxf服务,事件总线,RabbitMQ,kafka等多个组件的健康检查和监控管理功能。

  9. 引入了swagger,为开发者提供调试本地服务的便捷入口,规范开发者API接口说明的编写。

    swagger-ui只会在开发阶段的打包过程中放入。为开发者提供方便的本地服务调试方式。

  10. 引入了jib-maven-plugin,允许开发者动态组建打包程序为docker镜像。

  11. 在halo框架内部去除所有XML配置。所有装配动作通过java-config实现。

  12. 重构DASC内部的对象管理,实现了服务的动态管理。

  13. 实现对@DascReference@DascService的注解支持。

  14. 实现对@CxfReference@CxfService的注解支持。

  15. 提出按照XXX-Starter的模式来组装团队各自通用的依赖包集合,精简系统的pom文件规模。

    预置了webapp-starterserviceapp-starterbatchapp-starter保持向下兼容。

  16. 提出通过additional-spring-configuration-metadata.json文件来描述框架所有的配置项内容。

  17. 本次升级实现对coldnoodle.2.3.5的95%兼容性。不兼容API列表如下:

    • clic-queue组件更名为clic-rabbit

    • clic-rabbit组件所有代码包路径由com.halo.queue改为com.halo.rabbit

    • clic-rabbit组件中,com.halo.queue.api.QueueFactory改为com.halo.rabbit.api.RabbitConnectionFactory

    • clic-rabbit组件中,com.halo.queue.api.QueueWarpperBuilder改为com.halo.rabbit.api.RabbitWarpperBuilder

    • clic-rabbit组件中,com.halo.queue.api.QueueWarpperBuilder改为com.halo.rabbit.api.RabbitWarpperBuilder

    • clic-cache组件中,com.halo.cache.api.CacheService接口所有方法的返回值类型,由原来的com.halo.core.cache.support.redis.holder.*Holder类型,改为com.halo.core.cache.api.*Operations

    • clic-cxf组件中,CDATAReslover类路径由com.halo.core.cxf.impl.outbound变更为com.halo.core.cxf.impl.encode

    • clic-dasc组件中,ResponseHandler接口签名发生一些变化,新增了两个待实现方法。

    • clic-dasc组件中,CallerInterceptor接口发生一些变化,新增一个待实现方法。

    • clic-dasc组件中,<dasc:client/>标签删除了qosretryretryPolicy几个属性配置。

    • clic-dasc组件中,ClientRegisterInfo数据结构发生变化,删除了qosretry*,几个成员配置。

    • clic-log组件中,@LogConfig的注解声明改为@LogDetail

coldnoodle.2.3.5

  1. 由于DascTracker的执行会在并发场景下产生顺序一致性问题,为了确保轨迹跟踪代码执行的一致性,引入全局时钟来约束执行顺序。

  2. 修复了halo-dasc在数据库访问阻塞情况下,由于retry的onOpen可能触发rabbitmq的double-ack的问题。

  3. halo-dasc的消息订阅Channel上添加ShutdownListener,以日志的形式监控channel的关闭情况。

coldnoodle.2.3.4

  1. 修复了halo-log中对PinPoint的MDC变量一处特别恶心的BUG。

  2. 修复了halo-web中对web请求解析时,由于载入的MessageConverter的顺序问题导致解析失败的恶心BUG。

coldnoodle.2.3.3

  1. 修改了halo-auth的一处可能出现循环依赖的注入点。

  2. 在日志输出规范中,添加对IP地址内容的输出。

  3. 提供SessionReader的SPI.可以控制halo-web组件对session的获取方式。

  4. 提供SessionIdParser的SPI。可以控制halo-auth中对/web/sessionid服务调用的sessionid获取方式。

coldnoodle.2.3.3

  1. 修改了halo-auth的一处可能出现循环依赖的注入点。

  2. 在日志输出规范中,添加对IP地址内容的输出。

  3. 提供SessionReader的SPI.可以控制halo-web组件对session的获取方式。

  4. 提供SessionIdParser的SPI。可以控制halo-auth中对/web/sessionid服务调用的sessionid获取方式。

coldnoodle.2.3.2

  1. 由于spring-batch组件的XMLSchema自身的原因,将<batch:job-repository/>中原来对max-varchar-length的属性映射去掉,改为40000。

  2. 优化DASC服务重试策略的执行过程。

  3. 提供DASC服务端的延迟消费策略功能。

  4. 优化DASC客户端部分逻辑,避免在客户端代理被调用时,可能由于MQ连接原因产生异常,进而直接导致整体交易失败。

  5. 去掉默认了halo-auth中对SessionDao的默认配置。逻辑改为:当在spring容器找不到SessionDAO实现时,立即抛出异常。

  6. 为了避免出现kafka日志输出时出现分区写入不均匀的现象,去掉了kafka输出时的Key,由kafka集群来分配写入分区。

  7. halo-dasc做了很多我也不知道是什么东西的优化。

coldnoodle.2.3.1

  1. 添加halo-config组件,增强配置管理功能,支持配置项运行时变更。

  2. 升级curator-framework版本至4.0.0。

  3. 支持使用halo-cxf组件声明客户端代理时,动态变更address属性。

  4. 支持应用系统按照zk.app.type配置项分别维护数据库脚本的版本号。

  5. 修复DASC客户端调用时,在有事务的情况下@Asyncall嵌套之后会触发错误异常的问题。

coldnoodle.2.3.0

  1. 改造缓存初始化服务的触发逻辑,重构初始化操作代码,避免产生不必要的异常信息。

  2. 向kafka输出日志时,将主机名作为key。

  3. 添加DASC调用监控接口规范,允许开发插件对DASC服务调用和响应过程做全交易链路监控。

  4. 升级FastJSON版本:1.2.17至1.2.31。

  5. 修复框架中,对集合类型toArray方法的错误使用。

  6. 文件下载url上添加delete参数,可以控制文件下载后是否删除文件。

  7. 对批作业组件的<schedule/>标签实现,添加"优雅关闭"支持。

  8. PropertiesUtils类上添加"按照正则表达式匹配属性集合"的方法。

  9. 升级rabbitmq-client版本至4.2.0。

  10. rabbitmq的连接block状态添加监听事件。

  11. halo-dasc支持基于多个RabbitMQ实例的调用和消费。

  12. 增强halo-dasc在消息发送操作和事务完成的一致性。对提交未发送的状态有更加健壮的处理。

  13. 添加对chopper框架的支持组件halo-chopper

  14. 解决REST和SOAP服务端异常信息无法传送到浏览器的问题。

  15. 重构halo-cxf的拦截器代码,按需将REST和SOAP的拦截器逻辑做区分。

  16. 新增异常报文检查,对HTTP_STATUS为200的响应报文也会检查报文头信息。

  17. 新增dasc-soag扩展组件,实现elDASC服务调用向特定监控系统输出监控数据。

  18. halo-auth组件中,session管理对redis的依赖关系独立出cache-session扩展组件。

coldnoodle.2.2.8

  1. 完善halo-tune组件中对版本号提取的正则表达式规则,让版本号提取识别P之后的内容。

coldnoodle.2.2.7

  1. halo-cache组件中,添加cache.redis.XXX.password配置项,支持密码连接redis。

  2. 修复halo-dasc组件在消费端的一个线程竞争性BUG,可能会造成对dasc服务执行状态的误判。

coldnoodle.2.2.6

  1. halo-cxf组件中新增拦截器,提供SOAP服务对CDATA数据的写入功能。

  2. halo-queue组件中,为PinPoint监控,提供Observable#subscribe操作Action的代理执行。

coldnoodle.2.2.5

  1. 添加testOnBorrowvalidateQuery配置项,避免从连接池中获取数据库连接时产生RecoverableDataAccessException异常,新增配置项允许每次取连接时做连通性测试。

coldnoodle.2.2.4

  1. 修复批作业组件在使用<schedule/>标签时,由于忽视了Incrementer的步进造成无法持续执行的问题。

  2. 修复批作业组件在使用默认的JobParametersIncrementer实现时,可能产生run.id找不到导致步进异常的问题。

coldnoodle.2.2.3

  1. 配合CSRF攻击防御,在认证组件上添加对sessionid的访问。

  2. 新增扩展组件csrf-firewall。CSRF攻击防御包。

  3. 新增扩展组件auth-uaa。添加对UAA认证的对接支持。

coldnoodle.2.2.2

  1. 修改kafka的jar包版本号:0.8.2.2->0.9.0.1

  2. 修复了由于使用本地缓存优化Session读取导致的数据一致性问题。关闭本地缓存。

  3. 修复启动/暂停Quartz所有Job时,出现重复操作打印出异常的问题。

coldnoodle.2.2.1

  1. 修复批作业任务启动器工具类在处理job的restart和newInstance过程中,可能会丢失job参数列表的问题。

  2. 修改kafka的jar包版本号:0.8.2.2->0.9.0.1。

  3. 修复kafka日志输出时,logback未预判断kafka连通性,进而造成应用的性能问题。

coldnoodle.2.2.0

  1. 重新规划批作业监控组件,原有batch-support改为batch-trigger

  2. supports组件集合分类,分为:core-supportsbusiness-supportsdevelop-supports

  3. message-support中,添加对消息队列的容错机制。

  4. header-support中,为每个REST/SOAP请求添加默认的报文头信息。

  5. halo-dao中,添加了初始化连接数和最小连接数的配置。

  6. 改造核心组件clic-auth

    • 重新规划整个应用认证与授权体系流程。支持认证协议的可插拔式。

    • 面向supports提供一套对接接口。并提供标准登陆实现,oauth2服务端实现。

    • 支持会话缓存与业务缓存分离。

  7. 改造核心组件clic-dasc

    对存在的providerId的场景下,判断providerId是否与当前方法签名相同,进而决定是否发送消息。

  8. 新增核心组件clic-tune

    • 配置项集中管理。

    • 基于zookeeper的心跳服务。

    • 基于flyway,maven,zookeeper,检查数据库与应用节点的程序版本一致性。

  9. 新增应用代码模版工程:xxx-db

    使用flyway管理数据库脚本版本基线。

  10. 新增扩展组件batch-trigger

    基于http,MQ的批作业触发器组件封装。

  11. 新增扩展组件batch-admin

    围绕spring-batch做的批作业监控与管理组件。

  12. 新增扩展组件dbversion-checker

    读取数据库基线的版本号

  13. 新增扩展组件session-router

    用于对会话缓存的路由分离。

  14. 新增扩展组件auth-classic

    halo-auth的扩展,基于页面登录的授权认证组件。

  15. 新增扩展组件auth-oauth2-authorizeserver

    halo-auth扩展,基于oauth2的授权认证组件。

  16. 新增扩展组件auth-oauth2-resourceserver

    halo-auth扩展,基于oauth2的资源访问组件。

  17. 新增扩展组件health-checker

    用于外部代理服务器或负载均衡服务的健康检查服务。

Last updated