Spring Cloud Alibaba开发实践
文章平均质量分 76
Spring Cloud Alibaba
ZWZhangYu
这个作者很懒,什么都没留下…
展开
-
本地启动时避免将服务注册到Eureka网关
在某些情况下,我们获取的配置都是远程配置中心的,即使本地开发也不能随意修改影响别人,针对于此可以通过本地修改代码的方式,例如可以限制获取本地的操作系统属性,如果是windows或者mac则不进行注册。当在本地开发时,有时你可能想要避免将服务注册到网关,这样可以更轻松地进行单独的服务测试。在使用Eureka注册服务时,你可以通过配置来控制服务是否注册到Eureka服务器。这样配置后,服务启动时将不会向Eureka注册自己,也不会从Eureka获取服务注册信息。这对本地开发和测试来说是非常方便的。原创 2023-12-10 11:47:42 · 953 阅读 · 0 评论 -
Dubbo基础实例
(一)定义公共服务接口模块本次实例演示接口调用,消费者调用getUser(int id)方法获取远程服务数据创建公共接口项目dubbo-common-interface,创建实体类和接口,对外暴露创建实体类,序列化public class User implements Serializable { private static final long serialVersionUID =...原创 2020-02-25 17:01:24 · 1180 阅读 · 0 评论 -
Dubbo-Admin控制台
(一)环境搭建前往github上下载dubbo-admin地址:https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.0注意:dubbo-2.6.1以后的版本不再有dubbo-adminincubator-dubbo-dubbo-2.6.0.zip,解压文件到当前面目录进入dubbo-admin文件夹,只需要打包该文件夹即可,输...原创 2020-02-25 17:04:24 · 1294 阅读 · 0 评论 -
Dubbo介绍
(一)背景随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已经无法应付,分布式服务架构以及流动计算架构势在必行1、单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。2、垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的...原创 2020-02-25 16:58:06 · 1124 阅读 · 0 评论 -
Spring Cloud Gateway网关——过滤器
全局过滤链的执行顺序是,当Gateway接收到请求时,Filtering Web Handler处理器会将所有的GlobalFilter实例及所有路由上所配置的GatewayFilter实例添加到一条过滤器链中。该过滤器链里的所有过滤器都会按照@Order注解所指定的数字大小进行排序。原创 2021-05-29 14:32:10 · 4525 阅读 · 1 评论 -
Spring Cloud Gateway网关实战
文章目录介绍基础示例spring-cloud-gateway-servicespring-cloud-gateway-sample网关介绍Spring Cloud Gateway是Spring官方团队研发的API网关技术,它的目的是取代Zuul为微服务提供一种简单高效的API网关。一般来说,Spring团队不会重复造轮子,为什么又研发出一个Spring Cloud Gateway呢?有以下几方面原因。1:Zuul 1.x采用的是传统的thread per connection方式来处理请求,也就是针原创 2021-05-29 11:00:29 · 1984 阅读 · 1 评论 -
分布式系统日志追踪实现
全服务唯一的traceId,可以使用uuid生成,正常来说不会出现重复的;关于服务间传递,对于调用者,在协议头加上traceId,对于被调用者,通过前置拦截器或者过滤器统一拦截;关于服务内部传递,可以使用ThreadLocal传递traceId,一处放置,随处可用;关于多线程传递,分为两种情况:子线程,可以使用InheritableThreadLocal。线程池,需要改造线程池对提交的任务进行包装,把提交者的traceId包装到任务中原创 2021-05-23 10:53:26 · 2472 阅读 · 0 评论 -
RocketMQ实现顺序消息原理分析
顺序消费也称为有序消费,原理是同一个消息队列只允许Consumer中的一个消费线程拉取消费。Consumer中有个消费线程池,多个线程会同时消费消息。在顺序消费的场景下消费线程请求到Broker时会先申请独占锁,获得锁的请求则允许消费。原创 2021-05-17 21:29:48 · 2614 阅读 · 0 评论 -
Spring Cloud Alibaba RocketMQ架构与源码分析
Spring Cloud Stream是Spring Cloud体系内的一个框架,用于构建与共享消息传递系统连接的高度可伸缩的事件驱动微服务,其目的是简化消息业务在Spring Cloud应用程序中的开发。Spring Cloud Stream的架构图如图所示,应用程序通过Spring Cloud Stream注入的输入通道inputs和输出通道outputs与消息中间件Middleware通信,消息通道通过特定的中间件绑定器Binder实现连接到外部代理原创 2021-05-15 17:21:47 · 2057 阅读 · 0 评论 -
RocketMQ收发消息实践
RocketMQ是一个低延迟、高可靠、可伸缩、易于使用的分布式消息中间件(也称消息队列),经过阿里巴巴多年双11的验证,是由阿里巴巴开源捐献给Apache的顶级项目。RocketMQ具有高吞吐低延迟、海量消息堆积等优点,同时提供顺序消息、事务消息、定时消息、消息重试与追踪等功能,非常适合在电商、金融等领域广泛使用。原创 2021-05-15 14:29:13 · 2165 阅读 · 0 评论 -
RocketMQ介绍和安装
文章目录(一)认识(二)应用场景(三)RocketMQ的安装(一)认识在微服务架构下,一个业务服务会被拆分成多个微服务,各个服务之间相互通信完成整体的功能。系统间的通信协作通常有两种。1:Http/RPC通信:优点是通信实时,缺点是服务之间的耦合性高。2:消息通信︰优点是降低了服务之间的耦合性,提高了系统的处理能力,缺点是通信非实时。RocketMQ是一个低延迟、高可靠、可伸缩、易于使用的分布式消息中间件(也称消息队列),经过阿里巴巴多年双11的验证,是由阿里巴巴开源捐献给Apache的顶级项目。原创 2021-05-15 14:21:15 · 1794 阅读 · 3 评论 -
【RocketMQ】Send [1] times, still failed以及No route info of this topic问题排查思路总结
文章目录1. 检查MQ是否正常启动2. 检查端口是否可以正常访问3 检查topic是否存在4. Broker的IP地址错误,造成网络不通1. 检查MQ是否正常启动RocketMq的日志默认位置:cd ~/logs/rocketmqlogs说明正常启动了NameServer说明正常启动了NameServer说明broker已经注册到了NameServer2. 检查端口是否可以正常访问在windows环境下运行下面命令telnet ip 9876telnet ip 10911原创 2021-05-09 14:27:12 · 5756 阅读 · 2 评论 -
10分钟入门Nacos+Feign服务间接口调用
Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求。Spring Cloud引入 Feign并且集成了Ribbon实现客户端负载均衡调用。原创 2021-05-07 22:10:48 · 8262 阅读 · 1 评论 -
10分钟入门Nacos配置中心和服务注册
关于nacos配置中心和服务发现原理可参见我之前发过的博客,这里不再叙述,本文主要以SpringBoot+Nacos快速应用配置中心功能和服务发现【SpringBoot版本】<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <vers原创 2021-05-06 22:42:42 · 1822 阅读 · 5 评论 -
Seata AT模式的实现原理
文章目录(一)AT模式第一阶段的实现原理(二)AT模式第二阶段的原理分析1. 事务提交2.事务回滚(三)事务的隔离性保证1. 写隔离2. 读隔离参考AT模式是基于XA事务模型演进而来的,所以它的整体机制也是一个改进版的两阶段提交协议。第一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。第二阶段:提交异步化,非常快速地完成。回滚通过第一阶段的回滚日志进行反向补偿。下面我们详细分析在整个执行流程中,每一个阶段的具体实现原理。同时,为了更好地理解AT模式的工作机制,我们以库存原创 2021-05-04 14:30:17 · 3728 阅读 · 0 评论 -
分布式事务问题理论模型
文章目录(一)X/Open分布式事务模型(二)两阶段提交协议(1)介绍(2)俩阶段提交的缺点(三)三阶段提交协议(1)介绍(2)两阶段提交和三阶段提交不同分析(四)CAP定理(五)BASE理论(一)X/Open分布式事务模型XA协议由Tuxedo首先提出的,并交给X/Open组织,作为资源管理器(数据库)与事务管理器的接口标准。目前,Oracle、Informix、DB2和Sybase等各大数据库厂家都提供对XA的支持。XA协议采用两阶段提交方式来管理分布式事务。XA接口提供资源管理器与事务管理器之间进原创 2021-05-03 11:44:04 · 1846 阅读 · 0 评论 -
Spring Cloud Sentinel工作原理分析
文章目录(1)介绍(2)SentinelWebAutoConfiguration自动装配(3)CommonFilter分析(1)介绍在Spring Cloud中使用Sentinel实现限流的场景中,我们并不需要任何配置,Sentinel会自动保护所有的HTTP服务,在Spring-Cloud-Starter-Alibaba-Sentinel包中,我们知道Starter组件会用到自动装配,所以直接找到META-INF/spring.factories文件。这里EnableAutoConfigurat原创 2021-04-07 21:10:58 · 2175 阅读 · 0 评论 -
数据持久层架构——冷热分离
在处理数据时,将数据库分成了冷库和热库 2 个库,不常用数据放冷库,常用数据放热库。通过这样的方法处理后,常用的数据量大大减少了,也大大提升了数据库响应速度。原创 2021-04-05 20:53:02 · 1791 阅读 · 0 评论 -
SpringCloud集成Sentinel实践
文章目录(一)接入SpringCloud(二)配置流控规则(三)基于Sentinel Dashboard来实现流控配置(四)自定义URL限流异常(五)URL资源清洗(一)接入SpringCloudSpring Cloud Alibaba默认为Sentinel整合了Servlet、RestTemplate、FeignClient和Spring WebFlux,它不仅补全了Hystrix在Servlet和RestTemplate这一块的空白,而且还完全兼容了Hystrix在FeignClient中限流降级的原创 2021-03-31 22:45:01 · 2711 阅读 · 5 评论 -
微服务限流熔断总结及Sentinel基础认识
限流的主要目的是通过限制并发访问数或者限制一个时间窗口内允许处理的请求数量来保护系统,一旦达到限制数量则对当前请求进行处理采取对应的拒绝策略,比如跳转到错误页面拒绝请求、进入排队系统、降级等。从本质上来说,限流的主要作用是损失一部分用户的可用性,为大部分用户提供稳定可靠的服务。原创 2021-03-31 20:30:52 · 1820 阅读 · 0 评论 -
Sentinel资源保护规则
文章目录(1)介绍(2)资源保护规则(3)Grade:限流阈值类型(4)controlBehavior:流控行为(5)调用关系流量策略(1)介绍Sentinel支持多种保护规则:流量控制规则、熔断降级规则、系统保护规则、来源访问控制规则、热点参数规则。限流规则先通过FlowRule来定义限流规则,然后通过FlowRuleManager.loadRules来加载规则列表。完整的限流规则设置代码如下: //定义规则列表 List<FlowRule> rules = new A原创 2021-03-16 21:37:53 · 2299 阅读 · 0 评论 -
分布式设计——限流算法
文章目录(1)计数器算法(2)滑动窗口算法(3)令牌桶限流算法(4)漏桶限流算法(1)计数器算法计数器算法是一种比较简单的限流实现算法,在指定周期内累加访问次数,当访问次数达到设定的阈值时,触发限流策略,当进入下一个时间周期时进行访问次数的清零。实践:短信验证码,一分钟中不能重复发送不足:由于是固定周期区间,容易出现极值问题,比如并发请求都集中在前一分钟的后几秒后下一分钟的前几秒(2)滑动窗口算法为了解决计数器算法带来的临界问题,所以引入了滑动窗口算法。滑动窗口是一种流量控制技术,在TCP网络通原创 2021-03-15 21:49:18 · 1760 阅读 · 0 评论 -
分布式架构——弹力设计
容错设计又叫弹力设计,其中着眼于分布式系统的各种“容忍”能力,包括容错能力(服务隔离、异步调用、请求幂等性)、可伸缩性(有 / 无状态的服务)、一致性(补偿事务、重试)、应对大流量的能力(熔断、降级)。可以看到,在确保系统正确性的前提下,系统的可用性是弹力设计保障的重点。原创 2021-03-14 13:32:41 · 1749 阅读 · 0 评论 -
分布式配置中心Nacos
文章目录(一)本地配置方式的问题(二)Nacos配置中心(1)基本介绍(2)基于Data ID配置YAML的文件扩展名(3)不同环境的配置切换(三)Nacos Config 实现原理解析(1)SDK和OpenAPI(2)配置的CRUD(3)动态监听之Pull Or Push(一)本地配置方式的问题1、配置的动态更新在实际应用中会有动态更新配置的需求,比如修改服务连接地址、限流的配置等。在传统模式下,需要手动修改配置文件并且重启应用才能生效,这种方式效率太低,重启也会导致服务暂时不可用。2、配置集中式原创 2021-03-09 20:48:08 · 2964 阅读 · 3 评论 -
服务注册与发现——Nacos
文章目录(1)前言(2) Alibaba Nacos基本介绍(3)基本使用(4)Nacos的高可用部署(5)Nacos实现原理分析(6) 注册中心的原理(1)前言服务消费者要去调用多个服务提供者组成的集群。首先,服务消费者需要在本地配置文件中维护服务提供者集群的每个节点的请求地址。其次,服务提供者集群中如果某个节点下线或者宕机,服务消费者的本地配置中需要同步删除这个节点的请求地址,防止请求发送到已宕机的节点上造成请求失败。为了解决这类的问题,就需要引入服务注册中心.主要有以下功能:1、服务地址的管理。原创 2021-03-08 20:37:22 · 2243 阅读 · 0 评论 -
微服务解决方案之Spring Cloud
文章目录(一)Spring Cloud基本介绍(二)Spring Cloud版本介绍(三)Spring Cloud规范下的实现Spring Cloud Netflix(四)Spring Cloud规范下的实现Spring Cloud Alibaba(1)技术框架(2)优势分析(3)Spring Cloud Alibaba的版本(一)Spring Cloud基本介绍Spring Cloud是Pivotal公司在2015年发布的一个项目,很多人可能不知道Pivotal公司,Spring就是Pivotal公司原创 2021-02-11 12:35:32 · 2935 阅读 · 4 评论 -
微服务的发展历程和挑战
文章目录(一)发展历程(1)前言(2)单体架构(3)集群及垂直化(4)SOA(5)微服务架构(二)微服务架构带来的挑战(1)优点(2)挑战(3)微服务基本架构(一)发展历程(1)前言任何现在看起来非常复杂和庞大的架构,一定都是随着业务产品中用户量和数据量增长而不断演变来的。而架构的发展可能都会经历单体架构、垂直化和集群、SOA(面向服务架构)、微服务架构等。当然不是所有的公司都会严格按照这个架构的顺序来演进,每个公司遇到的问题不一样,架构的发展过程也不一样。特别是互联网公司的架构,用户量大部分情况下属原创 2021-02-11 09:12:48 · 2906 阅读 · 3 评论 -
Spring Cloud版本介绍
Spring Cloud是一套整合了各大公司开源技术的规范,而这些开源技术的版本发布是由各个公司来维护的,每个子项目都维护了自己的发布版本号,所以它不像传统意义上的版本命名,而是采用了伦敦地铁站的名字根据字母表的顺序结合对应版本的时间顺序来定义一个大版本,Spring Cloud以往的版本发布顺序排列如下:Spring Cloud的每一个大版本通过BOM ( Bill of Materials )来管理每个子项目的版本清单,下图所示是Spring Cloud官网提供的各个子项目的版本清单,表头(Edgw原创 2020-12-18 17:29:15 · 2836 阅读 · 1 评论