微服务
文章平均质量分 76
zhangyingchengqi
学无止境。
展开
-
spring cloud中部分组件变更情况
原创 2022-03-27 15:17:02 · 452 阅读 · 0 评论 -
Ribbon(六) Ribbon源码分析 - IRULE负载均衡的实现
具体负载均衡服务还是由IRULE实现,在ribbon的使用案例中我们可以注意到切换具体的路由实现非常简单:@RibbonClient(name = "MICROSERVICE-PROVIDER-PRODUCT", configuration = RibbonConfig.class)通过 @RibbonClient指定负载均衡的实现类 RibbonConfig后,在这个类中创建具体实现算法即可.public class RibbonConfig { @Bean pu...原创 2020-10-21 12:13:11 · 521 阅读 · 0 评论 -
Ribbon(五) Ribbon源码分析- Ribbon客户端是如何加载的
1.@RibbonClient注解: 此注解可以实现Ribbon客户端,ribbon需要设置客户端的名称,以及相关的路由配置类. 以下是启用Ribbon客户端的代码:@SpringBootApplication//指定这个新的负载算法类给 MICROSERVICE-PROVIDER-PRODUCT 这个服务用//这里的name 是服务的名称,如果需要有多个服务提供方,这个时候可以使用@RibbonClients进行配置@RibbonClient(name = "MICROSERVI...原创 2020-10-21 11:14:48 · 1083 阅读 · 1 评论 -
Feign启用日志
需求: 想追踪Feign客户端发送的数据. Feign在构建被@FeignClient注解修饰的服务客户端时,会为每一个客户端都创建一个feign.Logger实例,这样就可以利用该日志对象的DEBUG模式来帮助分析Feign的请求细节。 实现步骤: 1.在application.yml中使用 logging.level.<Feign客户端对应的接口的全限定名> 的参数配置格式来开启指定客户端日志.logging: level: com:...原创 2020-10-16 15:21:25 · 1682 阅读 · 0 评论 -
feign启用网络压缩
Spring Cloud feign支持对请求与响应进行GZIP压缩,以减少通信中的性能损耗.在spring-cloud-openfeign-core.jar文件中.默认对请求和相应压缩是禁用的,从org.springframework.cloud.openfeign.encoding;.FeignContentGzipEncodingAutoConfiguration类中可以看到请求压缩是禁用的.@ConditionalOnProperty( value = {"feign...原创 2020-10-14 16:33:48 · 1935 阅读 · 1 评论 -
Ribbon(四) Ribbon源码分析- 在RestTemplate中发出请求时如何被LoadBalancerInterceptor拦截的逻辑
接上一篇.LoadBalancerInterceptor是实现了ClientHttpRequestInterceptor接口的。 它是拦截的起点。 @FunctionalInterfacepublic interface ClientHttpRequestInterceptor { /** *实现该方法,在该方法内完成拦截请求后的逻辑内容。 *对于ribbon而言,在该方法内完成了根据具体规则从服务集群中选取一个服务,并向该服务发起请求的操作。 */..原创 2020-10-13 15:02:48 · 649 阅读 · 0 评论 -
Ribbon(三) Ribbon源码分析-负载均衡是如何通过@LoadBalanced 自动配置上去的
Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一个Spring Cloud构建的微服务和基础设施中。因为微服务间的调用,API网关的请求转发等内容,实际上都是通过Ribbon来实现的,包括后续我们...原创 2020-10-13 14:31:29 · 745 阅读 · 0 评论 -
Ribbon(二) 负载均衡基础-什么是负载均衡
负载均衡是对系统的高可用、网络峰值压力的缓解和处理能力扩容的重要手段之一,是分布式系统基础架构.负载均衡的实现有两种:硬件实现负载均衡:通过在服务器节点之间安装专门用于负载均衡的设备,比如F5等 软件实现负载均衡:通过在服务器上安装一些用于负载均衡功能或模块等软件来完成请求分发工作,比如Nginx等负载均衡系统(不论软硬件实现)的核心:维护一个下挂可用的服务端清单,通过心跳检测来剔除故障的服务端节点以保证清单中都是可以正常访问的服务端节点。当客户端发送请求到负载均衡设备的时候,该...原创 2020-10-12 16:23:51 · 264 阅读 · 0 评论 -
Ribbon(一) 负载均衡基础-如何配置负载均衡并测试
在spring cloud的服务注册与发现中,我们在Eureka Client中当要使用服务消费者调用服务的时候,是通过负载均衡方式调用的。一般的用法如下:1.在配置类中,声明一个RestTemplate的bean,用@LoadBalanced注解修饰://一个配置类:由spring托管@SpringBootConfigurationpublic class AppConfig { @Bean //创建一个 restTemplate 的模板操作对象 @Load...原创 2020-10-12 16:06:55 · 1299 阅读 · 1 评论 -
分布式系统的CAP原则
分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。 分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。 CAP原则又称CAP定理,它是在1998年,由加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(...原创 2020-10-11 18:14:52 · 457 阅读 · 0 评论 -
服务注册中心Eureka与Zookeeper比较
1. 前言服务注册中心,给客户端提供可供调用的服务列表,客户端在进行远程服务调用时,根据服务列表然后选择服务提供方的服务地址进行服务调用。服务注册中心在分布式系统中大量应用,是分布式系统中不可或缺的组件,例如rocketmq的name server,hdfs中的namenode,dubbo中的zk注册中心,spring cloud中的服务注册中心eureka。 在spring cloud中,除了可以使用eureka作为注册中心外,还可以通过配置的方式使用zookeeper作为注册中心。...转载 2020-10-06 07:30:02 · 295 阅读 · 0 评论 -
服务注册中心解决方案Eureka与Zookeeper比较
服务注册中心,给客户端提供可供调用的服务列表,客户端在进行远程服务调用时,根据服务列表然后选择服务提供方的服务地址进行服务调用。服务注册中心在分布式系统中大量应用,是分布式系统中不可或缺的组件,例如rocketmq的name server,hdfs中的namenode,dubbo中的zk注册中心,spring cloud中的服务注册中心eureka。 在spring cloud中,除了可以使用eureka作为注册中心外,还可以通过配置的方式使用zookeeper作为注册中心。既然这样,我...转载 2020-10-06 07:25:58 · 502 阅读 · 0 评论 -
SpringBoot与SpringCloud的版本对应详细版
Spring Cloud是基于Spring Boot技术为基础的,在技术选型时,版本不是随便选择的,否则可能会造成很多意料之外的错误,比如eureka注册了结果找不到服务类啊,比如某些jar导入不进来啊,等等这些错误。 1. 首先可以查看目前maven官方仓库中SpringBoot与SpringCloud版本列表: spring-cloud-dependencies 版本列表可查看: https://mvnrepository.com/artifact/org.springf...原创 2020-10-05 20:29:33 · 10007 阅读 · 0 评论 -
如何实施微服务
按照微服务始祖Martin Fowler在<<Microservice》中的观点,微服务的架构设计有以下九大特性:1、服务组件化组件,是一个可以独立更换和升级的单元。就像PC中的CPU、内存、显卡、硬盘一样,独立且可以更换升级而不影响其他单元。在“微服务”架构中,需要我们对服务进行组件化分解。服务,是一种进程外的组件,它通过http等通信协议进行协作,而不是传统组件以嵌入的方式协同工作。服务都独立开发、部署,可以有效的避免一个服务的修改引起整个系统的重新部署。2、按业务组织团队转载 2020-10-04 16:18:39 · 633 阅读 · 0 评论 -
云计算与微服务的关系
什么是云? 云目前有五种模式,它们是: 1. 基础设施即服务Infrastructure as a Service (IaaS):优点:提供简化的基础设施管理,大规模的水平可伸缩性,通过地理分布实现高冗余,可以跨多个云供应商进行移植并且允许开发人员通过产品覆盖更广泛的受众。 2. 平台即服务 Platform as a Service (PaaS) 3. 软件即服务 Software as a Service( SaaS) 4. 函数即服务...原创 2020-10-04 15:54:52 · 3941 阅读 · 0 评论 -
微服务开发要考虑的问题及基于spring cloud的解决方案
编写并运行健壮的微服务要考虑的问题:核心微服务开发模式微服务路由模式微服务客户端弹性模式:因为微服务架构是高度分布式的,所以必须对如何防止单个服务(或服务实例)中的问题级联暴露给服务的消费者微服务安全模式:使用基于令牌的安全方案,可以实现服务验证和授权,而无需传递客户端凭证微服务日志记录和跟踪模式:微服务构建和布署模式 :spring cloud中实现以上模式的技术栈总览:轻量级微服务全局架构: ...原创 2020-10-04 15:20:52 · 417 阅读 · 0 评论