版本记录
doritos.3.1.0
基础框架从
spring-framework
的API层次交互,提升到spring-boot
层面。spring-framework
版本升级为5.0.8
,spring-boot
版本为2.0.4。引入
spring-cloud-config
组件,保持对配置管理中心接入的友好和标准化。默认以
zookeeper
作为配置中心,并与2.3.X
版本框架在zookeeper
中的配置目录分布结构保持一致。引入
spring-cloud-bus
组件,实现应用各节点间的配置和运行实践的通知和推送。以
RabbitMQ
作为消息中间件实现事件的传递。既可以定制应用节点对各类事件的响应,也可以与@RefreshScope
配合使用管理spring-bean
的生命周期。引入
spring-cloud-zookeeper
组件,替换原来直接使用curator-framework
访问zookeeper
。halo框架中所有使用
zookeeper
的地方都统一归到这个组件中完成。通过
curator-x-discovery
实现基于zookeeper
的服务注册发现。基于
spring-cloud-zookeeper
,对curator-x-discovery
的扩展实现。引入
hystrix
作为熔断器组件,实现spring方法的消费熔断。除了引入
hystrix-1.5.12
组件之外,通过hystrix-dashboard
监控展示断路器运行状况。引入
ribbon
作为客户端负载均衡的选择。可以完成对@RestTemplate的调用拦截和负载均衡调度。引入
spring-boot-actuator
。并定制开发了大量的健康检查信号和应用管理功能。打开或定制了redis,数据库,DASC,zookeeper,cxf服务,事件总线,RabbitMQ,kafka等多个组件的健康检查和监控管理功能。
引入了
swagger
,为开发者提供调试本地服务的便捷入口,规范开发者API接口说明的编写。swagger-ui
只会在开发阶段的打包过程中放入。为开发者提供方便的本地服务调试方式。引入了
jib-maven-plugin
,允许开发者动态组建打包程序为docker镜像。在halo框架内部去除所有XML配置。所有装配动作通过java-config实现。
重构
DASC
内部的对象管理,实现了服务的动态管理。实现对
@DascReference
和@DascService
的注解支持。实现对
@CxfReference
和@CxfService
的注解支持。提出按照
XXX-Starter
的模式来组装团队各自通用的依赖包集合,精简系统的pom文件规模。预置了
webapp-starter
,serviceapp-starter
,batchapp-starter
保持向下兼容。提出通过
additional-spring-configuration-metadata.json
文件来描述框架所有的配置项内容。本次升级实现对
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/>
标签删除了qos
,retry
,retryPolicy
几个属性配置。clic-dasc
组件中,ClientRegisterInfo
数据结构发生变化,删除了qos
,retry*
,几个成员配置。clic-log
组件中,@LogConfig
的注解声明改为@LogDetail
。
coldnoodle.2.3.5
由于
DascTracker
的执行会在并发场景下产生顺序一致性问题,为了确保轨迹跟踪代码执行的一致性,引入全局时钟来约束执行顺序。修复了
halo-dasc
在数据库访问阻塞情况下,由于retry的onOpen可能触发rabbitmq的double-ack的问题。在
halo-dasc
的消息订阅Channel上添加ShutdownListener,以日志的形式监控channel的关闭情况。
coldnoodle.2.3.4
修复了
halo-log
中对PinPoint的MDC变量一处特别恶心的BUG。修复了
halo-web
中对web请求解析时,由于载入的MessageConverter
的顺序问题导致解析失败的恶心BUG。
coldnoodle.2.3.3
修改了
halo-auth
的一处可能出现循环依赖的注入点。在日志输出规范中,添加对IP地址内容的输出。
提供
SessionReader
的SPI.可以控制halo-web
组件对session的获取方式。提供
SessionIdParser
的SPI。可以控制halo-auth
中对/web/sessionid
服务调用的sessionid获取方式。
coldnoodle.2.3.3
修改了
halo-auth
的一处可能出现循环依赖的注入点。在日志输出规范中,添加对IP地址内容的输出。
提供
SessionReader
的SPI.可以控制halo-web
组件对session的获取方式。提供
SessionIdParser
的SPI。可以控制halo-auth
中对/web/sessionid
服务调用的sessionid获取方式。
coldnoodle.2.3.2
由于
spring-batch
组件的XMLSchema自身的原因,将<batch:job-repository/>
中原来对max-varchar-length
的属性映射去掉,改为40000。优化DASC服务重试策略的执行过程。
提供DASC服务端的延迟消费策略功能。
优化DASC客户端部分逻辑,避免在客户端代理被调用时,可能由于MQ连接原因产生异常,进而直接导致整体交易失败。
去掉默认了
halo-auth
中对SessionDao
的默认配置。逻辑改为:当在spring容器找不到SessionDAO
实现时,立即抛出异常。为了避免出现kafka日志输出时出现分区写入不均匀的现象,去掉了kafka输出时的Key,由kafka集群来分配写入分区。
对
halo-dasc
做了很多我也不知道是什么东西的优化。
coldnoodle.2.3.1
添加
halo-config
组件,增强配置管理功能,支持配置项运行时变更。升级
curator-framework
版本至4.0.0。支持使用
halo-cxf
组件声明客户端代理时,动态变更address
属性。支持应用系统按照
zk.app.type
配置项分别维护数据库脚本的版本号。修复DASC客户端调用时,在有事务的情况下@Asyncall嵌套之后会触发错误异常的问题。
coldnoodle.2.3.0
改造缓存初始化服务的触发逻辑,重构初始化操作代码,避免产生不必要的异常信息。
向kafka输出日志时,将主机名作为key。
添加DASC调用监控接口规范,允许开发插件对DASC服务调用和响应过程做全交易链路监控。
升级FastJSON版本:1.2.17至1.2.31。
修复框架中,对集合类型toArray方法的错误使用。
文件下载url上添加delete参数,可以控制文件下载后是否删除文件。
对批作业组件的
<schedule/>
标签实现,添加"优雅关闭"支持。在
PropertiesUtils
类上添加"按照正则表达式匹配属性集合"的方法。升级
rabbitmq-client
版本至4.2.0。对
rabbitmq
的连接block
状态添加监听事件。halo-dasc
支持基于多个RabbitMQ实例的调用和消费。增强
halo-dasc
在消息发送操作和事务完成的一致性。对提交未发送的状态有更加健壮的处理。添加对
chopper
框架的支持组件halo-chopper
。解决REST和SOAP服务端异常信息无法传送到浏览器的问题。
重构
halo-cxf
的拦截器代码,按需将REST和SOAP的拦截器逻辑做区分。新增异常报文检查,对
HTTP_STATUS
为200的响应报文也会检查报文头信息。新增
dasc-soag
扩展组件,实现elDASC服务调用向特定监控系统输出监控数据。将
halo-auth
组件中,session管理对redis的依赖关系独立出cache-session
扩展组件。
coldnoodle.2.2.8
完善
halo-tune
组件中对版本号提取的正则表达式规则,让版本号提取识别P
之后的内容。
coldnoodle.2.2.7
在
halo-cache
组件中,添加cache.redis.XXX.password
配置项,支持密码连接redis。修复
halo-dasc
组件在消费端的一个线程竞争性BUG,可能会造成对dasc服务执行状态的误判。
coldnoodle.2.2.6
在
halo-cxf
组件中新增拦截器,提供SOAP服务对CDATA数据的写入功能。在
halo-queue
组件中,为PinPoint监控,提供Observable#subscribe
操作Action的代理执行。
coldnoodle.2.2.5
添加
testOnBorrow
和validateQuery
配置项,避免从连接池中获取数据库连接时产生RecoverableDataAccessException
异常,新增配置项允许每次取连接时做连通性测试。
coldnoodle.2.2.4
修复批作业组件在使用
<schedule/>
标签时,由于忽视了Incrementer的步进造成无法持续执行的问题。修复批作业组件在使用默认的
JobParametersIncrementer
实现时,可能产生run.id找不到导致步进异常的问题。
coldnoodle.2.2.3
配合CSRF攻击防御,在认证组件上添加对sessionid的访问。
新增扩展组件
csrf-firewall
。CSRF攻击防御包。新增扩展组件
auth-uaa
。添加对UAA认证的对接支持。
coldnoodle.2.2.2
修改kafka的jar包版本号:0.8.2.2->0.9.0.1
修复了由于使用本地缓存优化Session读取导致的数据一致性问题。关闭本地缓存。
修复启动/暂停Quartz所有Job时,出现重复操作打印出异常的问题。
coldnoodle.2.2.1
修复批作业任务启动器工具类在处理job的restart和newInstance过程中,可能会丢失job参数列表的问题。
修改kafka的jar包版本号:0.8.2.2->0.9.0.1。
修复kafka日志输出时,logback未预判断kafka连通性,进而造成应用的性能问题。
coldnoodle.2.2.0
重新规划批作业监控组件,原有
batch-support
改为batch-trigger
。将
supports
组件集合分类,分为:core-supports
,business-supports
,develop-supports
。在
message-support
中,添加对消息队列的容错机制。在
header-support
中,为每个REST/SOAP请求添加默认的报文头信息。在
halo-dao
中,添加了初始化连接数和最小连接数的配置。改造核心组件
clic-auth
重新规划整个应用认证与授权体系流程。支持认证协议的可插拔式。
面向supports提供一套对接接口。并提供标准登陆实现,oauth2服务端实现。
支持会话缓存与业务缓存分离。
改造核心组件
clic-dasc
对存在的providerId的场景下,判断providerId是否与当前方法签名相同,进而决定是否发送消息。
新增核心组件
clic-tune
配置项集中管理。
基于zookeeper的心跳服务。
基于flyway,maven,zookeeper,检查数据库与应用节点的程序版本一致性。
新增应用代码模版工程:
xxx-db
使用flyway管理数据库脚本版本基线。
新增扩展组件
batch-trigger
基于http,MQ的批作业触发器组件封装。
新增扩展组件
batch-admin
围绕spring-batch做的批作业监控与管理组件。
新增扩展组件
dbversion-checker
读取数据库基线的版本号
新增扩展组件
session-router
用于对会话缓存的路由分离。
新增扩展组件
auth-classic
halo-auth
的扩展,基于页面登录的授权认证组件。新增扩展组件
auth-oauth2-authorizeserver
halo-auth
扩展,基于oauth2的授权认证组件。新增扩展组件
auth-oauth2-resourceserver
halo-auth
扩展,基于oauth2的资源访问组件。新增扩展组件
health-checker
用于外部代理服务器或负载均衡服务的健康检查服务。
Last updated