Skip to content

Latest commit

 

History

History
830 lines (564 loc) · 29.4 KB

CHANGELOG.md

File metadata and controls

830 lines (564 loc) · 29.4 KB

Changelog

[TOC]

本项目所有重要的变更都必须记录在本文件中。

[0.13.4] - 2022-07-05

修改的特性

  • 负载均衡:一致性hash环负载均衡算法半开节点不加入hash环单独放量
  • 负载均衡:一致性hash环负载均衡算法获取副本节点时进行节点去重
  • 访问限流:对于限流周期除以同步间隔大于25的限流窗口不加速上报
  • 访问限流:修改限流窗口淘汰时间为30s到1分钟
  • 就近访问:API创建时如果关闭了位置信息更新则不等待位置信息
  • 监控上报:根据上报数据量适当增加上报超时时间
  • 日志:支持设置文件大小和数量
  • 支持fork后自动关闭相关fd

修复的BUG

  • 访问限流:修复本地窗口翻转重置远程返回的剩余配额的问题
  • 负载均衡:修复LALB负载均衡算法返回的请求信息多个请求混用的问题
  • 访问限流:修复时间同步计算时间差时未使用正确的数据类型的问题
  • 访问限流:修复时间同步stream未及时释放的问题
  • 访问限流:修复批量初始化超时任务断言上报任务为空的问题
  • 编译优化:修复gcc10编译告警相关问题

[0.13.3] - 2022-05-29

修复的BUG

  • 动态路由: 修复set路由匹配规则在主调set为通配符情况下和golang不同的问题
  • 服务发现: 修复trpc协议首次发送因服务端主动关闭连接还需要等待超时的问题
  • 负载均衡:修复动态权重直接在stream回调中释放自身导致coredump的问题
  • 负载均衡:修复慢启动插件在服务缓存过期时未处理好缓存清理事件导致coredump的问题
  • 故障熔断:修复节点进行网络探测未恢复但熔断状态被过期清理的问题

[0.13.2] - 2022-04-29

添加的特性

  • 负载均衡:一致性ring hash负载均衡算法支持慢启动
  • 编译优化:添加使用Bazel引入polaris cpp的方法

修改的特性

  • 编译优化:修改Json转PB结果兼容最新版本的PB
  • 代码重构:默认不开启时间线程,时间函数区分系统时间和平稳时间使用
  • 代码重构:重构network下Socket实现代码
  • 代码重构:使用std::to_string代替自定义数字转字符串实现
  • 配置优化:服务级配置支持按动态路由、负载均衡、故障熔断等按模块降级到全局配置
  • 代码重构:将实例内部数据拆分成远端、本地、请求级别三部分

[0.13.1] - 2022-03-31

添加的特性

  • 支持配置域名作为埋点服务器
  • 就近访问:支持配置禁止从服务器更新本机位置信息

修改的特性

  • 编译优化:tRPC连接器去除C++17依赖,支持C++11编译
  • 线程优化:去除位置信息同步线程
  • 访问限流:SDK去掉限流模式配置,可选配置限流集群
  • 代码优化:使用C++11自带智能指针替换自定义智能指针
  • 代码优化:优化SDK连接回调定义使用std::function
  • 负载均衡:同服务路由和负载均衡缓存构建多线程互斥构建
  • 编译优化:统一多个Bazel编译目标避免引入冲突
  • C接口:服务发现请求添加元数据路由相关参数

修复的BUG

  • 访问限流:修复计数器ID窗口反向索引由于规则更新被概率性误清理的问题

[0.13.0] - 2022-03-08

添加的特性

  • SDK配置:支持服务级别负载均衡、动态路由、故障熔断、网络探测插件配置
  • 负载均衡:支持在实例变化、路由变化、熔断状态变化时异步刷新负载均衡缓存
  • 动态路由:支持在实例变化、路由变化、熔断状态变化时异步刷新负载均衡缓存
  • 负载均衡:一致性ring hash负载均衡算法支持配置基准权重计算虚拟节点

