springcloud ,微服务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liu689118/article/details/78962531

       微服务对开发进行了简化,通过将复杂系统切分为若干个微服务来分解和降低复杂度,使得这些微服务易于被小型的开发团队所理解和维护。但是,复杂度并非从此消失。微服务拆分之后,单个微服务的复杂度大幅降低,但是由于系统被从一个单体拆分为几十甚至更多的微服务, 就带来了另外一个复杂度:微服务的连接、管理和监控。

   spring cloud 基于springboot,为我们提供配置管理,服务发现,断路器,代理服务等我们在做分布式开发常用的问题的解决方案。

1.配置管理

    springcloud 提供Config Server ,它在分布式系统开发中外部配置的功能,通过Config Server ,我们可以集中存储所有应用的配置文件。

   spring Cloud 提供注解@EnableConfigServer 来启用配置服务。

2.服务发现

    springcloud 通过Netflix OSS 的Eureka来实现服务发现,服务发现的主要目的是为了让每个服务之间可以相互通讯。Eureka Server为微服务注册中心。

    springcloud使用注解提供Eureka服务端(@EnableEurekaServer) 和客户端(@EnableEurekaClient)。


Eureka服务端(@EnableEurekaServer)
在main函数
@SpringBootApplication
@EnableEurekaServer
@EnableZuulProxy
public class DemoserviceApplication {
public static void main(String[] args) {
SpringApplication.run(DemoserviceApplication.class, args);
}
}


在配置

server.port=8001
spring.application.name=apirouteservice
eureka.client.serviceUrl.defaultZone=http://localhost:8801/eureka/



客户端(@EnableEurekaClient)

@RestController
@EnableEurekaClient
public class Demo2Application {
    public static void main(String[] args) {
        SpringApplication.run(Demo2Application.class, args);
    }
}

在配置

server.port=8088
eureka.client.serviceUrl.defaultZone=http://localhost:8801/eureka/


3.路由网关

     路由网关是主要目的是为了让所有的微服务对外只有一个接口,即可由网关将我们的请求代理到不同的范围中。

    springcloud是通过zuul来实现的,支持自动路由映射到Eureka Server上注册的服务。springCloud提供注解@EnableZuulProxy来启用路由代理。


4.负载均衡

springcloud提供了Ribbon 和Feign作为客户端的负载均衡,在Spring Cloud 下,使用Ribbon直接注入一个RestTemplate对象即可,此RestTemplate已做好负载均衡的配置,而即用Feign只需定义注解,有@Feign注解的接口,热后使用@Requestmapping 注解在方法上映射远程的Rest服务。


5.断路器(Cricuit Breaker)

    主要是为了解决当某个方法调用失败的时候,调用后备方法来替代失败的方法,已达到容错,阻止级联错误等功能

    springcloud使用@EnableCricuitBreaker 来启用断路器支持,使用@HystrixCommand的fallbackMethod来指定后备方法。

    springcloud 还给我们提供了一个控制台来监控断路器的运行情况,通过@EnableHystrixDashboard注解开启。










猜你喜欢

转载自blog.csdn.net/liu689118/article/details/78962531