Spring Cloud 学习

微服务优点:独立部署,独立测试,快速迭代,快速回滚,资源弹性分配效率高,高可用(流量整形、计算资源灵活分配、熔断降级)

Spring boot功能(微服务中主内):基于自动装配以及开箱即用,实现了数据层访问、restful接口,日志,内置容器的功能,比较快速的搭建出一个应用;

SPring‘ cloud (微服务中主外):提供了分布式的支持,例如负载均衡、熔断降级、配置管理、注册中心、网关;

Spring Cloud 的组件库:

1. NetFlix: eurake + ribbon, Hystrix,zuul (现在除了 Eureka,其他的都消散了)

2. Alibaba:

微服务框架的三个阶段:

1.微服务之间的通信;通过注册中心(这里是Nacos)将服务注册和进行服务的发现;还会涉及到 loadBalancer,openFeigh

Nacos通过将手机所有的服务节点的地址信息,客户端通过loadbalancer选择Nacos的注册表中找到目标服务器;Openfeigh可以简化Htto的远程服务调用(使得可以向调用本地服务一样简单)

2.

利用服务容错提高微服务架构的可用性;搭建全链路的分布式链路追踪能力;实现统一的配置管理和动态属性推送。

3.

搭建微服务网关作为统一流量入口;使用消息驱动组件对接 RabbitMQ;通过分布式事务保证数据一致性。

微服务网关:外部网关(Nginx)和微服务内部的一座桥梁,Spring cloud GateWay(网关组件+ 谓词组件进行路由判断,定义拦截器)

分布式事务是微服务环境下保证事务一致性的终极手段。在课程中我将主要介绍两种比较有代表性的 Seata 分布式事务解决方案,一种是没有代码侵入的 Seata AT 方案,另一种是蚂蚁金服贡献的资源锁定 + 补偿型的 Seata TCC 方案。

POJO,即 Plain  Old Java Object,还是最擅长创建软件概念的 Martin Fowler 的杰作。它指的就是一个普通和简单的 Java 对象,没有特殊限制,也不和其它类有关联(它不能继承自其它类,不能实现任何接口,也不能被任何注解修饰)。

服务治理:解决服务的注册和发现。以前是通过一个中间的代理的虚拟ip(vip,里面自己闭环负载均衡和集群管理,缺点,运维同学管理比较头疼)。服务A可以从注册中心拿到服务B的所有机器列表。服务发现(有主动和被动),服务器A根据自己的负载均衡策略从列表选取一个节点进行调用;

注册的关键信息:第新信息,服务名,额外的注册参数。

容错机制:

provider主动或者被动下线(心跳机制),消费者通过监听或者定时去拉取对应最新列表

Nacos 作为注册中心:

节点:持久化(不健康了也不会剔除,只是标记为不健康,会持久化被保存在Nacos里面)或者临时节点(不会被持久化道Nacos里面,通过heartBeat进行报送自己的状态);

3.实例

服务节点,可以看到每个节点的ip,端口,元数据信息,上下线,权重信息;

4 Nacos的数据模型

数据模型Nacos 的数据模型有三个层次结构,分别是 Namespace、Group 和 Service/DataId,我画了一幅图,帮你理解这三个层次之间的包含关系:

Namespace:即命名空间,它是最顶层的数据结构,我们可以用它来区分开发环境、生产环境等不同环境。默认情况下,所有服务都部署到一个叫做“public”的公共命名空间;Group:在命名空间之下有一个分组结构,默认情况下所有微服务都属于“DEFAULT_GROUP”这个分组,不同分组间的微服务是相互隔离的;Service/DataID:在 Group 分组之下,就是具体的微服务了,比如订单服务、商品服务等等。通过 Namespace + Group + Service/DataID,我们就可以精准定位到一个具体的微服务。比如,我想调用生产环境下 A 分组的订单服务,那么对应的服务寻址的 Key 就是类似 Production.A.orderService 的组合。

Nacos两个用途:1.服务发现 2。配置中心

Nacos基本架构:

 

,Nacos 还有一个“一致性协议”,用来确保 Nacos 集群中各个节点之间的数据一致性。Nacos 内部支持两种一致性协议,一种是侧重一致性的 Raft 协议,基于集群中选举出来的 Leader 节点进行数据写入;另一种是针对临时节点的 Distro 协议,它是一个侧重可用性(或最终一致性)的分布式一致性协议。

08 | 服务治理 -Nacos集群搭建

服务发现的原理:

1.客户端client通过主动轮训的方法,定时任务获取namespace、group 分组,cluster获取服务注册消息,具体的事 uodatetask类

//自定义注解实现

 +

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值