集群如何控制并发数呢

问题描述:集群中有A、B两台机器,集群与另一系统C进行通信。
系统C作为服务端最大并发数为50。如何保证集群中两台机器并
发向C发起请求控制在50并发之内。
我的思考:解决方法1:A、B两台机器平分50个并发。2.建一张表,实时监控正在执行任务任务的线程数,让A、B并发总数不大于50.
这两个想法那个靠谱一点,大家可以给点意见建议嘛。

这不就是限流么。第一个方法肯定不好,以后集群扩容呢,C扩容呢,难道还去修改代码。第二个可行,但没必要那么麻烦,还要建表监控线程。搞个令牌桶就行,桶里50个令牌,访问C之前必须拿令牌,用完令牌放回桶里,集群扩容不用修改代码,C扩容就增加桶里令牌数。实现的话,最简单redis实现个阻塞队列就行。

第二种好一些,一台服务器挂掉时仍能维持并发数量