
【微服务-SpringCloud】
文章平均质量分 70
Spring Cloud是基于Spring Boot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。
一棵树~
just do it
展开
-
Feign调用服务报错:Invalid bean definition with name ‘xxx.FeignClientSpecification‘ defined in null
1、报错日志Invalid bean definition with name 'xxx.FeignClientSpecification' defined in null: Cannot register bean definition [Generic bean: class [org.springframework.cloud.openfeign.FeignClientSpecification]; scope=; abstract=false; lazyInit=null2、原因分析原创 2021-11-19 13:17:34 · 11394 阅读 · 2 评论 -
如何提高微服务的高可用性
微服务架构现在是个热门话题,微服务的高可用性自然也是企业非常关注的。眼下互联网的架构秘籍三板斧“高可用可扩展,缓存提速,消峰减流去并发”,在微服务架构体系中有着不一样的诠释。在微服务中消息队列不仅用来消峰,还可以通过消息队列来解决微服务之间的多耦合,把同步调用转化为异步调用,减少调用链路,提升系统稳定性。单体应用拆分为独立的多个无形中增加了系统的响应时间,可以通过本地缓存、分布式缓存相结合的方式来弥补性能的损耗。以前通过内部接口调用的方法变成RPC调用多个服务,服务与服务之间还有依赖关系,每个服务接口响原创 2021-01-24 01:07:25 · 2165 阅读 · 0 评论 -
SpringCloud网络请求性能优化
目录1、网络请求异常分类2、开发中注意问题3、原始的处理方式4、如何减少代码耦合性5、异常统一处理步骤6、完成版代码展示1、网络请求异常分类网络请求异常大概有哪些?第一种:访问接口异常,比如404,500等异常,出现这类异常,Retrofit会自动抛出异常。 第二种:解析数据异常,数据体发生变化可能会导致这个问题。 第三种:其他类型异常,比如服务器响应超时异常,链接失败异常,网络未连接异常等等。 第四种:网络请求成功,但是服务器定义了异常状态,比如token失效,参原创 2021-01-17 15:53:19 · 495 阅读 · 1 评论 -
微服务设计规范总结
一、微服务设计原则高内聚低耦合、职责单一:每个微服务模块职责单一独立,负责各自业务功能。微服务之间尽量减少调用,做到高内聚低耦合。 前后端分离:将前端和后端代码进行分离,包括开发分离,部署分离,代码存放分离。前端负责页面展示,后端负责业务数据处理。前端通过HTTP协议或者其他协议进行交互。 围绕业务拆分:微服务应该围绕业务进行拆分,每个微服务聚焦于一个特定的业务功能,在技术选型上比较灵活,不局限于某个固定的技术栈。 日志与监控:随着微服务系统不断升级演进,微服务数量剧增,系统出现故障的几率也在增大原创 2021-01-15 16:44:09 · 3166 阅读 · 2 评论 -
SpringCloud组件超时总结
目录1、Ribbon的超时2、Feign的超时3、RestTemplate的超时4、Zuul的超时4.1、如果Zuul的路由使用了Ribbon4.2、如果Zuul的路由未使用Ribbon5、Hystrix的超时1、Ribbon的超时全局设置:ribbon: ReadTimeout: 60000 ConnectTimeout: 60000局部设置:service-id: ribbon: ReadTimeout: 1000 Conn原创 2020-12-03 17:31:21 · 242 阅读 · 0 评论 -
SpringCloud(一)微服务概述及SpringCloud组件
目录1、微服务概述2、SpringCloud是什么?2.1、官网说明2.2、SpringCloud常用组件2.3、SpringCloud特点3、SpringCloud和SpringBoot的关系4、SpringCloud和Dubbo的比较4.1、最大的区别4.2、品牌机与组装机的区别4.3、社区支持与更新力度5、经验和教训5.1、架构演化的步骤5...原创 2018-11-12 11:32:54 · 643 阅读 · 0 评论 -
SpringCloud(二)Rest微服务构建案例
目录:架构:1、父工程构建步骤1.1、构建项目1.2、pom.xml2、API公共模块和部门Entity步骤2.1、构建项目2.2、pom.xml2.3、新建部门Entity且配合Lombok使用3、SpringCloud Rest微服务案例——部门服务提供者3.1、构建项目3.2、pom.xml3.3、application.yml3.4、工程...原创 2018-11-20 18:19:44 · 1121 阅读 · 1 评论 -
SpringCloud(三)Eureka服务注册与发现《2》(actuator与Eureka自我保护)
目录:1、actuator与注册微服务信息完善1.1、主机名称:服务名称修改1.2、访问信息有IP信息提示1.3、微服务info内容详细信息2、eureka自我保护2.1、什么是自我保护模式?2.2、故障现象2.3、导致原因 1、actuator与注册微服务信息完善1.1、主机名称:服务名称修改1.当前问题:含有主机名或主机ip。2.修改mic...原创 2018-11-22 08:58:22 · 607 阅读 · 0 评论 -
SpringCloud(三)Eureka服务注册与发现《3》(服务发现和集群配置)
1、服务发现对于注册进Eureka里面的微服务,可以通过服务发现来获取服务信息。所有的服务端及访问服务的客户端都需要连接到注册管理器(eureka服务器)。服务在启动时会自动注册自己到eureka服务器,每一个服务都有一个名字,这个名字会被注册到eureka服务器。使用服务的一方只需要使用该名字加上方法名就可以调用到服务。1.1、修改microservice-provider-de...原创 2018-11-22 12:50:42 · 263 阅读 · 0 评论 -
SpringCloud(三)Eureka服务注册与发现《4》(CAP原则和Eureka,Zookeeper的区别)
目录:1、几种常见注册中心区别2、在分布式数据库中的CAP原理CAP+BASE2.1、传统的ACID分别是什么?2.2、什么是CAP?2.3、CAP图谱分析2.4、CAP的3进22.5、与BASE的关系3、作为服务注册中心,Eureka 比Zookeeper好在哪?3.1、Zookeeper 保证的是CP(一致性和分区容错性)3.2、Eureka 保证的是A...原创 2018-12-02 19:04:41 · 539 阅读 · 0 评论 -
SpringCloud(四)Ribbon负载均衡《1》(Ribbon配置及负载均衡)
目录1、Ribbon概述1.1、Ribbon是什么?1.2、负载均衡(LoadBalancer)1.2.1、集中式负载均衡:1.2.3、进程内LB:1.3、Ribbon主要组件1.3.1、ServerList:定义获取服务器列表1.3.2、ServerListFilter:对ServerList服务器列表进行二次过滤1.3.3、ServerListUpdater...原创 2018-12-03 09:21:20 · 430 阅读 · 0 评论 -
SpringCloud(四)Ribbon负载均衡《2》(核心组件IRule及自定义Ribbon负载均衡策略)
1、Ribbon核心组件IRule1.1、解析IRule自带的7种算法IRule:根据特定算法从服务列表中选取一个要访问的服务。IRule实现类如下:RandomRule:随机,使用Random对象从服务列表中随机选择一个服务 RoundRobinRule:轮训策略。默认策略,同时也是更高级rules的回退策略 RetryRule: 轮询 + 重试。先使用RoundRob...原创 2018-12-05 00:03:57 · 846 阅读 · 0 评论 -
SpringCloud(五)Feign负载均衡
1、Feign概述1.1、Feign官网解释http://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-feignFeign是一个声明式WebService客户端。使用Feign能让编写WebService客户端更加简单,他的使用方法是定义一个接口,然后再上面添加注解,同时也支持JAX-RS标准的注解。...原创 2018-12-05 09:58:27 · 264 阅读 · 0 评论 -
SpringCloud(六)Hystrix断路器《1》(服务熔断、服务降级)
1、Hystrix概述1.1、分布式系统面临的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务雪崩:多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩...原创 2018-12-05 23:41:42 · 322 阅读 · 2 评论 -
SpringCloud(六)Hystrix断路器《2》(服务监控hystrixDashboard)
1、服务监控hystrixDashboard1.1、概述除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现...原创 2018-12-06 10:38:16 · 287 阅读 · 0 评论 -
SpringCloud(七)Zuul路由网关
1、Zuul概述1.1、什么是服务网关?服务网关是在微服务前边设置一道屏障,请求先到服务网关,网关会对请求进行过滤、校验、路由等处理。有了服务网关可以提高微服务的安全性,校验不通过的请求将被拒绝访问。前边介绍的Ribbon客户端负载均衡技术可以不用经过网关,因为通常使用Ribbon完成微服务与微服务之间的内部调用,而对那些对外提供服务的微服务,比如:用户登录、提交订单等,则必须经过网关...原创 2018-12-08 17:30:54 · 322 阅读 · 0 评论 -
RestTemplate源码解析及使用详解
一、RestTemplate服务调用在前面Eureka的服务注册与发现中,我们使用了一个非常有用的对象RestTemplate。该对象会使用Ribbon的自动化配置,同时通过配置@LoadBalanced还能开启客户端负载均衡。这里我们详细介绍RestTemplate针对不同请求类型和参数类型的服务调用实现。什么是RestTemplate?RestTemplate是Spring提供的...原创 2018-12-05 15:40:34 · 1402 阅读 · 0 评论 -
SpringCloud服务发现注解之@EnableDiscoveryClient与@EnableEurekaClient
下文是从stackoverflow上面找到的对这两者的解释:There are multiple implementations of "Discovery Service" (eureka, consul, zookeeper). @EnableDiscoveryClient lives in spring-cloud-commons and picks the implementation...转载 2018-11-21 08:58:58 · 1466 阅读 · 0 评论 -
SpringCloud注解和配置以及pom依赖说明
在本文中说明了pom依赖可以支持什么功能,以及支持什么注解,引入该依赖可以在application.properties中添加什么配置。Spring Cloud与Spring Boot版本匹配关系:(选择版本时要注意匹配关系) Spring Cloud Spring Boot Finchley 兼容Spring Boot...转载 2018-11-28 15:32:31 · 1675 阅读 · 0 评论 -
SpringCloud教程合集
Spring Cloud教程合集:1.使用Spring Cloud搭建服务注册中心2.使用Spring Cloud搭建高可用服务注册中心3.Spring Cloud中服务的发现与消费4.Eureka中的核心概念5.什么是客户端负载均衡6.Spring RestTemplate中几种常见的请求方式7.RestTemplate的逆袭之路,从发送请求到负载均衡8.Spring Clou...原创 2018-11-13 10:19:25 · 956 阅读 · 0 评论 -
SpringCloud常见问题总结
目录:1、Eureka1.1、Eureka Environment的配置:1.2、Eureka DataCenter的配置1.3、Eureka开启自我保护的提示1.4、Eureka注册服务慢的问题如何解决?1.5、如何解决Eureka Server不踢出已关停的节点的问题?1.6、Eureka配置instanceId显示IP1.7、Eureka配置最佳实践总结2...原创 2018-11-21 11:22:06 · 589 阅读 · 0 评论 -
SpringCloud性能参数调优
一、zuul并发调优zuul默认是使用semaphore隔离,并且最大的并发默认是101、修改隔离策略默认情况下推荐使用 thread 隔离策略线程池提供了比信号量更好的隔离机制,并且从实际测试发现高吞吐场景下可以完成更多的请求。但是信号量隔离的开销更小,对于本身就是10ms以内的系统,显然信号量更合适zuul: ribbon-isolation-strategy: t...原创 2019-12-03 10:51:49 · 1558 阅读 · 0 评论 -
使用RestTemplate访问https实现SSL请求
方法1: 用java生成证书,不建议,移植性差。方法2: 将RestTemplate改为https请求。1、添加HttpsClientRequestFactory工具类import org.springframework.http.client.SimpleClientHttpRequestFactory;import javax.net.ssl.*;import java.io...原创 2019-12-10 19:04:13 · 10129 阅读 · 1 评论 -
Apache SkyWalking分布式链路追踪系统安装部署
目录1、环境及介质说明2、部署ElasticSearch2.1、ElasticSearch配置文件修改2.2、ES启动2.2.1、添加用户加入组2.2.2、切用户启动2.2.3、查看ES服务是否启动成功2.2.4、关闭ES服务3、部署Apache Skywalking3.1、application.yml3.2、webapp.xml3.3、启动Apa...原创 2019-12-10 19:39:36 · 1385 阅读 · 0 评论