Spring Cloud Alibaba

Dubbo对Spring Cloud说:来老弟,我要拥抱你

喜你入骨 提交于 2020-08-11 21:43:08
项目地址 https://github.com/yinjihuan/kitty-cloud 前言 Kitty Cloud 开源后有以为朋友在 GitHub 上给我提了一个 issues,问为什么项目中要同时集成 Feign 和 Dubbo 两个框架来调用服务。今天就来聊一聊这个问题,然后讲下在 Kitty Cloud 中如何切换使用两种调用方式。 为什么要支持两种协议? 关于支持两种协议,我这个是一个开源项目,主要还是为了让使用者有更多的选择。当然框架本身不是我开发的,我只是使用者而已。 一种协议更统一化,两种协议混着用也不是不可以,具体还是看实际需求。比如你们内部有个 ID 分发的服务,调用量很高,就是对性能有这极致的要求。那么这个场景你就可以用 Rpc 来代替 Http 了。其他的正常使用 Http 协议就行,特殊场景的就用 Rpc 协议,互补而已。 用 Http 最好的点在于简单,传输内容就是文本,调试什么的都很方便。比如我要单独测试某个服务的接口,直接 PostMan 上调用这个 Http 接口就可以了,或者用 Swagger。 如果是 Dubbo 的 Rpc, 我可能需要用 telnet 来调用。 还有就是网关层的转发,如果是 Http 协议,直接转发过去了。如果是 Rpc 协议,网关内部需要转特殊处理,当然目前也有支持 Rpc 的网关。如果我们是两种协议

SpringCloudAlibaba笔记(七):RocketMQ--消息驱动

左心房为你撑大大i 提交于 2020-08-11 20:11:24
文章目录 7.1 MQ简介 7.1.1 什么是MQ 7.1.2 MQ的应用场景 7.1.2.1 异步解耦 7.1.2.2 流量削峰 7.1.3 常见的MQ产品 7.2 RocketMQ入门 7.2.1 RocketMQ环境搭建 7.2.1.1 环境准备 7.2.1.2 安装RocketMQ 7.2.1.3 启动RocketMQ 7.2.1.4 测试RocketMQ 7.2.1.5 关闭RocketMQ 7.2.2 RocketMQ的架构及概念 7.2.3 RocketMQ控制台安装 7.3 消息发送和接收演示 7.3.1 发送消息 7.3.2 接收消息 7.4 案例 7.4.1 订单微服务发送消息 7.4.2 用户微服务订阅消息 7.5 发送不同类型的消息 7.5.1 普通消息 7.5.2 顺序消息 7.5.3 事务消息 7.6 消息消费要注意的细节 7.1 MQ简介 7.1.1 什么是MQ MQ(Message Queue)是一种跨进程的通信机制,用于传递消息。通俗点说,就是一个先进先出的数据结构。 7.1.2 MQ的应用场景 7.1.2.1 异步解耦 最常见的一个场景是用户注册后,需要发送注册邮件和短信通知,以告知用户注册成功。传统的做法如下: 此架构下注册、邮件、短信三个任务全部完成后,才返回注册结果到客户端,用户才能使用账号登录。但是对于用户来说

Spring Cloud 和 Dubbo 哪个会被淘汰?

走远了吗. 提交于 2020-08-11 16:05:53
今天在知乎上看到了这样一个问题:Spring Cloud 和 Dubbo哪个会被淘汰?看了几个回答,都觉得不在点子上,所以要么就干脆写篇小文瞎逼叨一下。 简单说说个人观点 我认为这两个框架大概率会长期都存在。 时至今日,这两个框架放到现在,已经不存在谁取代谁这一说了。由于Spring Cloud Alibaba的出现,Dubbo已经很好的融入到了Spring Cloud体系,所以围绕Spring Cloud生态的各种周边产品都是可以无缝整合到一起来玩的。 Dubbo无缝整合Spring Cloud生态是啥意思呢?主要两方面: 如果你原来是Dubbo用户,那么现在可以把Spring Cloud引入进来。轻松便捷地整合Spring Cloud的配置中心、注册中心以及诸如分布式跟踪等好用的周边产品来管理你的分布式服务集群,与其他Spring Cloud Netflix用户享受同等的生态优势。 如果你原来不是Dubbo用户,但是你的场景在使用HTTP调用时候觉得不够效率不够经济,那么就可以考虑引入Dubbo,来提升你服务减调用的RPC性能。 到这里,可能有的看官要说了,你都是站在融合的角度来说的,我就是不喜欢Dubbo那种接口依赖的方式,坚决捍卫Spring Cloud原始生态! 行!这种坚持也是可以的,并没有什么错,通过HTTP契约方式管理服务接口,不用接口提供方的JAR

