1、什么是微服务?
微服务架构就是将以前的单体架构分成多个应用程序,这多个应用程序就成为微服务,每个微服务都运行在自己的进程中(所以每个微服务的线程是不一样的)
2、每个微服务进程都不一样,如何实现微服务间的通信?
1)每个微服务启动的端口都不一样,会出现跨域问题(跨域:出于浏览器,协议、主机、端口,一个不一样都叫跨域,与路径无关,服务器内部调用不算跨域)如何解决跨域?使用网关,比如用nacos,将每个微服务都注册到nacos中心(用来统一访问所有API接口,维护服务),或者使用Nginx做转发。
2)实现微服务间的通信,SpringCloud中服务之间的两种调用Restful接口通信的方式:RestTemplate,需要凭借拼接URL不灵活
优点:
1)配置简单。像Mybatis、SpringMVC等(以前在xml配置文件要配一堆东西)写个yml配置类连接就可以了
2)耦合度低,不会影响其他模块开发。
3)微服务跨平台,可以使用任何一种语言开发。
4)关注于后端代码,然后暴露接口,通过组件通信即可。
缺点:
1)数据管理麻烦,每个微服务可以使用一个数据库。
2)部署、集成测试、性能监控比较麻烦。
4、SpringCloud与SpringBoot的区别?
1)本质上:SpringBoot是一个个单体的微服务,SpringCloud则是关注全局的微服务协调治理框架,将一个个微服务统一管理起来,比如使用nacos让每个服务器联系起来。
2)SpringBoot可以离开SpringCloud独立开发项目,但SpringCloud离不开SpringBoot,属于依赖关系。
5、SpringCloud五大常用组件?
Eureka——服务注册中心,对外暴露自己的地址
Ribbon—— 客服端负载均衡,默认轮询
Hystrix——断路器,用于处理雪崩
Zuul (类似Nginx,反向代理的功能)—— 服务网关
Spring Cloud Config——分布式配置
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。