- 不再强依赖
sun.misc.Unsafe
- Options:
jupiter.transport.codec.low_copy
->jupiter.io.codec.low_copy
- Netty 升级到 v4.1.27.Final
- Zookeeper 升级到 v3.4.14
- InvokeType.SYNC 合并进 InvokeType.AUTO, 同时支持同步调用以及 CompletableFuture 返回值的异步调用
- 减少 send system call 调用,性能有一定提升,验证阶段
- 不再支持 java7,仅支持 java8 及以上版本
- 移除 AbstractFuture,直接使用 java8 的CompletableFuture
- AbstractRegistryService 中的 ReadWriteLock 替换为 StampedLock 以支持乐观锁
- InvokeType.AUTO, 当你的接口返回值是一个 CompletableFuture, 自动转成异步调用, 否则为同步调用
- Bug fix: [Object[] 包含 null 时序列化/反序列化错误] (#73 (comment))
- Bug fix: TCP_FASTOPEN_CONNECT报错
- Bug fix: LowCopyProtocolEncoder throw NPE
- 增加针对Linux平台的一些TCP参数
- Unix域套接字支持
- DefaultInvokeFuture#roundFutures初始容量配置, 避免频繁扩容
- DefaultInvokeFuture#TimeoutScanner优化
- 个别代码重新整理
- writeVarInt优化
- CopyOnWriteGroupList代码重构
- Serialization模块重构
- Bug fix: WeightArray#computeWeightArray
- 负载均衡代码优化
- 优化NettyChannelGroup中的index
- 移除对netty ByteBufAllocator 的配置依赖, 应直接使用netty的配置方式
- 优化String encode/decodeUnsafeUtf8Util
- 优化SystemClock
- Bug fix: 修复并发建立过多连接
- 移除[org.objenesis:objenesis]依赖
- 优化序列化/反序列化过程中的memory-copy
- Bug fix: jupiter-all没引入opentracing
- 删除没必要的ProtoStuffSerializer的外层schema缓存
- Bug fix: AbstractFuture isDone 的问题
- Enhancement: 日志信息缺少关键的错误地址信息
- Update protostuff version: 1.5.2 --> 1.6.0
- Spring环境中开放JOption参数配置
- Add LongSequence 序号生成器
- Bug fix: ProviderInterceptor 参数 {Object result, Throwable failCause} 始终为null
- Bug fix: Spring schema 数组属性注入失败
- Add JupiterSpringClient#ConsumerInterceptor[] consumer端全局拦截器
- ConsumerHook --> ConsumerInterceptor
- Update open-tracing version: 0.31.0-RC1 --> 0.31.0
- Update metrics-core version: 3.1.2 --> 4.0.2
- Update affinity version: 3.0.6 --> 3.1.7
- Update asm version: 5.2 --> 6.0
- Update byte-buddy version: 1.6.3 --> 1.7.9
- Update disruptor version: 3.3.6 --> 3.3.7
- Add CallerRunsExecutorFactory
- Add CloseableExecutor
- Add method JClient#awaitConnections(Class<?> interfaceClass, long timeoutMillis)
- Add method JClient#awaitConnections(Class<?> interfaceClass, String version, long timeoutMillis)
- 感谢 @远墨 提供的图
- 升级Netty版本到4.1.19.Final, Netty v4.1.18.Final有严重bug会导致core-dump
- 移除javassist依赖(netty老版本的TypeParameterMatcher用之)
- 升级Netty版本到4.1.18.Final
- JServiceLoader优化
- OpenTracing支持 #33
- Bug fix: backlog设置无效
- 增加jupiter-extension模块
- JFilter扩展
- 优化: 注册失败的RegisterMeta间隔一段时间再重新入队(AbstractRegistryService)
- 升级Netty版本到4.1.15.Final
- Bug fix: ZookeeperRegistryService#lookup()方法中directory顺序错误, 修正为: group,providerName,version
- Monitor增加ls命令(本地查询发布和订阅的服务信息)
- 防止好不容易画的注释图被格式化毁了
- 升级Netty版本到4.1.14.Final
- Bug fix: zk server闪断导致服务信息丢失, 重新建立连接后无法再次发布该服务 #31
- 优化 AbstractRegistryService.notify()锁粒度
- Spring.schema支持 注册中心类型(实现)配置 #30
- 升级Netty版本到4.1.13.Final
- Spring.schema支持JAcceptor/JConnector配置 #29
- Bug fix: 修复spring-support中<jupiter:property serializerType="xxx" />配置serializerType无效的问题 #27
- 新增模块 jupiter-all #19
- Bug fix: JConnector.ConnectionWatcher#waitForAvailable()返回值不准确
- 升级Disruptor到v3.3.6
- 传输层默认使用java nio, 而不使用netty提供的native epoll/kqueue netty issues#6837
- 集群容错策略的配置细化到方法粒度 #22
- Spring.scheme支持 #21
- 线程亲和性支持 Thread Affinity
- 存在addAndGet场景时, 不使用jupiter自带的Atomic*FieldUpdater, 使用jdk默认的实现, 1.8后续版本jdk使用了intrinsics后更快
- 移除org.jupiter.rpc.model.metadata.ServiceWrapper#connCount, connCount修正为JServer粒度的参数
- 修复权重问题
- 升级Netty版本到4.1.11.Final
- 新增netty-transport-native-kqueue支持 #20
- 升级Netty版本到4.1.9.Final
- 默认注册中心实现jupiter-registry-default序列化/反序列化方式改为可配置的方式
- 不再支持udt
- 简化spring配置 #14
- 优化JServiceLoader实现, 使其可按名字查找实现类