双剑合璧 Nacos 结合 Sentinel 实现流量安全控制

时光怂恿深爱的人放手 提交于 2020-08-11 14:51:04
  Alibaba Sentinel 是一款高性能且轻量级的流量控制、熔断降级解决方案。是面向分布式服务架构的高可用流量控制组件。   Sentinel 官网: https://sentinelguard.io/zh-cn/   Github: https://github.com/alibaba/Sentinel    Sentinel 是什么      随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来保障微服务的稳定性。    Sentinel 具有以下特征: 丰富的应用场景 :Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时监控 :Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。 广泛的开源生态 :Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。 完善的 SPI 扩展点 :Sentinel 提供简单易用、完善的

MSCode微服务平台框架基于SpringCloud、SpringBoot、Activiti7工作流和阿里巴巴组件,快速开发办公OA、CRM、ERP、电商、信息管理等业务系统

我怕爱的太早我们不能终老 提交于 2020-08-11 14:43:29
MSCode微服务平台框架 mscodecloud.com 是基于Spring Cloud、Spring Boot、Activiti7工作流和Spring Cloud Alibaba阿里巴巴组件,提供所有源码和详尽文档的企业级快速开发平台。 企业级微服务分布式 : 基于 Spring Cloud Hoxton.SR6 、 Spring Boot 2.3.2 和 Spring Cloud Alibaba阿里巴巴组件 实现企业级微服务架构,支持分布式事务,保障业务高性能、高并发、高可用。 所有源码全部提供 : 提供所有源码,易用稳定可扩展。 二次开发各种企业项目,例如办公(OA)、电商、金融、财务、教育、医疗、信息管理(MIS)、客户关系(CRM)和企业资源计划(ERP)等业务系统。根据业务场景和系统状况,提供定制化的架构设计。 多平台快速开发 : 提供Spring Cloud & Spring Boot 微服务分布式版本 和Spring Boot 单体式版本 ,使用 代码生成器 快速开发。 基于稳定生产的商业项目升级优化而来,更加贴近企业级需求,快速 稳定 高效!!! 1、企业级SpringCloud全套解决方案:采用前沿而又通过生产检验的技术,在享受新技术开发带来便利的同时,又能体验新技术的核心思想与最佳实践。 2、Activiti7工作流协同办公

重磅:Consul、Terraform、Vagrant 等禁止中国使用!部分 Spring Cloud 用户或受影响

主宰稳场 提交于 2020-08-11 10:35:36
近日, 国外HashiCorp在官网宣布: 不允许中国境内使用、部署和安装该企业旗下的【企业版】产品和软件。 PLEASE NOTE THAT THE SOFTWARE MAY NOT BE USED, DEPLOYED OR INSTALLED IN THE PEOPLE’S REPUBLIC OF CHINA. 请注意,本软件不得在中华人民共和国境内使用、部署或安装。 (开源版等其它版本没有提及) HashiCorp旗下的知名的开源软件: Terraform: Terraform 是一种安全有效地构建、更改和版本控制基础设施的开源工具(基础架构自动化的编排工具)。它的目标是 "Write, Plan, and create Infrastructure as Code", 基础架构即代码,Terraform也 提供了Kubernetes应用程序的完整生命周期管理,包含Pod的创建、删除以及副本控制等。国内众多公有云都支持Terraform。 Consul : 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发,目前在国内也有大量的使用和落地案例。 Vagrant: 也是一个比较流行的虚拟机管理软件,使用 Vagrant 可以让我们用命令直接从云上下载虚拟机的镜像,然后进行创建和管理等。 其中, Consul 有被整合入

对标Eureka的AP一致性,Nacos如何实现Raft算法

天大地大妈咪最大 提交于 2020-08-11 05:52:20
一、快速了解Raft算法 Raft 适用于一个管理日志一致性的协议,相比于 Paxos 协议 Raft 更易于理解和去实现它。 为了提高理解性,Raft 将一致性算法分为了几个部分,包括领导选取(leader selection)、日志复制(log replication)、安全(safety),并且使用了更强的一致性来减少了必须需要考虑的状态。 相比Paxos,Raft算法理解起来更加直观。 Raft算法将Server划分为3种状态,或者也可以称作角色: Leader 负责Client交互和log复制,同一时刻系统中最多存在1个。 Follower 被动响应请求RPC,从不主动发起请求RPC。 Candidate 一种临时的角色,只存在于leader的选举阶段,某个节点想要变成leader,那么就发起投票请求,同时自己变成candidate。如果选举成功,则变为candidate,否则退回为follower 状态或者说角色的流转如下: 在Raft中,问题分解为:领导选取、日志复制、安全和成员变化。 复制状态机通过复制日志来实现: 日志:每台机器保存一份日志,日志来自于客户端的请求,包含一系列的命令 状态机:状态机会按顺序执行这些命令 一致性模型:分布式环境下,保证多机的日志是一致的,这样回放到状态机中的状态是一致的 Raft算法选主流程 Raft中有Term的概念

