
springcloud
tgn123456
这个作者很懒,什么都没留下…
展开
-
链路追踪+健康检查
分布式计算误区网络可靠;延迟为零;带宽无限;网络绝对安全;网络拓扑不会改变;必须有一名管理员;传输成本为零;网络同质化。(操作系统,协议)链路追踪必要性如果能跟踪每个请求,中间请求经过哪些微服务,请求耗时,网络延迟,业务逻辑耗时等。我们就能更好地分析系统瓶颈、解决系统问题。因此链路跟踪很重要。实现方式前后加时间戳,捕获异常链路追踪要考虑的几个问题探针(埋点)的性能消耗。...原创 2020-04-08 18:49:29 · 699 阅读 · 0 评论 -
配置中心原理
config-server启动时只是创建目录,configserver是在restful请求的时候,将远程仓库内容拉取到本地仓库。然后提供出 API 供客户端来调用。配置拉取取条件:1、访问server2、client启动,client获取server3、刷新client,刷新serverconfig-client启动时去config-server 拿配置,缓存后,自己用。...原创 2020-04-07 18:00:40 · 280 阅读 · 0 评论 -
配置中心使用
配置中心的好处坏处好处单体应用,配置写在配置文件中,没有什么大问题。如果要切换环境 可以切换不同的profile(2种方式),但在微服务中。微服务比较多。成百上千,配置很多,需要集中管理。管理不同环境的配置。需要动态调整配置参数,更改配置不停服。坏处集中管理,修改错误影响较大配置中心组成分布式配置中心包括3个部分:存放配置的地方:git ,本地文件 等。co...原创 2020-04-06 19:53:28 · 352 阅读 · 0 评论 -
Zuul网关原理
网关处理流程请求进入->pre(鉴权/限流)->route(路由到其他服务) ->post(处理响应)本质就是FilterZuulServlet->preRoute()、postRoute()、error()主要Filter流程PreDecorationFilter:解析决定使用哪种url。(通过获取eureka中的服务名【正确来说是虚拟主机名】),解析url地址...原创 2020-04-06 17:24:25 · 481 阅读 · 0 评论 -
Zuul网关使用
没有网关的问题微服务没有网关,会有下面的问题:客户端请求多个微服务,增加了客户端复杂性,每个微服务都要做用户认证,限流等,避免和多个微服务打交道的复杂性。有跨域问题,不在同一个域。认证复杂,每个服务都要独立认证,服务要求的权限不一致。难以重构。因为微服务被客户端调用着,重构难以实施。网关是介于客户端(外部调用方比如app,h5)和微服务的中间层。Zuul网关(默...原创 2020-04-05 22:00:12 · 250 阅读 · 0 评论 -
Hystrix熔断-隔离策略及熔断源码概述
线程池/信号量THREAD(线程隔离)使用该方式,HystrixCommand将会在单独的线程上执行,并发请求受线程池中线程数量的限制。不同服务通过使用不同线程池,彼此间将不受影响,达到隔离效果。hystrix将使用独立的线程池对应每一个服务提供者,用于隔离和限制这些服务。于是某个服务提供者的高延迟或者资源受限只会发生在该服务提供者对应的线程池中。SEMAPHORE(信号量隔离)其实就是...原创 2020-04-05 11:48:25 · 660 阅读 · 0 评论 -
Hystrix熔断-计算及可视化
熔断计算10秒20次,再计算错误次数超过阈值50%,熔断开启。服务提供者恢复,成功请求一次,熔断关闭http://localhost:9002/actuator/healthhystrix: {status: "CIRCUIT_OPEN",//熔断开启details: {openCircuitBreakers: ["RestTemplateRequestServiceImpl::s...原创 2020-04-04 22:14:36 · 314 阅读 · 0 评论 -
Hystrix熔断-Rest、Feign两种方式
Hystrix使用(RestTemplate)1、引入hystrix依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </...原创 2020-04-01 23:25:16 · 325 阅读 · 0 评论 -
Hystrix熔断降级
Hystrix熔断目的当自身依赖的服务不可用时,服务自身不会被拖垮。防止微服务级联异常。舱壁模式隔离了每个工作负载或服务的关键资源,如连接池、内存和CPU,硬盘。每个工作单元都有独立的 连接池,内存,CPU。使用舱壁避免了单个服务消耗掉所有资源,从而导致其他服务出现故障的场景。这种模式主要是通过防止由一个服务引起的级联故障来增加系统的弹性。给我们的思路:可以对每个请求设置,单独的连接池...原创 2020-04-01 22:19:25 · 215 阅读 · 1 评论 -
Feign:声明式Rest调用
Feign配置负载均衡策略同Ribbon一致Feign单独作为Http客户端使用@FeignClient(name = “service-name”,url = “http://localhost:8060”)自定义配置@FeignClient(name = “service-name”,configuration = Config.class)拦截器request-intercep...原创 2020-03-31 21:34:05 · 137 阅读 · 0 评论 -
客户端负载均衡(Ribbon)
客户端负载实现1、知道自己的请求目的地(虚拟主机名,默认是spring.application.name)2、获取所有服务端地址列表(也就是注册表)。3、选出一个地址,找到虚拟主机名对应的ip、port(将虚拟主机名 对应到 ip和port上)。4、发起实际请求(最朴素的请求)。Ribbion原理拦截请求。获取url。通过url中 serviceName 获取 List。通过负...原创 2020-03-31 11:47:23 · 274 阅读 · 0 评论 -
SpringCloud服务间调用
REST fulRestTemplate是Spring提供的同步HTTP网络客户端接口,它可以简化客户端与HTTP服务器之间的交互,并且它强制使用RESTful风格。它会处理HTTP连接和关闭,只需要使用者提供服务器的地址(URL)和模板参数。RestTemplate、FeignrestTemplate结合ribbon进行负载,同时比较灵活,容易接入第三方接口Feign通过配置接口注解,服...原创 2020-03-30 12:01:06 · 153 阅读 · 0 评论 -
Eureka实战总结
Eureka元数据通过配置实例的metadatamap,进行自定义元数据,可以结合ribbon分发规则使用。网关作为分发规则选择服务时可以作为依据。通过自定义元数据,可以做灰度发布。Eureka自我保护自我保护触发服务实例10个,期望每分钟续约102=20个,期望阈值200.85=17,自我保护少于17时触发Eureka网卡选择prefer-ip-address: trueip-ad...原创 2020-03-30 10:50:48 · 241 阅读 · 0 评论 -
Eureka架构及高可用复制集群原理
Eureka架构Eureka服务注册与发现(Eureka Server),分为服务提供者、服务消费者。(Eureka Client)1、服务提供者->注册中心:注册Register、续约Renew,下线Cancel2、注册中心<-服务提供者:获取注册表信息Get Registry3、服务消费者->注册中心:获取注册表信息4、服务消费者->服务提供者:远程调用5、...原创 2020-03-29 10:44:35 · 1002 阅读 · 0 评论 -
SpringCloud之旅-启程
SOA对单体应用的改进:引入SOA(Service-Oriented Architecture)面向服务架构,拆分系统,用服务的流程化来实现业务的灵活性。服务间需要某些方法进行连接,面向接口等,它是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在于操作系统进程中。各个服务之间 通过网络调用。但是还是需要用些方法来进行服务组合,有可能还是个...原创 2020-03-28 22:24:59 · 138 阅读 · 0 评论