- 服务容错:在多个Spring Boot中,假如每个服务只有一个Spring Boot项目,那么当某一个服务突然崩掉了,会导致整个服务不可用,有几种方法: 1. 集群:一个服务部署多个实例,那么多个Spring Boot项目服务于同一个服务。服务中心只会发送那些可用的ip地址。(你可以理解为DNS解析的过程)。 2. 服务容错:在调用方,可以设置一个兜底的策略,假如发现目标的服务不可用,自己设置一个兜底的策略,例如返回服务器正忙等等。 3. 服务降级:假如被调用方没有完全崩掉,还可以用,但是已经拉满了,可以提前设置一个服务降级策略,例如返回简单的信息。 - 服务调用:刚才提到了服务之间的调用说的是HTTP,那么调用方就需要利用Spring提供的RestTemplate来请求(唯一方式,可以向对应ip发送HTTP请求),这种方式没有问题,就是写了太多的重复代码。然后就出现了RPC框架(Remote Procedure Call),只需要通过简单的注解就可以实现服务的远程调用。把被调用方的Service打包成依赖,然后调用方和被调用方都导入该依赖,只要配置了注解,调用方就可以直接像调用本地的Service一样去调用远程服务的Service。(简单来说就是简化了请求过程)。 调用过程不只是HTTP,还可以使用“消息队列”来进行服务之间的通信。上游服务通过生产的方式向消息队列发送消息,下游业务通通过消费的方式消费消息。这样服务之间就可以通过这种方式交流,而不是HTTP那种接口方式。好处就是可以解耦,削峰等等。

相关推荐

05-15 18:59
门头沟学院 Java
面试最烂的一次,面试官没开摄像头,结束了秒挂自我介绍1. 项目中密码怎么存储的2. 问加密算法(但面试官想问的不是对称和非对称加密)除了MD5加盐加密还有什么方法存密码3. 问我平时多个网站会使用同一个密码吗,平时密码会保存下来吗4. 如何校验密码5. 密码攻击方式有哪些6. 撞库攻击是什么,了解其他网站如何防范撞库攻击吗7. 用户输入账号密码登录的具体流程8. 短信验证码登录,具体怎么实现的9. 去重怎么实现的(说Set不行,必须要说HashSet)10. 问HashSet的底层原理,冲突怎么解决11. HashMap怎么判断内容是相同的12. 哈希表链表转成红黑树要实现什么(绕很久都没答到点子上,最后说要实现Comparator接口)13. 说了一个场景求函数的调用次数,一段代码`static int count = 0; count ++` 会有什么问题14. count ++ 字节码是怎么写的15. 不是线程安全的,那么函数调用1000次,count最后的结果比1000大还是小16. 说使用Synchronized还不行,要说synchronized(this),这边还说错了一点,面试官直接指出错误17. 不是线程安全的,解决方法是什么,追问了好几种18. AtomicInteger怎么实现的19. Get和Post请求的区别20. Get、Post请求报文的结构是什么,都有哪些参数21. 网页上打开pdf,有时是预览,有时是下载,怎么实现(说请求头中的某个参数,这么说也不行,要说出具体的字段)
阿里云一面164人在聊 查看22道真题和解析
点赞 评论 收藏
分享
牛客网
牛客企业服务