![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring Cloud
文章平均质量分 55
呵呵呵1112
这个作者很懒,什么都没留下…
展开
-
1.基础知识
什么是微服务架构简单说,微服务是系统架构上的一种设计风格,它的主指是将一个原本独立的系统拆分成多个小型服务,这些小型服务在各自的进程中运行,服务与服务之间通过HTTP的RESTful API进行通信。比如:一个商城,可以将购买流程拆分成->登陆,选择商品,下单,商品发货,订单完成等多个服务。被拆分的每个服务都围绕系统中的某一项或者耦合度较高的业务来构建的,并且每个服务都维护着自身的数据存储...原创 2018-11-17 16:10:36 · 130 阅读 · 0 评论 -
2. Eureka 简介
服务中心:提供服务的注册与发现服务端:供服务注册的服务器,存储微服务的名称 地址之类的,好比上学时候老师的点名册里面存有学生(服务)的信息。客户端:用来简化与服务器的交互作为轮询负载均衡器并提供服务的故障切换支持,微服务通过客户端连接服务端根据心跳,以此判断服务是否正常。...原创 2018-12-12 17:25:06 · 105 阅读 · 0 评论 -
3. Eureka Server
创建Eureka Server项目在项目中,需要在启动的主类添加@EnableEurekaServer才表示有注册中心这个功能;添加该注解后 启动项目 访问8080:但是项目一直报错,原因是虽然这个是个server端 但是同时也是个client端 也需要找个服务端将自己注册上去连接自己 同时查询8080 显示已有一个服务连接 但是因为客户端和服务端是通过心跳维持的 所以只有当有心...原创 2018-12-12 17:33:13 · 106 阅读 · 0 评论 -
4. Eureka Client
使用spring cloud每次必须启动Eureka server服务,但是每次启动idea去启动Eureka Server的服务又很麻烦,所以我们可以将该项目打包成一个jar包 使用get命令行 或者在服务器中启动该jar包。后台运行语句创建client项目 创建方法和创建server相同 只不过在选择Spring Discovery时不同在启动类上加注解@EnableDiscover...原创 2018-12-12 17:42:07 · 138 阅读 · 0 评论 -
5. Eureka 高可用注册中心
Eureka Server的设计一开始就考虑了高可用问题,在Eureka的服务治理设计中,所有节点既是服务消费方也是服务提供方,服务注册中心也不例外,在单节点中我们通过设置下面参数,让服务注册中心不再注册自己:eureka.client.register-with-eureka=falseeureka.client.fetch-registry=falseEureka Server的高可用实...原创 2018-12-13 16:26:33 · 130 阅读 · 0 评论 -
6. Eureka 分布式下服务注册的地位和原理
之前讲过,为什么需要注册中心,当多个服务的时候如果还是需要静态配置,既容易出错有浪费人力,所以要使用注册中心。那么客户端是怎么从注册中心发现服务的呢?客户端发现客户端从注册中心获取到服务清单后,使用轮询,随机,或者哈希等机制(其实就是负载均衡的机制)从清单中获取服务B的地址 然后在通过ip访问B。是由A发起。优点:简单直接且知道所有可用的服务的地址缺点:需要自己写一套逻辑把B调出来服务...原创 2018-12-15 16:19:56 · 153 阅读 · 0 评论 -
7. 服务拆分
微服务如何拆分?1.先明白起点和终点2.需要考虑的因素与坚持的原则起点有两种:1.现有的架构需要转微服务 2.新系统需要设计成微服务。 需要考虑是不是真的适合微服务微服务与康威定律核心思想是下面这个,意思是这个系统的设计结果,设计成什么样子是根据同事之间的沟通来的,如果说同事之间因为地域问题相隔太远导致沟通不变,那么就会影响流程,如果把系统各个模块提交给每个部门或者公司 ,在由该公司的...原创 2018-12-27 11:31:28 · 400 阅读 · 0 评论 -
8. 负载均衡器:Ribbon
RibbonEureka使用的是客户端发现,它的负载均衡是软负载,客户端先请求Eureka服务端获取可以访问的服务清单,然后使用轮询或者随机等负载均衡机制去访问目标。这些都是在客户端完成的不需要服务端,Spring Cloud中的客户端负载均衡就是Ribbon组件。Ribbon使用软负载均衡有三点:服务发现:其实就是根据名称获取服务清单服务选择规则服务监听主要组件:ServerLis...原创 2019-01-02 17:18:42 · 176 阅读 · 0 评论 -
9. 应用通信 RestTemplate和Feign
声明式REST客户端(伪RPC)采用了基于接口的注解,本质还是http请求,内部也使用了Ribbon做负载均衡在微服务架构中,Spring Cloud Ribbon和Spring Cldou Hystrix实现了客户端负载均衡的服务调用以及如何通过断路器来保护我们的微服务应用。这两者将被作为基础工具类框架广泛应用在各个微服务的实现中,不禁包括我们自身的业务也包括一些基础设施类服务(比如网关)。...原创 2019-01-12 16:38:50 · 231 阅读 · 0 评论 -
10. 统一配置中心 Config Server
为什需要统一配置中心1.多个人维护同一个文件不方便维护2.配置内容的安全与权限3.更新了项目的配置需要重启Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加...原创 2019-01-15 16:32:26 · 136 阅读 · 0 评论 -
11. 统一配置中心 Config Client
Client 使用开发步骤1.Client端添加Config Client的依赖<dependency> <groupId>org.springframework.cloud</groupId>原创 2019-01-16 11:38:54 · 216 阅读 · 0 评论 -
12. 消息 消息总线 Bus
Config Server使用了Spring Cloud Bus后会对外提供一个HTTP接口叫做/bus-refresh,访问这个接口就会将最新的信息发送到Mq。那么谁访问这个接口呢,既然期望的是Git文件变更就发送消息 那么当然是由Git访问更加合适了。...原创 2019-01-17 17:41:21 · 248 阅读 · 0 评论 -
13. 消息 RabbitMq简单使用
消息和异步异步:客户端请求不会阻塞进程,服务端的响应可以是非即时的。异步常见形态:通知:单项请求请求/异步响应:客户端发送请求,服务端异步响应,客户端不会阻塞消息:利用消息实现一对多响应MQ应用场景:异步处理流量削峰:流量过大会导致应用挂掉,在应用前端加入消息队列,当人数大于队列长度,直接转到错误页面或者放弃请求日志处理:最典型的就是kafka,大数据中应用比较多,通过日志采集...原创 2019-01-18 15:32:35 · 94 阅读 · 0 评论 -
14. Stream
简介Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架。它可以基于Spring Boot 来创建独立的,可用于生产的Spring 应用程序。他通过使用Spring Integration来连接消息代理中间件以实现消息事件驱动。Spring Cloud Stream 为一些供应商的消息中间件产品提供了个性化的自动化配置实现,引用了发布-订阅、消费组、分区的三个核心...原创 2019-01-21 15:09:35 · 92 阅读 · 0 评论 -
15. Zuul 服务网关
网关服务和Zuul为什么需要网关服务如果没网关,当前启动了十几个微服务,那么客户端的调用只能是和各个服务一个一个打交道,这显然是不现实的。如果有网关,那么客户端只需要访问网关服务,通过网关服务请求各个服务。服务网管的要素:1.稳定性,高可用2.性能,并发性3.安全性4.扩展性常用的网关方案1.Nginx+Lua2.Kong3.Tyk4.Spring Cloud Zuul(如...原创 2019-01-22 14:47:53 · 121 阅读 · 0 评论 -
16. Zuul 路由
路由转发路由转发1.创建项目,引入Config,Eureka Client,Zuul依赖: <dependency> <groupId>org.springframework.cloud</groupId&am原创 2019-01-23 16:39:50 · 106 阅读 · 0 评论 -
17. Zuul 过滤器
Pre和Post过滤器通过Zuul Pre 过滤器做参数校验/** * 参数校验 校验过来的请求是否都带了tockeon * Created By 白鹏 * 2019/1/2410:34 */@Componentpublic class TockienFilter extends ZuulFilter { @Override public String filt...原创 2019-01-25 17:42:52 · 135 阅读 · 0 评论 -
18. Hystrix 服务容错
Hystrix基于Netflix对应的Hystrix实现雪崩效应:微服务中多个服务调用时,如果因为某个服务不可用造成了整个系统不可用的情况被称为雪崩效应,而Hystrix就是防雪崩的利器。服务降级:比如某些app提示的"网络开小差了&quo原创 2019-01-31 17:50:14 · 226 阅读 · 0 评论 -
19. 服务追踪
Spring Cloud Sleuth 链路监控请求下单接口时间太长,那么如果要追踪原因该怎么去追踪呢?可能是因为查询商品列表时间长,也可能是因为扣库存时间长,也可能是因为订单服务调用商品服务 商品服务又调用了其他服务造成的,这个时候需要使用Spring Cloud Sleuth组件去查询。Spring Cloud Sleuth实现了一种分布式的服务链路跟踪解决方案,通过使用Sleuth可以...原创 2019-02-15 16:30:55 · 269 阅读 · 0 评论