修改的特性

  • 代码重构:重构SDK上下文插件代码目录
  • 代码重构:将服务路由插件的接口定义移动到内部目录
  • 代码重构:将故障熔断插件的接口定义移动到内部目录
  • 代码重构:使用nullptr替换NULL并使用公司标准格式化代码
  • 配置解析:配置解析失败时输出更详细的错误日志
  • 内部服务:连接北极星服务器失败时上报更详细的错误码
  • 性能优化:去除访问路由和负载均衡缓存时多余的引用计数
  • 性能优化:去掉服务路由和负载均衡缓存获取值类型转换
  • 性能优化:避免动态路由插件链执行时多余路由结果对象交换
  • 性能优化:优化LB插件和路由缓存的查找性能
  • 访问限流:优化上报性能及降低超时报错时内存碎片问题

修复的BUG

  • 动态权重:修复缓存过期时动态权重更新线程安全问题
  • 故障熔断:修复错误率熔断插件在总请求量很小时统计数据被覆盖导致无法恢复的问题
  • 负载均衡:优化一致性hash算法hash值重复计算导致刷hash冲突日志的问题
  • 负载均衡:修复首次熔断以后服务数据触发缓存更新熔断版本号错误的问题
  • 修复对SO_REUSEPORT宏的兼容问题

[0.12.0] - 2022-01-18

添加的特性

  • 服务路由:添加别名路由能力
  • 访问限流:添加支持规则级别批量上报配置

修改的特性

  • 引入C++11语言特性,使用PreC++11业务参考文档PreC++11使用方法
  • 代码重构:引入std::atomic和std::mutex替换pthread实现
  • 代码重构:引入公司最新代码规范标准clang-format文件
  • 性能优化:优化tRpc服务发现接口请求应答内存分配
  • 性能优化:优化服务发现接口的处理逻辑
  • 性能优化:优化时间获取函数实现,避免重复转换
  • 性能优化:优化调用结果上报结构体,避免多余结构体转换
  • 性能优化:优化熔断插件采用无锁map存储实例数据,避免频繁加锁
  • 性能优化:优化调用结果统计插件性能
  • 性能优化:优化负载均衡插件的创建和查找
  • 性能优化:优化Instance默认对象的创建
  • 性能优化:优化服务发现获取服务实例和服务路由数据,避免引用计数

修复的BUG

  • 访问限流:修复限流规则超过20条时规则中如果存在相同的精确匹配值时会相互覆盖的BUG
  • 服务发现:修复服务器返回服务不存在时未重置本地记录的revision的问题
  • 访问限流:修复批量上报任务在限流服务器扩容时未重新进行均衡的问题
  • 编译问题:修复添加编译参数-NDEBUG -Werror=return-type时编译报错的问题
  • 访问限流:修复限流单次上报超时后同步任务重复设置的BUG
  • 访问限流:修复窗口切换时下一次上报时间计算错误的问题
  • 访问限流:修复metric连接在有批量上报任务时仍被释放的问题
  • 修复多进程同时启动时生成的uuid相同导致上报统计不准等问题
  • 动态路由:修复就近路由插件初始化参数的类型和注释
  • 动态权重:修复动态权重数据上报内存泄露问题

[0.11.0] - 2021-12-07

添加的特性

  • 服务注册:服务注册接口支持设置实例位置信息
  • 服务发现:添加服务发现时加载磁盘缓存日志
  • 健康检查:添加主调端主动健康检查
  • 负载均衡:添加全局动态权重实现
  • 服务发现:支持使用trpc请求discover服务器
  • 访问限流:添加批量上报实现

