
Spring Cloud Alibaba 技术栈
pring Cloud Alibaba致力于提供微服务开发的一站式解决方案。方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置就可以将 Spring Cloud 应用接入阿里微服务解决方案
地球村公民
这个作者很懒,什么都没留下…
展开
-
Java Spring Cloud Alibaba-RocketMQ:(六)测试案例测试
测试案例测试1.启动服务2.发送消息测试2.1 发送简单的字符串2.2 发送对象消息2.3 发送事务消息2.4 手动拉取消息1.启动服务启动 2 个服务:rocketmq-produce-examplerocketmq-consumer-example2.发送消息测试2.1 发送简单的字符串http://localhost:28081/send/simple?msg=RocketMQ2.2 发送对象消息http://localhost:28081/send/object?i原创 2020-10-28 20:55:56 · 590 阅读 · 0 评论 -
Java Spring Cloud Alibaba-RocketMQ:(五)完善 rocketmq-consumer-example 项目
完善 rocketmq-consumer-example 项目1.添加配置文件2.添加一个 Sink6.3创建消息的监听器4.主动去 mq 服务器拉起消息5.模型类6.配置类7.启动类1.添加配置文件内容如下:spring.cloud.stream.rocketmq.binder.name-server=127.0.0.1:9876spring.cloud.stream.bindings.input1.destination=test-topicspring.cloud.stream.bi原创 2020-10-28 20:51:04 · 541 阅读 · 0 评论 -
Java Spring Cloud Alibaba-RocketMQ:(四)完善 rocketmq-produce-example 项目
完善 rocketmq-produce-example 项目1.添加一个配置文件2.添加一个启动类3.添加 MQSource4.添加发送消息的类5.添加配置类6.事务消息往往需要我们监听回查7.构建一个简单的模型8.测试消息的发送9.启动类1.添加一个配置文件配置信息如下:logging.level.com.alibaba.cloud.stream.binder.rocketmq=DEBUGspring.cloud.stream.rocketmq.binder.name-server=127原创 2020-10-28 20:41:26 · 461 阅读 · 0 评论 -
Java Spring Cloud Alibaba-RocketMQ:(三)测试框架搭建
测试框架搭建1.搭建 spring-cloud-bus-rocketmq-example1.1 使用 IDEA 创建一个 Maven 项目1.2 添加依赖1.3 完整的 pom.xml 文件2.搭建 rocketmq-produce-example2.1 使用 IDEA 创建一个 Maven 项目2.2 修改 Maven 的打包方式2.3 完整的 pom.xml 文件如下3.搭建 rocketmq-consume-example3.1 使用 IDEA 创建一个 Maven 项目3.2 修改 Maven 的打原创 2020-10-28 20:16:48 · 463 阅读 · 0 评论 -
Java Spring Cloud Alibaba-RocketMQ:(二)Spring Cloud Stream 介绍
Spring Cloud Stream 介绍Spring Cloud Stream 是一个用于构建基于消息的微服务应用框架。它基于 SpringBoot 来创建具有生产级别的单机 Spring 应用,并且使用 Spring Integration 与 Broker 进行连接。Spring Cloud Stream 提供了消息中间件配置的统一抽象,推出了 publish-subscribe、 consumer groups、partition 这些统一的概念。Spring Cloud Stream原创 2020-10-28 20:02:56 · 335 阅读 · 0 评论 -
Java Spring Cloud Alibaba-RocketMQ:(一)RocketMQ 介绍以及基本使用
RocketMQ 介绍以及基本使用1.RocketMQ 介绍2.RocketMQ 基本使用2.1 下载 RocketMQ2.2 RocketMQ 目录分析2.3 配置环境变量2.4 RocketMQ 的启动2.4.1 启动 NameServer2.4.2 启动 Broker2.5 RocketMQ 的停止2.6 RocketMQ 控制台的安装2.6.1 下载 RocketMQ 控制台2.6.2 复制到软件目录里面2.6.3 运行该 jar1.RocketMQ 介绍RocketMQ 是一款开源的分布式原创 2020-10-28 20:00:04 · 2126 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Dubbo:(四)负载均衡调用测试
负载均衡调用测试1.启动多个服务的提供者2.使用消费者负载均衡调用测试1.启动多个服务的提供者修改服务提供者里面实现类的代码:启动多个:再次使用 Clt+D 复制一个:启动这 2 个:现在,共有 3 台同时运行:查看 Nacos:2.使用消费者负载均衡调用测试访问:http://localhost:8080/rpc负载均衡测试成功...原创 2020-10-28 19:48:09 · 789 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Dubbo:(三)代码的完善
代码的完善1.dubbo-api 代码的完善1.1 定义 Dubbo 服务接口1.2 项目的打包2.dubbo-provider 代码的完善2.1 添加依赖2.2 实现 dubbo-api 里面定义的接口2.3 添加配置文件2.4 启动类3.dubbo-consumer 代码的完善3.1 添加依赖3.2 添加配置文件3.3 启动类4.远程调用测试1.dubbo-api 代码的完善1.1 定义 Dubbo 服务接口Dubbo 服务接口是服务提供方与消费方的远程通讯契约,通常由普通的 Java 接口 (原创 2020-10-28 19:44:52 · 444 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Dubbo:(二)框架的搭建
框架的搭建1.搭建 spring-cloud-dubbo-examples1.1 创建项目1.2 添加依赖1.3 修改项目的打包方式1.4 完整的 pom.xml 文件如下2.搭建 dubbo-api2.1 创建 dubbo-api 项目2.2 完整的 pom.xml 文件如下3.搭建 dubbo-provider3.1 创建 dubbo-provider 项目3.2 修改 Maven 的打包方式3.3 完整的 pom.xml 文件如下4.搭建 dubbo-consumer4.1 创建 dubbo-prov原创 2020-10-28 19:31:52 · 716 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Dubbo:(一)项目简介与功能完成度
项目简介与功能完成度1.项目简介2.功能的完成度1.项目简介Dubbo Spring Cloud 基于 Dubbo Spring Boot 2.7.1 和 Spring Cloud 2.x 开发,无论开发人员是 Dubbo 用户还是 Spring Cloud 用户,都能轻松地驾驭,并以接近“零”成本的代价使应用向上迁移。Dubbo Spring Cloud 致力于简化 Cloud Native 开发成本,提高研发效能以及提升应用性能等目的。Dubbo Spring Cloud 首个 Preview原创 2020-10-28 16:12:47 · 358 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Seata:(四)集成 Feign 测试 Seata
集成 Feign 测试 Seata1.改造 business-service1.1 添加依赖1.2 添加 OrderServiceFeign1.3 添加 StorageServiceFeign1.5 改造 OrderService1.6 在启动类里面开启对 Feign 的支持1.7 改造 StorageService2.改造 order-service2.1 添加依赖2.2 添加接口2.3 修改 AccoutService2.4 在启动类里面添加对 Feign 的支持3.重启测试在上面的章节中,我们使用原创 2020-10-28 16:07:51 · 971 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Seata:(三)代码的完善(分布式事务演示)-15800字匠心巨作
代码的完善1.数据库表导入2.模型对象和 Mapper 对象生成3.storage-service 代码的完善3.1 接口设计3.2 实现该接口3.3 使用 Restful 暴露此接口3.4 添加配置文件3.5 添加启动类3.6 启动项目测试4.account-service 代码的完善4.1 接口设计4.2 实现该接口4.3 使用 Restful 暴露此接口4.4 添加配置文件4.5 添加启动类4.6 启动项目测试5.order-service 代码的完善5.1 接口设计5.2 实现该接口5.3 远程调用原创 2020-10-28 15:55:11 · 294 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Seata:(二)框架的搭建-7800字匠心出品
框架的搭建1.搭建 seata-examples 项目1.1 使用 IDEA 创建 Maven 项目1.2 添加依赖在本示例中,我们模拟了一个用户购买货物的场景:StorageService 负责扣减库存数量;OrderService 负责保存订单;AccountService 负责扣减用户账户余额;Business 负责用户下单的整个流程处理;1.搭建 seata-examples 项目seata-examples 用来控制所有项目的依赖版本号,以及去除公共的依赖 seata。1原创 2020-10-28 12:29:03 · 224 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Seata:(一)Seata 简介与安装
Seata 简介与安装1.Seata 简介2.Seata-Server 的安装2.1 下载 Seata2.2 Seata-Server 目录分析2.3 Seata 启动1.Seata 简介Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。在 Seata 开源之前,Seata 对应的内部版本在阿里经济体内部一直扮演着分布式一致性中间件的角色,帮助经济体平稳的度过历年的双 11,对各 BU 业务进行了有力的支撑。经过多年沉淀与积累,商业化产品先后在阿原创 2020-10-27 16:17:39 · 561 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Sentinel:(十二)异常回退方法的其他用法
异常回退方法的其他用法1.说明2.新增 BuyBlockHandler3.新增 BuyFallBack4.改造 BuyController1.说明在当前类中编写回退方法会使得代码变得冗余耦合度高,我们可以将回退方法抽取出来到一个指定类中2.新增 BuyBlockHandler代码如下:public class BuyBlockHandler { // sentinel 回退 public static String buyBlock(@PathVariable String na原创 2020-10-27 16:12:38 · 400 阅读 · 3 评论 -
Java Spring Cloud Alibaba-Sentinel:(十一)完善 sentinel-consumer
完善 sentinel-consumer1.调用服务提供者2.添加配置文件3.添加启动类4.启动测试4.1 启动软件4.2 添加流控的规则1.调用服务提供者代码如下:@RestController public class BuyController { @Autowired private RestTemplate restTemplate; @GetMapping("buy/{name}/{count}") @SentinelResource(value = "buy", fa原创 2020-10-27 16:08:28 · 265 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Sentinel:(十)完善 sentinel-provider
完善 sentinel-provider1.添加一个数据接口2.添加配置文件3.添加一个启动类4.启动测试我们在 provider 里面添加一个模拟数据接口。1.添加一个数据接口代码如下:@RestController public class GoodsController { @GetMapping("/goods/buy/{name}/{count}") public ResponseEntity<String> buy( @PathVariable("name原创 2020-10-27 15:58:53 · 220 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Sentinel:(九)@SentinelResource 简介以及框架初步搭建
@SentinelResource 简介以及框架初步搭建1.@SentinelResource 简介2.框架的搭建2.1 搭建 sentinel-example2.1.1 使用 IDEA 创建一个 Maven 项目2.1.2 添加依赖2.1.3 修改项目的打包方式2.1.4 完整的 pom.xml 文件如下2.2 搭建 sentinel-provider2.2.1 使用 IDEA 创建一个 Maven 项目2.2.2 修改项目的打包方式2.2.3 完整的 pom.xml 文件2.3 搭建 sentinel-原创 2020-10-27 15:54:43 · 325 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Sentinel:(八)授权规则
授权规则原创 2020-10-27 15:36:14 · 492 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Sentinel:(七)系统规则
系统规则系统规则则是针对整个系统设置限流规则,并不针对某个资源,设置页面如下:阈值类型包含以下五种:Load 自适应(仅对 Linux/Unix-like 机器生效):系统的 load1 作为启发指标,进行自适应系统保护。当系统 load1 超过设定的启发值,且系统当前的并发线程数超过估算的系统容量时才会触发系统保护(BBR 阶段)。系统容量由系统的 maxQps minRt 估算得出。设定参考值一般是 CPU cores 2.5。CPU usage(1.5.0+ 版本):当系统 CPU 使用率原创 2020-10-27 15:33:47 · 442 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Sentinel:(六)热点规则
热点规则1.添加一个接口2.添加热点的规则3.测试效果热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的数据,并对其访问进行限制1.添加一个接口@GetMapping("/buy") @SentinelResource("buy") public ResponseEntity<String> buy(String prodName,Integer prodCount){ return ResponseEntity.ok("买" + prodCount + "原创 2020-10-27 15:32:09 · 248 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Sentinel:(五)降级规则
降级规则1.RT1.1 添加测试接口1.2 添加降级的规则1.3 测试2.异常比例2.1 添加接口2.2 添加降级规则2.3 测试3.异常数3.1 添加规则3.2 测试该规则Sentinel 除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。Sentinel 熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它原创 2020-10-27 15:27:33 · 251 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Sentinel:(四)流控规则
流控规则1.QPS 直接失败2.线程数直接失败2.1 添加接口2.2 新增流控规则2.3 测试该规则3.关联3.1 在 TestController 里面添加 api 接口3.2 添加规则3.3 测试规则4.链路4.1 添加一个 Service4.2 添加接口4.3 声明资源4.4 添加链路规则4.5 测试该规则5.预热 Warm Up6.排队等待流量的控制规则。在簇点链路列表中,点击/hello 后面的流控按钮:出现:资源名:标识资源的唯一名称,默认为请求路径,也可以在客户端中使用 @Sen原创 2020-10-27 15:09:48 · 383 阅读 · 2 评论 -
Java Spring Cloud Alibaba-Sentinel:(三)搭建客户端
搭建客户端1.使用 IDEA 创建子模块2.添加依赖3.完整的 pom.xml4.添加一个配置文件5.添加一个启动类6.添加一个 Controller7.启动项目刚才我们搭建了 sentinel-dashboard,我们还需要搭建一个客户端,用于测试 sentinel 的各种功能我们将搭建如图所示的 Maven 项目结构:1.使用 IDEA 创建子模块选择 Maven 项目:点击 Next:Parent:选择 spring-cloud-alibaba-examplesName:原创 2020-10-27 11:28:53 · 610 阅读 · 9 评论 -
Java Spring Cloud Alibaba-Sentinel:(二)Sentinel 控制台安装
Sentinel 控制台安装1.下载 Sentinel2.启动 sentinel-dashboardSentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能。本节将详细记录何如通过 Sentinel 控制台控制 Sentinel 客户端的各种行为。Sentinel 控制台的功能主要包括:流量控制、降级控制、热点配置、系统规则和授权规则等1.下载 Sentinel传送门找到:1.7.1 版本:点击 sentinel-dashboa原创 2020-10-27 11:16:00 · 273 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Sentinel:(一)Sentinel 简介
Sentinel 简介随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性Sentinel 具有以下特征:丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、实时熔断下游不可用应用等完备的实时监控: Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,原创 2020-10-27 11:10:07 · 555 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Nacos 配置中心:(九)Spring Cloud Alibaba Nacos Config 常用的配置
Spring Cloud Alibaba Nacos Config 常用的配置原创 2020-10-27 10:19:42 · 369 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Nacos 配置中心:(八)获取多个配置
获取多个配置1.修改 config-client 里面的配置文件2.在 Nacos 里面完成这 2 个配置文件的创建3.获取配置信息除了通过上面的方式指定一个唯一配置外,我们还可以同时获取多个配置文件的内容1.修改 config-client 里面的配置文件server: port: 8070spring: cloud: nacos: discovery: server-addr: localhost:8848 config: extension-原创 2020-10-26 20:11:59 · 1077 阅读 · 7 评论 -
Java Spring Cloud Alibaba-Nacos 配置中心:(七)配置回滚
配置回滚1.动态刷新2.修改配置文件3.历史版本的查询4.回滚Nacos 中,修改配置点击发布后会创建一个对应的历史版本快照,我们可以在 Nacos 控制台的历史版本列表中找到这些快照1.动态刷新该注解,可以刷新配置。故无需启动就能看见最新的配置信息。2.修改配置文件一直修改配置文件的属性即可。修改后提交3.历史版本的查询可以看见修改的日期4.回滚将配置信息回滚为之前的版本:根据修改时间,我们将 12:38:53 的数据回滚为 12:25:12 的数据:已经原创 2020-10-26 20:04:15 · 1397 阅读 · 1 评论 -
Java Spring Cloud Alibaba-Nacos 配置中心:(六)配置划分实战
配置划分实战1.在 Nacos 控制台中新建一个名称为 dqcgm的命名空间2.在 Nacos 新建配置3.获取配置文件4.重启 config-client 测试Nacos 配置中心的 namespace、dataId 和 group 可以方便灵活地划分配置。比如,我们现在有一个项目需要开发,项目名称为 dqcgm,项目开发人员分为两个组:GROUP_A 和 GROUP_B,项目分为三个环境:开发环境 dev、测试环境 test 和生产环境 prod。dqcgm->GRUOR_A->de原创 2020-10-26 19:59:11 · 331 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Nacos 配置中心:(五)获取配置规则
获取配置规则原创 2020-10-26 19:45:50 · 501 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Nacos 配置中心:(四)获取配置信息
获取配置信息1.添加一个配置文件2.新建一个启动类3.启动测试我们将演示在 config-client 里面获取上面我们写的 2 个配置信息1.添加一个配置文件文件名称为:注意:不是 application.yml ,bootstrap.yml 比 application 有更高的优先级。Idea 能自动的识别该文件的格式:编辑该文件,添加以下内容:server: port: 8070spring: cloud: nacos: discovery:原创 2020-10-26 19:19:42 · 1183 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Nacos 配置中心:(三)在 nacos-server 里面添加配置
在 nacos-server 里面添加配置在 nacos-server 里面添加配置Nacos-client 会从 Nacos-Server 里面获取配置文件,首先,Nacos-Server 里面需要有配置文件才能获取。新建如下所示的配置信息:Data ID: nacos-config.propertiesGroup : DEFAULT_GROUP配置格式: Properties配置内容: user.name=nacos-config-properties user.age=90原创 2020-10-26 19:12:21 · 398 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Nacos 配置中心:(二)项目的搭建
项目的搭建1.创建 config-client 项目2.添加依赖3.完整的 pom.xml 文件我们将在我们 nacos-examples 的基础上,搭建一个 config-client,用来今天 nacos 配置中心的案例测试1.创建 config-client 项目使用 IDEA 创建一个 Maven 模块:-选择 Maven:点击下一步:Parent:选择 nacos-examplesName:config-client其他的项,保持默认点击 FINISH 完成创建的过原创 2020-10-26 17:43:34 · 270 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Nacos 配置中心:(一)Nacos Config 简介
Nacos Config 简介使用 Spring Cloud Alibaba Nacos Config,可基于 Spring Cloud 的编程模型快速接入 Nacos 配置管理功能上一节 Spring Cloud Alibaba Nacos 注册中心记录了 Nacos 作为注册中心的使用方式,这节继续记录下Nacos作为配置中心的使用方式。本节使用的Spring Cloud版本为Hoxton.SR3,Spring Cloud Alibaba 版本为 2.2.0.RELEASE,Spring Boo原创 2020-10-26 17:37:17 · 340 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Nacos 注册中心:(七)Nacos Discovery Starter 更多的配置项
Nacos Discovery Starter 更多的配置项原创 2020-10-26 17:33:44 · 1514 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Nacos 注册中心:(六)Nacos Discovery 对外暴露的 Endpoint
Nacos Discovery 对外暴露的 Endpoint1.给项目添加依赖2.修改配置文件3.查询效果Nacos Discovery 内部提供了一个 Endpoint, 对应的 endpoint id 为 nacos-discovery。我们通过该 Endpoint,能获取到:当前服务有哪些服务订阅者 ;当前应用 Nacos 的基础配置信息 ;1.给项目添加依赖假设我们想看服务提供者(provider)有那些订阅者,以及 Nacos 的基础配置信息。我们就需要给 provider 项目原创 2020-10-26 17:25:46 · 3832 阅读 · 8 评论 -
Java Spring Cloud Alibaba-Nacos 注册中心:(五)负载均衡测试
负载均衡测试1.修改服务提供者的数据接口2.启动多个服务的提供者3.测试负载均衡4.更简单的远程调用测试当服务压力突然变大时,我们需要通过对服务进行弹性伸缩和动态的扩容,让服务展示更强的并发能力和容错能力1.修改服务提供者的数据接口修改服务提供者的接口,可以让我们很清晰的看到,我们当前调用的是那一台服务提供者。让我们来修改 provider 里面 EchoController 这个类代码如下:@RestControllerpublic class EchoController {原创 2020-10-26 17:22:09 · 335 阅读 · 0 评论 -
Java Spring Cloud Alibaba-Nacos 注册中心:(四)使用 Nacos 做注册中心-5100字匠心出品
使用 Nacos 做注册中心1.provider 项目的完善1.1 添加一个 application.yml 配置文件1.2 添加一个启动类1.3 添加一个 API 接口1.4 启动 provider 测试2.consumer 项目的完成2.1 添加一个 application.yml 配置文件2.2 添加一个启动类2.3 服务发现的测试2.4 远程调用的测试1.provider 项目的完善Provider 现在还是一个空的项目,里面没有任何的数据接口1.1 添加一个 application.ym原创 2020-10-26 17:07:54 · 399 阅读 · 4 评论 -
Java Spring Cloud Alibaba-Nacos 注册中心:(三)框架的搭建
框架的搭建1.创建 nacos-examples 的父项目2.创建服务的提供者 provider3.创建服务的消费者我们将使用搭建所示的测试案例1.创建 nacos-examples 的父项目我们将为 Nacos 创建一个单独项目,方便我们来演示和管理 nacos 的相关功能使用 IDEA 创建一个 Maven 模块:点击 next:Name:nacos-examples其他项将会自动的填充进去。点击 Finish 完成创建修改 nacos-examples 里面的 po原创 2020-10-26 16:30:11 · 446 阅读 · 2 评论