目前后台微服务架构开发,是绕不开SpringCloud框架的。它将现在非常流行的一些技术整合到一起,实现了诸如:配置管理,服务发现,智能路由, 负载均衡,熔断器,控制总线,集群状态等功能;协调分布式环境中各个系统,为各类服务提供模板性配置。其组件共接近三十个,本篇只介绍自己在使用中比较深刻的组件
----官方文档
以下案例直接使用Openfeign这个组件作为入门案例,Openfeign是SpringCloud一个重要的组件,其中内置Spring Cloud Netflix这个项目中的ribbon配置项和Hystrix熔断,因此采用这个组件入门其他两个组件也能包含进来;
步骤一:编写微服务注册中心

此包作为整个微服务环境的基础,只包含一个yml配置文件,和一个启动类。
步骤二:编写一个微服务

在该包作为提供方,编写业务逻辑并注册到eureka中供消费方调用。
步骤三:消费方通过eureka远程调用微服务
首先必须明确以下两点:
我们必须自定义声明一个接口是一个Feign客户端,指定服务名为user-service(这个服务名是根据eureka中的服务给出的),根据这个服务名就能匹配出IP和端口并通过IP,端口远程调用服务。
在消费方的Controller中就不用原始的RestTemplate去调用服务,而是通过注入的方式过的Feign客户端得到一个代理对象

该接口还配置了服务降级的功能类,其目的在于防止本服务器在访问远程的服务时发生雪崩效应。
再配置yml文件:
server:port: 8080spring:application:name: consumer-webeureka:client:registry-fetch-interval-seconds: 2service-url:defaultZone: http://localhost:10086/eurekauser-service:ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRuleribbon:ConnectTimeout: 1000feign:hystrix:enabled: truehystrix:command:default:execution:isolation:thread:timeoutInMilliseconds: 4000
该配置文件包括了ribbon负载均衡策略设置和负载超时时间设置,hystrix熔断超时时间设置,如果想要修改hystrix熔断超时时间必须手动开启feign.hystrix.enabled: true否则feign内置的hystrix熔断超时默认是1秒。
测试:
将三个启动类开启

访问ConsumerApplication配置的ip和8080端口,在Euraka注册中心中找到对应的UserService服务即可完成整个服务的请求调用;

总结:以上就是整个微服务架构SpringCloud的快速入门,其中用到的组件有Ribbon负载均衡,Euraka注册中心,Hystrix熔断器(当然还有对应的线程隔离,服务降级)。本来想继续写一下Zuul网管,Zuul也是个很好玩的组件,但是想睡觉了。。。