修改的特性

  • Consumer API:重构请求接口pimpl实现
  • Limit API:重构请求接口pimpl实现
  • 服务发现:接口返回的实例内部采用引用计数减少内存分配
  • 优化Bazel编译方式北极星依赖的引入方法
  • 重构grpc client代码,减少多余的方法和参数
  • 服务发现:启动时从磁盘缓存加载revision请求服务器
  • 服务发现:磁盘数据在可用时间内时直接当内存缓存使用
  • Fork:在子进程使用Fork前创建的API对象修改为返回错误码
  • 配置输出时添加输出当前运行目录
  • Instance类的Getter方法添加const修饰符
  • Instance类添加判断是否为IPv6的方法

修复的BUG

  • 服务发现:修复服务过期导致服务发现任务重复执行的问题
  • 故障熔断:修复服务过期导致获取熔断实例探测任务异常的问题
  • 服务缓存:修复服务过期后服务插件实例释放异常的问题
  • 服务缓存:修复服务过期后服务对象释放异常的问题
  • 服务发现:修复Grpc client在PB反序列化失败时重复释放Buffer的问题
  • 编译:修复高版本编译时re2问题
  • 编译:修复32位编译时头文件缺失的问题
  • 配置:修复配置输出到日志时缩进错误的问题
  • 心跳上报:修复Future-Promise共享状态并发问题导致心跳上报失败的BUG
  • 负载均衡:修复LA负载均衡算法上报调用延迟单位不对的BUG
  • 服务发现:修复多线程使用磁盘缓存时概率性超时的问题
  • 服务发现:服务不存在时,有缓存应该还是返回kReturnOk
  • 服务发现:服务发现时添加判断是否正确获取负载均衡插件

[0.10.0] - 2021-9-17

添加的特性

  • 访问限流:分布式限流支持配置配额同步间隔
  • 负载均衡:支持brpc LA动态负载均衡策略
  • 添加兼容L5 API的接口
  • Provider API:添加异步心跳上报接口
  • 负载均衡:支持获取backup节点

修改的特性

  • 访问限流:优化配额上报支持根据上一个周期配额预测同步间隔
  • Provider API:重构请求接口pimpl实现
  • 访问限流:支持从share context创建limit api对象
  • Provider API:部分接口错误增加日志输出
  • 故障熔断:半开请求释放添加服务级别频率和比例控制
  • 支持自定义时间获取函数时不启动ticker线程

修复的BUG

  • 故障熔断:修复网络探测未能正确修改熔断状态到半开的问题
  • 故障熔断:修复TCP探测未能支持不配置探测包的问题
  • 故障熔断:修复网络探测间超时时间不支持单位的问题
  • 修复bazel编译问题
  • 故障熔断:控制半开请求占比不超过5%且至少间隔2s
  • 故障熔断:修复探测超时时间配置支持时间单位
  • 故障熔断:修复探测任务一直访问服务实例数据导致无法过期删除的BUG
  • 服务发现:修复服务发现获取discover实例失败时未重置任务和连接的BUG
  • 故障熔断:修复网络探测成功触发半开后未重置熔断器数据的问题

[0.9.0] - 2021-6-29

添加的特性

  • 访问限流:添加访问限流压测代码
  • 访问限流:添加限流规则索引以加快规则匹配
  • 访问限流:添加拉取规则并返回Json格式规则的接口
  • 访问限流:添加请求配额接口返回当前的配额使用信息
  • 访问限流:获取配额添加接口支持返回当前的是否降级
  • 访问限流:添加获取所有限流规则label的key的接口
  • 规则路由:支持规则使用环境变量进行匹配
  • 规则路由:支持规则使用请求传入的参数进行匹配
  • 规则路由:支持获取路由规则中配置的所有的key
  • 动态路由:添加路由结果统计上报
  • 负载均衡:添加兼容golang sdk的一致性hash环负载均衡算法
  • 负载均衡:一致性hash环算法添加获取副本节点的接口
  • 服务发现:添加USA接入点配置

