1.注册中心挂了,消费者还能不能调用生产者?
注册中心挂了, 消费者依然可以调用生产者。生产者和消费者都会在本地缓存注册中心的服务列表,当注册中心宕机时,消费者会读取本地的缓存数据,直接访问生产者,不走注册中心。
2.dubbo注册中心一般有哪些
zookeeper:采用zookeeper的watch机制实现数据同步
redis:使用hash存储,主key为服务名和类型,hash中的key为url,value为过期时间,基于redis的发布订阅模式实现数据变更。
3.zookeeper如何感知服务下线
服务订阅有poll和push方式。
pull需要客户端定时向注册中心拉去配置;
push指注册中心主动推送数据给客户端;
zookeeper提供了心跳检测,定时向服务提供者发送请求,这个请求是一个scoket长连接,如果长时间无响应,则zookeeper认为该服务提供者下线,并从服务列表中剔除。
zookeeper作为dubbo注册中心时,服务第一次订阅会拉取对应目录下的所有数据,然后在订阅的节点注册一个watch,当目录下节点发生数据变化时,zookeeper会通过watch机制通知客户端,客户端收到通知会重新拉取目录下的全部数据,并重新注册watcher。
4.dubbo负载均衡策略
(1)随机:按照权重随机分配,权重越大分配的几率越大;
(2)轮询:循环调用节点,可以调整节点权重让性能差的节点更少使用;
(3)活跃度:活跃度越低,越优先调用,活跃度相同则进行加权随机;
(4)一致性hash:相同参数的请求总是发送到同一个节点;
5.dubbo有哪些容错策略
6.dubbo有哪些动态代理策略
dubbo默认使用javassist动态字节码生成,创建代理类,也可以通过spi机制配置自己的动态代理策略。