微服务并不是一定要使用队列和缓存,还是要看应用的性质和类型,一些对于消息丢失或者死信很敏感的应用,比如银行的核心交易系统,就需要对通常队列的使用方式做一定改造,死信也需要处理,因为这可能对应着一笔真正的交易。
从我们的实际经验看来,管理类的,非交易类的应用比较适合使用采用消息队列。实时交易类的用RPC或者Rest API可能会更好。
一个服务熔断了,依赖这个服务的其它服务肯定会受影响,但是没有依赖关系的服务应该不受影响。这也是熔断的意义所在,避免问题蔓延。
在拆分时,建议不要为了拆分而拆分,还是应该遵循高内聚、低耦合的原则。只要确实需要拆分,才做拆分。否则,微服务太多,会带来很大的管理开销。