修改的特性

  • 服务发现:北极星内部服务使用北极星元数据路由筛选实例
  • 服务发现:与Discover连接只在超时时间内没有任何请求返回时才上报超时错误
  • 服务发现:重构超时时间探测策略为单独定义类结构
  • 访问限流:修改限流窗口索引key为结构体避免字符串拼接
  • 负载均衡:重构一致性hash负载均衡算法
  • grpc客户端:添加异步建立连接接口
  • 线程模型:重构Reactor和定时任务定义

修复的BUG

  • 故障熔断:半开放量随机实例解决半开请求不均的问题
  • 访问限流:修复窗口过期后未从缓存中清除的BUG
  • 访问限流:修复窗口过期后未删除counter key反向索引的问题
  • 修复共享模式创建Context时检查限流集群服务的问题
  • 访问限流:修复窗口重连metric server时使用之前缓存的key
  • 访问限流:修复当同步任务超时时无法重新初始化窗口的BUG
  • 访问限流:修复获取metric server节点失败时可能core的问题
  • 负载均衡:修复一致性环hash算法虚拟节点数变更时重复接收hash值的问题

[0.8.0.rc0] - 2021-3-26

添加的特性

  • 访问限流:支持以单机均摊阈值模式配置分布式限流配额
  • 访问限流:支持在限流规则中设置使用的限流集群服务
  • 访问限流:限流窗口支持设置LRU淘汰
  • 访问限流:支持与限流服务器链接超时的情况直接不限流
  • 服务发现:服务实例添加本地Int型ID以支持trpc-cpp索引连接池

修改的特性

  • 访问限流:去除计算配额时依赖服务下的实例数量
  • 访问限流:优化分布式限流配精度,避免误限,超限10%以下
  • 访问限流:去掉在SDK中动态调整分布式配额的能力
  • 访问限流:本地限流支持多限流维度上报监控数据
  • 服务发现:添加服务数据初始化接口支持预拉服务数据
  • 服务发现:优化本地磁盘缓存能力,减少首次服务发现耗时
  • 服务发现:优化请求Discover服务器超时时间逻辑,支持海外访问国内Discover免配置

修复的BUG

  • 编译:修复链接高版本PB报编译错误的问题
  • 编译:修复高版本GCC编译re2和murmurhash报错的问题
  • 服务发现:C接口添加支持金丝雀路由

[0.7.1.rc0] - 2021-3-8

修改的特性

  • 修改内部服务连接失败重试时不选择半开节点
  • SDK上报信息添加创建时间和上报时间
  • 优化服务实例接口避免路由每次获取容器名和SET名时查询map

修复的BUG

  • 服务发现:修复C API未正确支持源服务信息只设置元数据的问题
  • 服务发现:修复服务发现返回的实例信息未正确设置set的问题

[0.7.0.rc0] - 2021-2-4

添加的特性

  • 服务路由:添加元数据路由插件

修改的特性

  • 访问限流:限流窗口同步初始化改成异步初始化

修复的BUG

  • 服务发现:修复服务发现应答未返回服务数据revision的BUG
  • 修复多进程写同一个日志目录时无法正常滚动目录导致日志文件超过限制的问题
  • ProviderApi:修复API内部重试时修改业务传入请求对象的超时时间导致业务复用对象调用出错的问题

[0.6.1] - 2021-1-22

修复的BUG

  • 修复父进程已经创建API对象后,子进程fork后无法创建time_ticker线程的问题
  • 修复Limit API不能与ConsumerAPI和ProviderAPI共享Context的问题
  • 修复grpc连接被服务器超时关闭后,未正确触发grpc stream切换的问题

[0.6.0] - 2021-1-13

修复的BUG

  • 访问限流:修复限流规则禁用以后窗口同步任务未停止的BUG

[0.5.11] - 2020-12-28

添加的特性

  • 服务发现:添加金丝雀路由参数设置接口
  • 服务路由:添加金丝雀服务路由插件
  • 监控上报:添加路由插件调用统计上报

