1. 为什么需要dubbo?
解决url维护的问题。
实现软负载的功能。
自动整理出服务之间的依赖关系。
提供监控平台,监控调用量,以及响应时间。
2. dubbo是什么?
分布式服务框架,提供高性能以及透明化的RPC远程服务调用解决方法,以及SOA服务治理方案。
3.dubbo功能有哪些?
软负载均衡策略:
随机策略。
轮训策略。这两个策略都有可能使所有的请求落到一台响应比较慢的机器上。
一致性哈希。后面讲解
最少活跃调用数。相当于优先使用响应时间最短的。
dubbo服务只进行订阅:
应用场景:可能会用在测试环境的版本比较稳定,但是自己本地的服务可能还存在问题,这时候自己服务需要依赖其他模块
进行测试,所以可以使用只订阅模式。
dubbo服务只进行注册:
应用场景:还未想清楚。
dubbo集群容错:
Failover:失败的时候自动切换到其他服务器,通过retries=2,来设置重试次数。
failefast:快速失败,发起一次调用。
failsafe: 失败安全,出现异常时,直接忽略异常。
failback:失败自动恢复,定时重发。
forking:并行调用多个服务器,只要一个成功就返回。
broadcast cluster:广播调用所有提供者,逐个调用,只要有一个失败就返回。
配置优先级:
消费端 ---》服务端 :reference method ---》service method ---》reference ----》service ---》customer-----》provider
4. dubbo服务最佳实践
分包:
服务接口,请求模型,异常信息放到api里面,符合重用发布等价原则,共用重用原则。
api里面放到spring的引用配置。
粒度:
每一个服务方法代表一个独立的功能,而不是某一个功能步骤,否则会涉及分布式事务。
服务接口建议以业务场景为单位划分,并对相近业务抽象,防止接口暴增。
不建议使用泛型。
5. 源码。。。。