暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

微服务架构——SpringCloud

一十二章经 2019-10-20
163

目前后台微服务架构开发,是绕不开SpringCloud框架的。它将现在非常流行的一些技术整合到一起,实现了诸如:配置管理,服务发现,智能路由, 负载均衡,熔断器,控制总线,集群状态等功能;协调分布式环境中各个系统,为各类服务提供模板性配置。其组件共接近三十个,本篇只介绍自己在使用中比较深刻的组件


 ----官方文档


以下案例直接使用Openfeign这个组件作为入门案例,Openfeign是SpringCloud一个重要的组件,其中内置Spring Cloud Netflix这个项目中的ribbon配置项和Hystrix熔断,因此采用这个组件入门其他两个组件也能包含进来;


步骤一编写微服务注册中心

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


步骤二编写一个微服务

在该包作为提供方,编写业务逻辑并注册到eureka中供消费方调用。


步骤三消费方通过eureka远程调用微服务

首先必须明确以下两点:

  • 我们必须自定义声明一个接口是一个Feign客户端,指定服务名为user-service(这个服务名是根据eureka中的服务给出的),根据这个服务名就能匹配出IP和端口并通过IP,端口远程调用服务。

  • 在消费方的Controller中就不用原始的RestTemplate去调用服务,而是通过注入的方式过的Feign客户端得到一个代理对象

该接口还配置了服务降级的功能类,其目的在于防止本服务器在访问远程的服务时发生雪崩效应。

再配置yml文件:

server:
  port: 8080
  
spring:
application:
    name: consumer-web
    
eureka:
  client:
registry-fetch-interval-seconds: 2
service-url:
      defaultZone: http://localhost:10086/eureka
      
user-service:
ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule


ribbon:
ConnectTimeout: 1000


feign:
hystrix:
    enabled: true


hystrix:
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也是个很好玩的组件,但是想睡觉了。



文章转载自一十二章经,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论