Spring-Cloud分布式集成简单部署

Spring-boot可以理解为一种简化
而Spring-cloud才是真正的分布式环境


1.Eureka是用来做服务治理的,就是管理服务的,把服务放到注册中心去进行管理,所以要先把注册中心给他创建好

     1. 创建的时候,要把 Eureka Server 模块给他加上,能把关联给关上,这个也就是注册中心的模块
     2. 在自动创建出来的Application类中,把@EnableEurekaServer【启用注册中心】 给加上,之前只是创建,把架包这种东西转备好,这个注解才是真正的启用注册中心
     3. 在配置文件.properties中加上spring.application.name=eureka-server
        server.port=1001
        eureka.instance.hostname=127.0.0.1
        eureka.client.register-with-eureka=false
        eureka.client.fetch-registry=false
        eureka.client.serviceUrl.defaultZone=http://localhost:$server.port}/eureka/
        【为了让别人可以启用这个注册东西,所添加的配置文件,
             1. eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/声明地址
         2. server.port=1001提供了可访问的端口号】

2.增加会员操作

     1. 创建这个服务的时候,需要一个 Eureka Discovery 模块,是用来把自己注册到注册中心中去,这里不是注册中心
     2. 在自动创建出来的Application类中,把@EnableDiscoveryServer【启用查找操作】 给加上,用来查找注册中心
     3. 如何去找注册中心呢,在配置文件.properties中加上
    spring.application.name=eureka-member-service
    server.port=2001
    eureka.client.serviceUrl.defaultZone=http://127.0.0.1:1001/eureka/
    【
        1.  在Application中把eureka.client.serviceUrl.defaultZone=http://127.0.0.1:1001/eureka/
        写正确了,写不正确根本找不到
        2.  注册中心去关联服务,用这个标识spring.application.name=eureka-member-service】

3.访问会员服务

 1.  一定要加上 Eureka Discovery  找到注册中心,把第三方的那个地址找到了,Feign用于访问他,系统间的交互,与地址访问有差别
 2. 加上@EnableDiscoveryClient【发现的客户端】,@EnableFeignClients
 3. .properties里面加上配置信息
 4. 找到服务以后,需要加上注解@FeignClient【意味着想访问你的服务了通过@FeignClient(服务的key取得的value找到,会员服务在注册中心注册的名称)】

4.Spring Cloud Ribbon
NGINX,是反向代理,从网络的外部访问网络的内部,叫反向代理,所以NGINX应该是是属于网络的内部,其实80是直接访问NGINX了,NGINX应该与service是一个整体,所以我们称之为集群
Ribbon,80通过key访问注册中心,注册中心返回多个端口号,这个时候Ribbon就起作用了,用软件的逻辑来做负载均衡,第1个请求就走第1个地址,第n个请求就走第n个地址
请求不一样,服务器就不一样,其实效率上来说,差不多,区别在于并没有在service里面加上NGINX,这个就是客户端的负载均衡

    不过Feign中已经内置了Ribbon,所以并不需要再额外操作了

5.Spring Cloud Hystrix(断器,断路器,保险丝)
单个服务通常会集群部署,由于网络或自身的原因,服务并不能保证100%可用,如果单个服务出现了问题,调动这个服务就会出现线程阻塞。防止一只占用线程。防止雪崩,释放资源。在微服务框架中,一个请求调用多个服务是非常常见的,但是一个出问题,就会导致其他的也出问题。所以需要熔断器切断,熔断器一切断,资源就会自动释放,能避免连锁故障
依赖配置

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>

在程序的启动类中增加@EnableHystrix注解开启Hystrix。

在调用feign服务的Controller方法前增加注解@HystrixCommand(fallbackMethod=”服务失败时调用的方法名”)

其实并非停掉整个系统,而是提交fail(),告诉你错误信息

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值