SpringCloud学习心得 - Go语言中文社区

SpringCloud学习心得


SpringCloud

初衷

最近公司的老项目基本维护稳定了,规划一个资讯项目,我打算用众望所归的cloud提升下技术b格,之前只会用boot,做技术的就要一直保持学习,不吃老本,开始学习cloud。写篇博客记录下。

 

介绍

SpringCloud为开发人员提供了快速构建分布式系统的常用工具,包括配置管理、服务发现、服务熔断、智能路由、总线、鉴权等。SpringCloud基于SpringBoot实现微服务架构,它是Java项目从单体应用架构向微服务架构变迁的主流选择之一。

 

特性

(1) 分布式/版本化配置

(2) 服务注册和发现

(3) 路由

(4) service - to - service 调用

(5) 负载均衡

(6) 断路器

(7) 分布式消息传递

 

打比方

单体应用:个人开发者

微服务:开发公司

 

主要组件

(1)服务注册、发现 Eureka -- 公司通讯录

(2)微服务应用 -- 小组成员

(3)断路器Hystrix--员工绩效考核制度

(4)断路器监控Hystrix Dashboard和Turbine--员工绩效考核表

(5)客户端负载均衡器Ribbon--小组组长的工作安排机制

(6)路由/网关Zuul--项目经理的工作安排机制

(7)统一配置Config--管理部的开发规范

(8)链路追踪Sleuth--工作进度统计

 

 

CAP定理 (一致性、可用性、分区容错性)

zk   CP (追求强一致性)

eureka  AP(强可用性)

 

eureka 服务治理 (服务注册、发现)

(1) 接下来重点讲一下 eureka服务端,要声明自己是eureka 的服务端,在启动类注解

yml配置:

  client:

    register-with-eureka: false  (为别人提供注册服务的,自己不需要)

    fetch-registry: false  (不需要同步别人的服务)

    service-url: (比如是一个map,可以查看源码)

      default-zone : http://${}:${}/eureka/    (如果不配置默认加载8761的 eureka)

 

region(大区)  zone(具体的小区)

 

(2) 如何去注册:

比如说hello-service ,要声明自己是eureka 的客户端,在启动类注解

yml配置:

  server.port : 8081  

  spring.application.name=hello

  eureka.client.service-url.defaultZone=http://${}:${}/eureka/  (去哪里注册,就是上面所说的服务端) 

 

同理,可以注册多个 eureka 的客户端 的服务。

 

 

 

心跳和续约区别:

(1) 心跳是 服务端请求客户端: 哥们你还活着吗?

(2) 续约是 客户端来服务端续约,在过期时间到来前 不访问就被服务端干掉

 

Ribbon 客户端的负载均衡(知道哪些服务是高可用的)

主要是进行请求转发,默认的负载均衡算法就是轮巡,可以修改负载的规则(随机等)

 

yml:

  server.port= 9000

  spring.application.name:=ribbon-consumer

  # stores.rabbon.listOfServers=localhost:8081,localhost:8082 (写死是不合适的、要跟eureka 结合使用)

  stores.ribbon.NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule (这种配置后就是随机)

 

hystrix 请求熔断 服务降级  依赖隔离(舱壁模式 docker)  请求缓存  请求合并

@EnableCircuitBreaker  在启动类上配置

 

@HystrixCommand(fallbackMethod = "b" [服务降级])

public String a() {

  return "";

}

 

public String b() {

  return "";

}

如果a 坏了、就降级到b。

 

Feign 声明式服务调用

 

zuul  api网关

 

转载于:https://www.cnblogs.com/pzyin/p/10980857.html

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/dianzou1323/article/details/102277201
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-16 20:23:00
  • 阅读 ( 944 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