8000 GitHub - jessin20161124/miniDubboOpen
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

jessin20161124/miniDubboOpen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

已完成功能列表

  • 基于zk服务注册和服务发现
  • 基于netty + json序列化网络通信
  • zk连接复用、netty client连接复用
  • 可以单独使用,也可以与spring boot集成
  • 支持一个类多个版本实现
  • 服务端优雅启动,防止流量过早进来,造成超时。在spring容器启动成功后,再注册到zk上。
  • zk重新连接时,重新注册关注的事件,恢复现场。对于服务端是重新注册;对于客户端是重新订阅
  • netty心跳保活机制,客户端超时断开重连,重连时dubbo invoker不可用,服务端超时关闭无效连接
  • 服务端请求用线程池实现,避免阻塞NioEventLoop
  • shutdown hook。spring容器销毁时,关闭占用的资源,如netty client/netty server。做加法,也得做减法。
  • 服务端优雅下线。在spring容器销毁前(ContextClosedEvent),先从zk取消注册,最后再关闭客户端连接,避免容器销毁时业务请求大量报错。
  • netty client通过计数引用销毁资源。

TODO LIST

    通用需求:

  • zk抖动导致所有服务实例下线优化
  • 支持protobuf序列化
  • 支持http协议通信
  • 其他注册中心支持,如consul/redis
  • Attachment/tag实现

    provider功能:

  • 服务端支持曝光实现多个接口的一个类

    consumer功能:

  • 服务负载均衡算法:随机/轮询/加权,服务同机房路由
  • 集群失败策略:failover/failsafe/fallback

    控制台规划:

  • 服务展示和治理
  • 支持管理服务上下线
  • 支持动态配置和下发

博客参考:

简易版dubbo实现

其他工程:

api miniDubboDemo

更多精彩样例,请关注公众号:

扫一扫

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0