修复的BUG

  • 服务路由:修复分SET路由结果缓存未处理熔断版本变化的问题
  • 服务缓存:修复缓存文件加载时未识别熔断数据文件名的问题
  • 监控上报:修复监控上报应答返回码未正常转换未北极星内部错误码的问题

[0.5.10] - 2020-12-21

添加的特性

  • 监控上报:监控数据添加容器名
  • 监控上报:添加限流配置记录版本变更上报

修改的特性

  • 服务发现:北极星内部服务添加调用返回码上报
  • GRPC:请求头中添加客户端版本信息
  • 服务发现:修改埋点地址只能发现Discover服务

修复的BUG

  • 本地缓存:修复本地缓存目录创建失败的BUG

[0.5.9] - 2020-12-04

添加的特性

  • 服务器连接:添加OA区接入点配置

修改的特性

  • 访问限流:拆分分布式限流服务器连接超时判断逻辑为请求超时和连接相应超时
  • 访问限流:禁用polaris.metric作为分布式限流服务器接入点
  • 访问限流:添加分布式限流上报获取配额请求的超时时间配置
  • 访问限流:分布式限流同步配额线程复用请求
  • 服务器连接:修改内部接入服务就近和熔断策略

修复的BUG

  • SET路由:修复SET路由缓存Key比较函数少判断SET名字的BUG
  • 访问限流:修复分布式限流服务器连接超时关闭后还可能被回调的问题
  • 线程模型:修复Reactor处理太多任务导致fd读写任务堆积的问题
  • GRPC客户端:修复异步释放GRPC客户端时事件回调还可能被触发的BUG

[0.5.8] - 2020-11-27

添加的特性

  • 负载均衡:添加负载均衡算法兼容brpc一致性hash算法
  • 访问限流:添加定时上报被限流数到限流服务器的特性

修改的特性

  • 就近路由:创建API对象时如果文件系统有IP的位置信息则不等待服务器返回位置信息
  • 访问限流:限流时间维度只有1s时首次获取限流无需等待限流窗口在限流服务器初始化
  • 访问限流:限流服务实例不需要进行故障熔断
  • 故障熔断、访问限流:去掉埋点统计服务配置,使用全局熔断和动态限流阈值调整必须显示配置统计服务

修复的BUG

  • API:修复32位编译时由于配置文件inode超过32位导致stat调用失败的BUG
  • 就近路由:修复从服务器获取位置信息未持久化到文件系统的BUG
  • 访问限流:修复限流统计窗口较多导致请求服务器超时连接切换后未建立却发送Acquire请求的BUG
  • 访问限流:修复限流统计记录未正确设置subset和labels的BUG
  • 故障熔断:修复重复获取熔断半开放量数量配置的BUG

[0.5.7] - 2020-11-19

修复的BUG

  • 修复全局变量g_hash_manager导致退出时析构失败的BUG限

[0.5.6] - 2020-11-17

添加的特性

  • 添加限流规则请求、限流、通过次数上报

修改的特性

  • LimitAPI使用分布式限流必须配置限流服务集群才能使用
  • 限流重置窗口时可用配额设置为单机均摊最大值防止误限

[0.5.5] - 2020-11-09

添加的特性

  • 添加限流窗预初始化接口
  • 添加简化使用的限流接口
  • 限流API创建接口支持返回错误信息
  • ConsumerAPI服务实例调用结果支持使用Host:Port上报

修改的特性

  • 简化接入点地址和集群配置
  • 添加与PB2一起编译的方法文档

修复的BUG

  • 修复批量获取实例与获取单实例接口混用时包含不健康实例选项未生效的问题

[0.5.4] - 2020-10-23

添加的特性

  • 支持配置接入点并添加海外接入点
  • 添加限流精度上报样例程序
  • 添加通过字符串创建API对象样例
  • 添加实例熔断集成测试

