栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

乐优商城开始前笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

乐优商城开始前笔记



发送心跳和过期时间

 

拉取服务的间隔时间:

失效剔除和自我保护

因为保护机制是宁可放过一千也不错杀一个,所以有的服务已经关了他也会继续显示没关,所以给开发带来不方便就要关闭这个保护机制

 day2总结
1:远程调用技术:rpc http

rpc协议:自定义数据格式,限定技术,传输速度快,效率高  dubbo

http协议:统一的是数据格式,不限定技术 rest接口    springcloud就是基于http协议
2:什么是springcloud

微服务架构的解决方案,是很多组件的集合
eureka:注册中心,服务的注册与发现
zuul:网关组件,路由请求,过滤器(这里面包含ribbon   hystrix,相当于jdk包含jre  jvm一样,有一个jdk就不用在弄jre  jvm,因为它包含了另外两个)
ribbon:负载均衡组件
hystrix:熔断组件(个人理解为相当于家里用电的闸刀,当电用的功率太大就为了保护电路就跳闸了,hystrix就是当负载太大就关掉服务)
3:eureka

 注册中心:
服务端的eureka步骤:
(1:应用启动类   2:配置spring.application.name" "(里面的名称作为以后的的名字或者id)3:在引导类上加@EnableEurekaServer)
客户端(不管消费者还是服务者都是要用Client):

(1:引入启动器,   2:配置spring.application.name   eureka.client.service-url.defaultZone=http://localhos:10086/eureka    3:@EnableEurekaClient)

负载均衡Ribbon

 

如上图代码我们只能调用一个客户,如果有多个就不知道怎么调用那个了,Ribbon会提供选择调用哪个
步骤:1:引入启动器  2:覆盖默认配置  3:在引导类引用启动器

如上图,淘汰原本的instance,使用  spring.application.name" "的名字,如果两个服务器的名字一样,那么访问的时候默认是轮询的方式,比如有两个服务器8801,8802,然spring.application.name" "名字相同,这时候就先访问8801再8802再8801再8802......。这样的
的原理是  次数%2     如果是1那么访问那个端口,如果是0那么访问那个端口,在引导类中添加启动器的时候是加在注入RestTemplate的注解的下边,如下图@LoadBalanced就是Ribbon的启动器

 hystrix:英文意思是豪猪,全身是刺看起来不好惹,是一个保护机制。是一个延迟和容错库,用于隔离远程服务,第三方库,防止出现级联失败
1:雪崩问题:
    
    ~线程隔离~  

 1:添加依赖
org.springframework.cloud
spring-cloud-starter-netflix-hystrix
2:添加启动类
@EnableCircuitBreaker
实际操作:例如我的例子创建一个熔断方法querUserByIdFallvack,然后在需要加熔断方法的方法上加一个@HystrixCommand注解,如果注解有指定

如图所示,那么就熔断的时候去指定的熔断方法里,如果没有指定 

 

那么就去全局默认的指定的熔断方法:@DefaultProperties(defaultFallback = "querUserMath")
 

  

@SpringCloudApplication//相当与是@SpringBootApplication+@EnableDiscoveryClient+@EnableCircuitBreaker

当熔断完以后需要手动去处理链接线路,这时候Hystrix可以实行相当于一个闸,当太大时就断开不允许任何的访问,过一段时间就开始放进去少量的访问,如果可以正常处理就合上闸恢复正常,如果还是不能访问就继续断闸。如下图

 

 

 

hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 6000
这是调整hystrix 的超时时间,默认的是1s,如果觉得时间太短可以调,实现就是如果连接超过设置的时间了还没有响应,那么就认为熔断了


service-provider:  #服务提供方的名称
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandonRule
这段代码是如果eureka的名字相同的话,那么就可以调整是轮询还是随机
feigh:
feign包含RestTemplate,所以以后就不用在拼路径拼参数,具体怎么拼如图

有了feign之后应该去掉的是如下图:

 是创建一个接口添加一个@@FeignClient("service-provider")  service-provider是eureka的名称,在接口中写一写方法
虽然feign继承了hystrix,但是也要手动去打开熔断的如下图所示

 feihn总结

 zuul网关:
是相当于守门员,验证等权限等,具体如下图所示:

path是访问的前缀是、service-provider就访问下边的指定的地址

 

 如下图访问就是相当于访问的8082的地址

 

 更先进的配置整合eureka
加上eureka配置然后
如下图配置:

 但是在网站上游览的时候要把routes下边的路由名称加上,如上上一个图地址,如果routes下边的路由名称为user,那么地址就为localhost:10010/user/user/1
 

 

 zuul过滤器:

 

 过滤器:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/318787.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号