废话
之前写CAS的demo,要自己手开很多线程,现在好了有场景了
当多个线程要从服务中心拉取服务并返回时,想要正确的计数当前的访问次数(计数器在修改时只允许当前一个线程操作,不被其他线程影响),加锁
重量级锁,锁计数器
Synchronized(current)
显示的
lock.lock()
//.....
lock.unlock
反正都是加锁为啥不用悲观锁,因为等待时间短所以更乐观锁适用吧,我猜的,但Ribbon的源码就这么写的
还有源码里的%取余找下标,这不是没有权值的轮询吗。。为啥叫随机呢
编写
步骤
- 获取所有服务
- 根据自己编写的规则从服务列表中返回一个
- 测试下
获取所有服务
编写规则
返回一个服务
测试
因为之前的restTemplate使用的ribbon的负载均衡所有只能根据服务名调用,所有在ioc中注入一个新的restTemplate的Bean
controller层调用