修改的特性

  • 修复32位编译时代码告警,并添加-Werror编译选项
  • 修改半开放量等待时间,避免请求量小的情况下无法恢复

[0.5.3] - 2020-10-10

添加的特性

  • 添加Maglev一致性hash负载均衡算法
  • 添加直接根据实例数量取模选择服务实例的负载均衡算法
  • 添加限流接口调用统计上报

修改的特性

  • 限流修改默认配额同步间隔为100ms
  • 移除废弃的返回码kReturnNotFound
  • 修复第三方库在gcc8编译时的告警

修复的BUG

  • 限流修复所有服务器不可用以后同步任务无法重新Init的BUG

[0.5.2] - 2020-9-23

添加的特性

  • 支持兼容L5的一致性hash负载均衡算法
  • 单实例服务发现接口支持设置负载均衡类型

修复的BUG

  • 修复一致性hash未正确处理hash冲突的BUG
  • 修复多个SDK对象同时进行缓存持久化写文件内容覆盖的问题

[0.5.1] - 2020-9-21

添加的特性

  • 限流通配符默认分开计数并添加开关支持合并计数
  • 限流支持一次请求申请多个配额
  • 限流记录添加被限流上报和配额调整上报
  • Subset和接口级集中式熔断添加原因上报
  • Subset和接口级集中式熔断添加错误码计算健康度
  • 添加限流和路由性能测试

修改的特性

  • 健康度数据修改为等待Server统一时间下发
  • 修改熔断查询为每个服务自定义间隔触发查询
  • 将Subset和Label定义更改为std::map

修复的BUG

  • 修复setuid以后获取HOME目录失败的BUG
  • 修复限流上报未确认计数没有根据时间重置导致超限的BUG

[0.5.0] - 2020-8-21

添加的特性

  • 优化熔断功能,支持集中式Subset根据错误率和慢调用熔断
  • 优化熔断功能,支持集中式接口级根据错误率和慢调用熔断
  • 优化服务路由,支持Subset手动隔离,支持接口级和Subset级别半开放量
  • 支持根据健康度动态调整权重阈值,健康度支持错误码,慢调用计算
  • 添加接口级集成测试

修改的特性

  • 修改测试代码支持自动清理日志和缓存目录
  • 重新组织代码并修改代码格式以符合代码规范

修复的BUG

  • 修复限流规则未配置标签时没有匹配带任何标签的请求的Bug
  • 修复创建的socket fd为0无法关闭的Bug
  • 修复全局对象在pre-c++11编译时未内存对齐的Bug

[0.4.9] - 2020-7-7

添加的特性

  • C接口添加修改日志级别接口
  • C接口添加通过字符串配置创建API对象的接口
  • 完善测试用例

修改的特性

  • 修改CPP全局静态变量的为局部静态变量且永不析构,支持以静态变量方式创建API对象
  • 重新组织代码并修改代码格式以符合代码规范

修复的BUG

  • 修复分布式限流远程配额失效时间计算错误的BUG
  • 修复分布式限流预热模式更新实例数量时排队时间计算错误的BUG

[0.4.8] - 2020-6-15

修改的特性

  • Makefile添加检查gcc版本支持c++11时使用c++11编译
  • 服务调用统计上报添加错误码
  • API调用统计上报添加错误类型
  • 限流规则兼容action大小写
  • 正则表达式使用google re2实现
  • 就近路由配置字段更新
  • 规则路由去掉源服务规则存在时的检查兼容trpc-cpp透传多环境路由
  • 重新组织Makefile和部分代码目录
  • ServerConnector获取Polaris服务时不等待Location信息

修复的BUG

  • 修复规则不匹配输出源服务规则时未正确判断是否为NULL的BUG
  • 修复echo_provider例子参数解析错误的BUG

[0.4.7] - 2020-6-2

添加的特性

  • 就近路由添加严格就近逻辑
  • ConsumerAPI添加GetAllInstances接口,用于获取控制台可见的全部实例信息