替代 Hystrix,Spring Cloud Alibaba Sentinel 快速入门

痴心易碎 提交于 2020-08-11 04:50:34
提起 Spring Cloud 的限流降级组件,一般首先想到的是 Netflix 的 Hystrix。 不过就在2018年底,Netflix 宣布不再积极开发 Hystrix,该项目将处于维护模式。官方表示 1.5.18 版本的 Hystrix 已经足够稳定,可以满足 Netflix 现有应用的需求,所以接下来其会把焦点转向对于自适应的实现,更多关注对应用程序的实时性能做出响应。对于新应用的熔断需求,将采用其它项目实现,Netflix 推荐了 Resilience4j。 作为 Spring Cloud Netflix 重要套件,Hystrix已经成为保障微服务稳定性的首选应用。其实除了 Netflix 和 Resilience4j,限流降级还有一个新的选择,就是阿里巴巴的Sentinel组件。 一、阿里开源 Sentinel 简介 2018年8月,阿里巴巴宣布将 Sentinel 进行开源,同时推出了结合Dubbo的适配器,捐赠给了Apache Dubbo社区。 1.Sentinel 的历史 2012 年,Sentinel 诞生,主要功能为入口流量控制。 2013-2017 年,Sentinel 在阿里巴巴集团内部迅速发展,成为基础技术模块,覆盖了所有的核心场景。Sentinel 也因此积累了大量的流量归整场景以及生产实践。 2018 年,Sentinel 开源,并持续演进。 2

【SpringCloud】Spring Cloud Alibaba 之 Seata 分布式事务中间件(三十五)

↘锁芯ラ 提交于 2020-08-11 02:30:53
什么是分布式事务问题? 单体应用   单体应用中,一个业务操作需要调用三个模块完成,此时数据的一致性由本地事务来保证。 微服务应用   随着业务需求的变化,单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据一致性由本地事务来保证,但是全局的数据一致性问题没法保证。 小结   在微服务架构中由于全局数据一致性没法保证产生的问题就是分布式事务问题。简单来说,一次业务操作需要操作多个数据源或需要进行远程调用,就会产生分布式事务问题。 Seata 是什么?   Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。   官网: http://seata.io/ Seata 组成 Transaction ID(XID)   全局唯一的事务id 三组件   Transaction Coordinator(TC):事务协调器,维护全局事务的运行状态,负责协调并驱动全局事务的提交或回滚   Transaction Manager(TM):控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交或全局回滚的决议   Resource Manager(RM)

掌门教育微服务体系 Solar | 阿里巴巴 Nacos 企业级落地上篇

别说谁变了你拦得住时间么 提交于 2020-08-11 01:12:10
联席作者:吴毅挺 任浩军 张彬彬 廖梦鸽 张金星 胡振建 郑重鸣谢:Nacos - 彦林,Spring Cloud Alibab - 小马哥、落夜,Nacos 社区 - 张龙(pader)、春少(chuntaojun) 前言 在高速发展的时候,公司规模越来越大,老师人数越来越多,这时候公司不能铺太多人去做运营与服务,必须提高每个人效,这就需要技术驱动。因此掌门教育转变成一家技术驱动型的公司,如果被迫成为一家靠资金驱动的公司就活不下去了。 -- 张翼(掌门教育创始人兼 CEO) 掌门教育自 2014 年正式转型在线教育以来,秉承“让教育共享智能,让学习高效快乐”的宗旨和愿景,经历云计算、大数据、人工智能、 AR / VR / MR 以及现今最火的 5G ,一直坚持用科技赋能教育。掌门教育的业务近几年得到了快速发展,特别是今年的疫情,使在线教育成为了新的风口,也给掌门教育新的机遇。 随着业务规模进一步扩大,流量进一步暴增,微服务数目进一步增长,使老的微服务体系所采用的注册中心 Eureka 不堪重负,同时 Spring Cloud 体系已经演进到第二代,第一代的 Eureka 注册中心已经不大适合现在的业务逻辑和规模,同时它目前被 Spring Cloud 官方置于维护模式,将不再向前发展。如何选择一个更为优秀和适用的注册中心,这个课题就摆在了掌门人的面前。经过对 Alibaba