spring cloud用于开发分布式系统,将系统拆分成很多子系统,子系统互相之间进行请求和调用
eureka、ribbon、feign、zuul、hystrix、链路追踪、其他组件,后面三个主要服务与分布式系统,hystrix可以看到流量,qps、响应延迟之类的
前端发生请求----》网关系统Zuul----》转发请求给后台服务----》后台服务返回json数据----》网关系统Zuul转发给前端工程
Tomcat启动JVM进程(后台服务)----》调用其他服务
服务注册中心eureka:其他服务会进行服务注册
一旦其他服务通过spring boot+内嵌的Tomcat进行启动,当其他服务启动后,会将服务注册到服务注册中心eureka中
当我要去调用他的时候,可以进行服务发现,可以发现到其他服务的服务地址
通过服务注册中心eureka进行服务发现
通过ribbon+feign进行远程RPC的调用(springCloud的框架:ribbon+feign)
其他的服务部署了两台服务器,都会去进行服务注册。通过ribbon进行负载均衡,随机的挑选一台机器,然后通过feign构造http的请求,feign进行RPC调用(发送http请求)