修改的特性

  • 创建API对象时等待位置信息初始化
  • 支持只传入metadata而不传源服务进行服务路由
  • 对从服务器获取的位置信息进行持久化
  • 格式化代码并添加clang-format文件

修复的BUG

  • 修复大批量统计数据上报Monitor时socket被写满导致数据丢弃的bug
  • 修复monitor上报协议不受server connector配置影响
  • 修复规则路由在所有实例被熔断时的降级判断失效的BUG

[0.4.6] - 2020-5-20

修改的特性

  • 首次服务发现时等待位置信息获取应答
  • 默认配置时就近路由本地节点全部不健康由全死全活修改为降级其他区域查找

[0.4.5] - 2020-5-14

添加的特性

  • QPS分布式限流功能

修改的特性

  • 在eventfd不支持时使用pipe进行reactor的唤醒
  • 添加检查__STDC_FORMAT_MACROS防止重定义
  • 在pthread_setname_np不支持的时候不设置线程的名字

[0.4.4] - 2020-5-12

修改的特性

  • 屏蔽限流相关线程和功能
  • 修复服务统计数据上报未正确收集线程局部统计的BUG

[0.4.3] - 2020-5-12

修改的特性

  • 服务发现接口支持传入字符串使用一致性hash负载均衡算法

修复的BUG

  • 修复异步接口未直接提交超时监听任务导致可能在提交前取消超时监听任务的BUG

[0.4.2] - 2020-5-6

添加的特性

  • 支持一致性hash负载均衡算法

修复的BUG

  • 修复Bazel编译
  • 修复内部埋点服务更新过于频繁的问题

[0.4.1] - 2020-4-24

添加的特性

  • 异步获取实例数据未就绪时异步通知
  • Provider/Consumer支持C API接口

修改的特性

  • 获取服务实例请求添加设置Set名称给分Set路由使用
  • 去掉通过请求传入Heartbeat实例

[0.4.0] - 2020-4-15

添加的特性

  • 添加分Set路由插件实现
  • 支持编译32位lib
  • 支持使用低版本gcc编译

修改的特性

  • 修改使用HTTP2与Server通信,去掉grpc库依赖
  • 外部依赖直接提交源码,不再使用submodule,去掉外网依赖
  • 去除c++11依赖
  • 修改内部埋点服务的服务级别插件不受用户配置影响
  • 修改中间结果缓存删除时间默认为1分钟,并支持配置
  • Discover服务更新后通过负载均衡算法获取Discover实例进行切换

修复的BUG

  • 修复规则路由过滤结果未判断是否为空直接进行降级计算导致程序错误的BUG
  • 修复全死全活标记判断错误的BUG

[0.3.11] - 2020-4-2

修改的特性

  • 默认埋点服务器地址由域名改成CVM可漂移IP

[0.3.10] - 2020-4-2

修复的BUG

  • 修复规则路由命中转发时未判断配置的服务名是否为空的BUG
  • 修复日志多线程访问触发日志翻滚出错的BUG

[0.3.9] - 2020-3-31

修改的特性

  • 修改公共头文件里日志宏定义,避免和其他库冲突

修复的BUG

  • 修复服务缓存更新时写入缓存前未更新本地数据指针导致探测线程访问空指针的BUG

[0.3.8] - 2020-3-27

修改的特性

  • 服务不存在时不写文件缓存且删除旧的文件服务缓存

修复的BUG

  • 修复服务发现超时加载服务不存在的数据却返回实例不存在的BUG

[0.3.7] - 2020-3-27

添加的特性

  • 添加错误码区分服务发现时服务不存在和实例不存在两种错误
  • 添加Bazel编译方式

修改的特性

  • 移除c++11 auto的使用
  • 替换c++11 thread为pthread

修复的BUG

  • 修复几处错误使用断言导致语句失效的问题
  • 修复上报线程收集统计数据时未原子交换业务线程的数据导致内存访问异常的BUG

