就是用Spring Boot搭建的一个个实际业务的Server。本文假设一个简单的业务场景:总计有2个服务:
在微服务系统里,各服务互相调用,如何让各个服务能找到其它服务?不能用ip地址hardcode, 需要一个注册中心,所有的服务都注册在那里,其它服务就可以通过服务名去互相调用。这样问题就简化成各个服务和服务中心沟通的问题了。 创建一个新服务:Eureka, 添加spring-cloud-starter-eureka-server依赖, 并@EnableEurekaServer. 然后给A和B分别添加@EnableDiscoveryClient.
A可能有多个实例,B在调用A时,就可以根据A的实例负载情况动态调整。 Code
当Api不可用时,会用fallback function做返回值,如果失败的Api Call非常多,会打开Circuit。 Code
Feign可以拦截所有服务间调用,理论上也可以做断路器和负载均衡。 Code
Api网关可以统一整个微服务系统的入口,外部如手机客户端只需访问网关,由网关整合和调用所有的请求。同时网关可以做统一认证,动态路由和负载均衡。 Code
每个服务都有不同环境的配置,如Dev环境的配置和Prod环境的配置,为了让配置更加灵活,我们可以把这些配置放到一个Repo中,然后通过Config-Server去获取这些配置。这样便可以实现更改配置而不需要重启服务。 Code