微服务
文章平均质量分 93
anita9999
这个作者很懒,什么都没留下…
展开
-
Loadbalance的几种算法以及在ribbon中的使用
Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法。像nginx可以使用负载均衡分配流量,ribbon为客户端提供负载均衡,dubbo服务调用里的负载均衡等等,很多地方都使用到了负载均衡。使用负载均衡带来的好处很明显:当集群里的1台或者多台服务器down的时候,剩余的没有down的服务器可以保证服务的继续使用 使用了更多的机器保证了机器的良...转载 2018-08-30 21:19:21 · 1437 阅读 · 0 评论 -
Hystrix:服务雪崩效应的特点及应对
一、Hystrix说明 1.服务雪崩效应:是一种因 服务提供者 的不可用导致 服务调用者 的不可用,并将不可用 逐渐放大 的过程。1) A为服务提供者, B为A的服务调用者, C和D是B的服务调用者. 当A的不可用,引起B的不可用,并将不可用逐渐放大C和D时, 服务雪崩就形成了2.雪崩原因:1) 服务提供者不可用a.硬件故障a1.硬件损坏造成的服务器主机宕机a2.网络硬件...转载 2018-09-02 12:09:46 · 177 阅读 · 0 评论 -
Hystrix监控的配置详解
在微服务架构中,hystrix处理容错外,还有实时监控功能,在服务发生调用时,会将每秒请求数、成功请求数等运行指标记录下来。本文示例代码:springcloud-demo 其中本文相关的项目有: - 服务发现 Eureka Server: discovery - 链路追踪 sleuth+zipkin:trace - 服务提供者:hello - 服务提供者: world - 服务...转载 2018-09-02 16:20:45 · 436 阅读 · 0 评论 -
服务网关Zuul高级篇
上篇文章主要介绍了Zuul网关使用模式,以及自动转发机制,但其实Zuul还有更多的应用场景,比如:鉴权、流量转发、请求统计等等,这些功能都可以使用Zuul来实现。Zuul的核心Filter是Zuul的核心,用来实现对外服务的控制。Filter的生命周期有4个,分别是“PRE”、“ROUTING”、“POST”、“ERROR”,整个生命周期可以用下图来表示。Zuul大部分功能都是通过...转载 2018-09-03 16:52:29 · 273 阅读 · 0 评论 -
Spring Cloud Config服务端配置细节之加密解密
准备工作默认情况下我们的JRE中自带了JCE(Java Cryptography Extension),但是默认是一个有限长度的版本,我们这里需要一个不限长度的JCE,这个JCE我们可以直接百度然后在Oracle官网下载,下载之后解压,我们可以看到如下三个文件:我们需要将这里的两个jar包拷贝到我们的jdk安装目录下,我的是%JAVA_HOME%\jre\lib\security,覆盖...转载 2018-09-10 15:54:03 · 1279 阅读 · 1 评论 -
spring boot事务描述
什么是事务?我们在开发企业应用时,对于业务人员的一个操作实际是对数据读写的多步操作的结合。由于数据操作在顺序执行的过程中,任何一步操作都有可能发生异常,异常会导致后续操作无法完成,此时由于业务逻辑并未正确的完成,之前成功操作数据的并不可靠,需要在这种情况下进行回退。事务的作用就是为了保证用户的每一个操作都是可靠的,事务中的每一步操作都必须成功执行,只要有发生异常就回退到事务开始未进行操作的...转载 2018-10-17 22:16:25 · 121 阅读 · 0 评论 -
深入理解Ribbon之源码解析
什么是RibbonRibbon是Netflix公司开源的一个负载均衡的项目,它属于上述的第二种,是一个客户端负载均衡器,运行在客户端上。它是一个经过了云端测试的IPC库,可以很好地控制HTTP和TCP客户端的一些行为。 Feign已经默认使用了Ribbon。负载均衡 容错 多协议(HTTP,TCP,UDP)支持异步和反应模型 缓存和批处理RestTemplate和Ribbon相结合...转载 2018-08-30 21:14:03 · 257 阅读 · 0 评论 -
如何把应用分解成多个服务
工作中使用了微服务,接下来的一段时间里,我会写一系列的文章来介绍微服务架构,同时我也会在github上写一个microservices的应用框架(地址会在后续文章给出)。上一篇文章详细说明了单一应用架构与微服务架构各自的优缺点,这篇文章是对 http://microservices.io/patterns/decomposition/decompose-by-business-capabi...转载 2018-08-23 22:10:39 · 682 阅读 · 0 评论 -
微服务优缺点
微服务的优点 复杂度可控:在将应用分解的同时,规避了原本复杂度无止境的积累。每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。独立部署:由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。当某个微服务发生变更时无需编译、部署整个应用。由微服务组成的应用相当于具备一系列可并行的发...转载 2018-08-23 21:18:53 · 1013 阅读 · 0 评论 -
Feign对继承、压缩、日志的支持以及构造多参数请求
1. 回顾 上文讲解了手动创建Feign,比默认的使用更加灵活。 本文将讲解Feign对继承、压缩的支持以及日志和多参数请求的构造等。2. Feign对继承的支持 Feign支持继承。使用继承,可将一些公共操作分组到一些父接口中,从而简化Feign的开发。 尽管Feign的继承可帮助我们进一步简化开发,但是Spring Cloud指出——通常情况下, 不建议服务器...转载 2018-09-01 17:26:57 · 569 阅读 · 0 评论 -
声明式服务调用fegin
一、简介Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Spring Cloud Feign 基于Netflix Feign 实现的,整合了Spring Cloud Ribbon 与 Spring Cloud Hystri...转载 2018-09-01 14:36:27 · 1443 阅读 · 0 评论 -
使用配置文件自定义Ribbon Client
上节课我们一起学习了如何在Eureka Server上注册微服务,这节课我们一起学习服务消费者如何动态调用服务消费者以及如何实现负载均衡。 首先我们来说下最常见的负载均衡策略,那就是使用nginx作为反向代理服务器,对服务的调用进行负载均衡,这种方式是服务器端负载均衡。如下图所示。这个不是我们本节课一起学习的重点。 下面我们来说说另一种负载均衡策略,如下图...转载 2018-08-31 21:16:39 · 4639 阅读 · 0 评论 -
微服务拆分那点事
服务 拆分背景 我的理解 我的对比 我怎么拆分 项目背景 第一步:根据服务职责拆分 第二步:公共库的初始化 第三步:组件之间接口的定义 第四步:开始分工写自己的组件了 总结背景最近参与了两个项目的开发,两个项目都有多组件,各自服务功能清晰等特点,也就是所谓的微服务,再结合以前的一些单体项目的开发经验,这里主要探讨一下我所理解的微服务和单体项目的优缺点。我...转载 2018-08-23 22:09:47 · 1579 阅读 · 0 评论 -
Spring Cloud Netflix Eureka: 多网卡环境下Eureka服务注册IP选择问题
问题场景服务器上分别配置了eth0, eth1和eth2三块网卡,只有eth1的地址可供其它机器访问,eth0和eth2的 IP 无效。在这种情况下,服务注册时Eureka Client会自动选择eth0作为服务ip, 导致其它服务无法调用。问题原因由于官方并没有写明Eureka Client探测本机IP的逻辑,所以只能翻阅源代码。Eureka Client的源码在eureka-cli...转载 2018-08-28 11:21:09 · 109 阅读 · 0 评论 -
深度剖析服务发现组件Netflix Eureka
一、背景介绍Eureka是Netflix开源的一款提供服务注册和发现的产品。其官方文档中对自己的定义是:Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpos...转载 2018-08-28 11:23:21 · 140 阅读 · 0 评论 -
改变eureka server中注册的服务的健康检测方式
默认情况下注册到eureka server的服务是通过心跳来告知自己是UP还是DOWN,并不是通过spring-boot-actuator模块的/health端点来实现的,这样其实不是很合理。默认的心跳实现方式可以有效的检查eureka客户端进程是否正常运作,但是无法保证客户端应用能够正常提供服务。由于大多数微服务应用都会有一些其他的外部资源依赖,比如数据库,REDIS缓存等,如果我们的应用与...转载 2018-08-28 12:07:17 · 279 阅读 · 0 评论 -
SpringCloud实战微服务之——Ribbon详解
Ribbon简介需要解决的问题:① 如何在配置Eureka Client注册中心时不去硬编码Eureka Server的地址?② 在微服务不同模块间进行通信时,如何不去硬编码服务提供者的地址?③ 当部署多个相同微服务时,如何实现请求时的负载均衡? 实现负载均衡方式1:通过服务器端实现负载均衡(nginx)实现负载均衡方式2:通过客户端实现负载均衡。Ribbon是什么?...转载 2018-08-31 12:58:58 · 525 阅读 · 0 评论 -
关于SpringCloud微服务架构概念的一点理解
1.单体架构单体架构,是指将开发好的项目打成war包,然后发布到tomcat等容器中的应用。假设你正准备开发一款与Uber和Hailo竞争的出租车调度软件,经过初步会议和需求分析,你可能会手动或者使用基于Spring Boot、Play或者Maven的生成器开始这个新项目,它的六边形架构是模块化的,架构图如下: 应用核心是业务逻辑,由定义服务、域对象和事件的模块完...转载 2018-08-24 11:11:37 · 141 阅读 · 0 评论 -
ribbon 代码配置
上节课我们一起学习了如何在Eureka Server上注册微服务,这节课我们一起学习服务消费者如何动态调用服务消费者以及如何实现负载均衡。 首先我们来说下最常见的负载均衡策略,那就是使用nginx作为反向代理服务器,对服务的调用进行负载均衡,这种方式是服务器端负载均衡。如下图所示。这个不是我们本节课一起学习的重点。 下面我们来说说另一种负载均衡策略,如下图...转载 2018-08-31 21:07:22 · 2311 阅读 · 1 评论 -
微服务架构概念
当前微服务很热,大家都号称在使用微服务架构,但究竟什么是微服务架构?微服务架构是不是发展趋势?对于这些问题,我们都缺乏清楚的认识,本文基于作者在大型互联网系统的服务化实践和思考,和大家一起探讨微服务架构。本文主要内容包括:传统SOA架构 新型SOA架构 服务设计方式 深入微服务 微服务体系 微服务系统架构传统SOA架构 说到微服务,离不开SOA,两者经常放一起讨论,首先...转载 2018-08-22 16:10:23 · 1077 阅读 · 0 评论