[0.3.4] - 2020-3-5

添加的特性

  • 添加上报启动配置到Monitor
  • 添加上报缓存服务数据版本变化到Monitor
  • 添加上报熔断信息到Monitor
  • 添加上报服务统计数据到Monitor
  • 添加跳过路由插件的接口

修复的BUG

  • 修复获取当前时间函数未原子读当前时间从而导致时间可能回退的问题
  • 修复更新埋点Polaris Server未正确获取路由结果的BUG
  • 修复被删除的服务无法更新到缓存的BUG

[0.3.3] - 2020-2-14

修改的特性

  • 优化服务发现性能

[0.3.2] - 2020-2-11

添加的特性

  • 添加SPP微线程支持
  • 添加服务路由缓存
  • 添加负载均衡缓存
  • 使用域名作为埋点地址进行首次服务发现
  • 添加通过服务元数据控制是否开启就近路由
  • 服务注册和服务发现添加vpc id的支持
  • 服务发现添加参数控制是否分配半开实例
  • 添加配置控制是否开启全是全活

修改的特性

  • 半开实例优先分配只分配选中的实例
  • 变更路由插件出入参减少内存分配
  • ConsumerAPI添加同步返回单个实例接口
  • 调整熔断半开算法
  • 默认关闭探测插件

修复的BUG

  • 修复一些异常场景下内存泄露的BUG

[0.3.1] - 2019-12-11

修改的特性

  • 修改yaml-lib的编译参数,生成更小的lib包
  • 优化随机负载均衡算法性能
  • 优化就近路由性能

修复的BUG

  • 修复初始化探测插件使用的key与设计不一致的BUG
  • 修复初始化服务级别默认配置时key使用错误的BUG
  • 修复随机负载均衡算法去掉权重为0的实例
  • 修复获取服务刷新间隔配置类型错误的BUG

[0.3.0] - 2019-12-04

添加的特性

  • 添加修改日志文件目录的接口
  • 添加流上允许的最大的未应答的请求数配置
  • 添加流上请求的超时时间配置
  • 添加性能测试
  • 服务注册API在网络不可用或服务器异常时根据配置自动重试
  • 就近路由可配置就近匹配级别
  • 添加API统计并上报Monitor

修改的特性

  • 修改接口返回的错误信息定义
  • 修改实例和快速入门文档
  • 修改根据revision请求数据并更新本地缓存
  • 就近路由位置信息字段缺失时总是匹配

修复的BUG

  • 修复流未正确释放导致与Server的连接未能释放的问题
  • 修复服务路由执行结果内存泄露的问题

[0.2.0] - 2019-11-07

添加的特性

  • 添加规则路由实现
  • 添加就近路由实现
  • 添加自动发现并更新PolarisServer的地址

修改的特性

  • 修改服务发现接口
  • 服务注册、反注册、心跳上报接口定义
  • 修改本地缓存接口,支持加载服务实例和服务路由两种数据
  • 修改上下文和服务数据接口
  • 默认日志写到文件
  • 心跳上报使用单独的服务并使用短连接

修复的BUG

  • 修复删除本地缓存中内存中的服务时未同步删除磁盘的数据

[0.1.0] - 2019-09-29

添加的特性

  • 添加示例代码
  • 添加服务发现接口和实现
  • 添加服务注册、反注册、心跳上报接口和实现
  • 添加上下文和配置实现
  • 添加插件接口定义
  • 添加日志接口和默认日志实现
  • 添加基于内存的本地缓存查询实现
  • 添加基于GRPC与Server通信插件实现
  • 添加基于权重轮询的负载均衡插件实现
  • 添加基于连续错误次数的熔断插件实现
  • 添加基于错误率的熔断插件实现
  • 添加基于TCP、DUP、HTTP的探测插件实现
  • 添加SDK支持内核+插件模式