TypechoJoeTheme

香草物语

统计
登录
用户名
密码
/
注册
用户名
邮箱
输入密码
确认密码
搜索到 12 篇与 的结果
2022-11-24

Spring Cloud Alibaba笔记修订版-第三章Nacos Discovery--服务治理

Spring Cloud Alibaba笔记修订版-第三章Nacos Discovery--服务治理
一、什么是服务治理服务治理是微服务架构中最核心最基本的模块,用于实现各个微服务的自动化注册与发现。服务注册:在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务的详细信息。并在注册中心形成一张服务清单,服务注册中心需要以心跳的方式去监测清单中的服务是否可用,若不可用,需要再服务清单中剔除不可用的服务。服务发现:服务调用方向服务注册中心咨询服务,保宁获取所有服务的实例清单,实现对具体服务实例的访问。通过上面的图会发现,除了微服务,还有一个组件是服务注册中心,它是微服务架构中非常重要的一个组件,在微服务架构里起到了一个协调者的作用。注册中心一般包含以下几个功能:服务发现服务注册:保存服务提供者和服务调用者信息服务订阅:服务调用者订阅服务提供者的信息,注册中心向订阅者推送提供者信息服务配置配置订阅:服务提供者和服务调用者订阅微服务相关配置配置下发:主动将配置推送给服务提供者和服务调用者服务健康检测检测服务提供者的健康状况,如果发现异常,执行服务剔除常见的服务注册中心包括:Zookeeper、Eureka、Consul、Nacos。Nacos是Spring C...
Laughing
2022-11-24

Java

551 阅读
0 评论
2022年11月24日
551 阅读
0 评论
2022-11-23

Spring Cloud Alibaba笔记修订版-第二章微服务环境搭建

Spring Cloud Alibaba笔记修订版-第二章微服务环境搭建
因为第一章都是一些概念性的东西,包括系统架构的演变、微服务架构的介绍(服务调度、服务治理、服务容错、链路追踪等等),大家感兴趣的可以阅读原文,我们这里直接从第二章微服务环境搭建开始。本次使用的电商项目中的商品、订单、用户为案例进行讲解。一、技术选型JDK :1.8maven :3.8.6数据库 :MySQL 8.0.31持久层 :SpringData Jpa其他 :Spring Cloud Alibaba 2021.0.4.0,截止到目前最新版本开发工具 :IntelliJ idea 2022.2# 二、模块设计springcloud-alibaba:父工程shop-common:公共模块【实体类】shop-user:用户微服务【端口:807x】shop-product:商品微服务【端口:808x】`shop-order:订单微服务【端口:809x】2.1、创建父工程打开idea,创建maven工程,选择【New Project】,输入Name、GroupId、ArtifactId,选择存储目录,JDK选择本机安装的1.8版本。点击CREATE完成项目创建。springcloud...
Laughing
2022-11-23

Java

640 阅读
0 评论
2022年11月23日
640 阅读
0 评论
2022-11-22

Spring Cloud Alibaba笔记修订版-序言

Spring Cloud Alibaba笔记修订版-序言
一、为什么会有Spring Cloud Alibaba笔记修订版一系列的文章1、加强个人学习很无意间看到的“一本书”,之所以打上双引号,是一位这不是完整意义上的一本书,其实如标题说的一样,是一本笔记。【笔记】其实更像是个人学习的一个总结,所以书中内容可能会针对个人有深有浅,对于旁人来说,就是左一榔头、有一棒槌,云里雾里,不知所踪。为了个人的学习加深,也为了将别人的东西消化成自己的东西,因此在阅读这本书的时候,有意的做一下记录,形成一套完整的适合大多数人学习的Spring Cloud Alibaba笔记。2、完善代码书中错误【马虎】的代码比较多其实从一开始阅读,我就发发现笔记中有不少“错误”或者说是马虎的粘贴导致的错误,比如用户的微服务叫service-product,其实这是商品的微服务。笔记内代码相对比较古老,好多依赖都已经存在已知的漏洞笔记中版本比较古老Spring Cloud Alibaba笔记写的比较早,所以使用的Spring Cloud Alibaba还是比较早的版本,这并不是说是啥问题,只是随着时间的发展,新的版本替代老的版本是必然的趋势,因此我在阅读这个笔记的时候,...
Laughing
2022-11-22

Java

685 阅读
0 评论
2022年11月22日
685 阅读
0 评论
2021-07-29

Spring Cloud集成Gateway

Spring Cloud集成Gateway
一、SpringCloud Gateway 简介SpringCloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。SpringCloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuul 2.0以上最新高性能版本进行集成,仍然还是使用的Zuul 2.0之前的非Reactor模式的老版本。而为了提升网关的性能,SpringCloud Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty。Spring Cloud Gateway 的目标,不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。二、SpringCloud Gateway 特征Spring...
Laughing
2021-07-29

Java

1,050 阅读
0 评论
2021年07月29日
1,050 阅读
0 评论
2021-07-29

Spring Cloud集成Sentinel之使用OpenFein实现服务调用

Spring Cloud集成Sentinel之使用OpenFein实现服务调用
在Spring Cloud使用OpenFeign调用Nacos服务提供者中,我们介绍了OpenFeign调用Nacos的方式。在Spring Cloud集成Sentinel之@SentinelResource注解使用一文中,我们也介绍了@SentinelResource注解,但是注解的方式,我们本文我们更进一步,介绍以下OpenFeign如何与Setinel集成。添加依赖<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0....
Laughing
2021-07-29

Java

824 阅读
0 评论
2021年07月29日
824 阅读
0 评论
2021-07-28

Spring Cloud集成Sentinel之@SentinelResource注解使用

Spring Cloud集成Sentinel之@SentinelResource注解使用
通过Spring Cloud集成Sentinel之流量控制及Spring Cloud集成Sentinel之服务熔断降级两篇文章,我们可以发现一个问题,当系统触发限流或者熔断时,系统排除的异常很不友好。现在前后端分离项目,我们后端一般会封装一个公共的实体返回给前端,比如下面代码中的CommonResult,了解到这,我们分别介绍以下@SentinelResource注解中常用的几个参数:value、blockHandler、fallback。测试代码@SentinelResource注解代码@RestController public class RateLimitController { @GetMapping("/byResource") @SentinelResource(value = "byResource", blockHandler = "handleException",fallback = "handleFallback") public CommonResu...
Laughing
2021-07-28

Java

876 阅读
0 评论
2021年07月28日
876 阅读
0 评论
2021-07-28

Spring Cloud集成Sentinel之热点参数

Spring Cloud集成Sentinel之热点参数
热点参数何为热点?热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如:商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制热点参数限流会统计传入参数中的热点参数,并根据配置的限流阈值与模式,对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量控制,仅对包含热点参数的资源调用生效。Sentinel 利用LRU策略统计最近最常访问的热点参数,结合令牌桶算法来进行参数级别的流控。热点参数限流支持集群模式。 @GetMapping("/testHotkey") // @SentinelResource(value = "testHotkey", blockHandler = "deal_testHotkey") @SentinelResource(value = "testHotkey") public String tes...
Laughing
2021-07-28

Java

811 阅读
0 评论
2021年07月28日
811 阅读
0 评论
2021-07-28

Spring Cloud集成Sentinel之服务熔断降级

Spring Cloud集成Sentinel之服务熔断降级
Sentinel除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。Sentinel 熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内,对该资源的调用都自动熔断(默认行为是抛出DegradeException)。降级策略通常用以下几种方式来衡量资源是否处于稳定的状态:慢调用比例 (DEGRADE_GRADE_RT):当统计时常内持续进入N个请求同时请求数到达最小请求数,对应时刻的平均响应时间(秒级)均超过比例阈值,那么在接下的时间窗口(DegradeRule中的timeWindow,以s为单位)之内,对这个方法的调用都会自动地熔断(抛出DegradeException)。注意 Sentinel 默认统计的RT上限是4900ms,超出此阈值的都会算作4900ms。若需要变更此上限可以通过启动配置项 -Dcsp.sentinel...
Laughing
2021-07-28

Java

947 阅读
0 评论
2021年07月28日
947 阅读
0 评论
2021-07-28

Spring Cloud集成Sentinel之流量控制

Spring Cloud集成Sentinel之流量控制
在Spring Cloud Alibaba sentinel的安装与配置中,我们介绍了Sentinel的功能以及安装部署方式。在Spring Cloud集成Sentinel之基础功能介绍中,我们介绍了如何在Spring Cloud中集成Sentinel。本文我们在上面的基础上继续深入,介绍一下Sentinel的流量控制功能。Sentinel流量控制介绍流量控制(flow control),其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。FlowSlot会根据预设的规则,结合前面NodeSelectorSlot、ClusterNodeBuilderSlot、StatisticSlot 统计出来的实时信息进行流量控制。限流的直接表现是在执行 Entry nodeA = SphU.entry(resourceName) 的时候抛出 FlowException 异常。FlowException 是 BlockException 的子类,您可以捕捉BlockException来自定义被限流之后的处理逻...
Laughing
2021-07-28

Java

943 阅读
0 评论
2021年07月28日
943 阅读
0 评论
2021-07-28

Spring Cloud集成Sentinel之基础功能介绍

Spring Cloud集成Sentinel之基础功能介绍
Sentinel涉及的知识点比较多,我们这篇文章先看一下基础的,如何在Spring Cloud中引入Sentiel。父工程与前面章节介绍的父工程一样,这里之简单罗列一下依赖<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <junit.version>4.12</junit.version> <log4j.version>1.2.17</log4j.version> <lombok.version>1.16.18</lombok....
Laughing
2021-07-28

Java

853 阅读
0 评论
2021年07月28日
853 阅读
0 评论
2021-07-27

Spring Cloud使用Nacos作为服务中心编写服务提供者

Spring Cloud使用Nacos作为服务中心编写服务提供者
在Nacos集群配置中,我们介绍了Nacos的安装以及集群配置,本文我们介绍一下在Spring Cloud中如何使用Nacos作为服务注册中心。编写父工程父工程只提供基本的依赖关系,一定要注意版本,否则会出现很多乱七八糟的错误。父工程依赖如下<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <...
Laughing
2021-07-27

Java

746 阅读
0 评论
2021年07月27日
746 阅读
0 评论
2021-07-26

Seata基础教程下-Spring Cloud Alibaba使用Seata

Seata基础教程下-Spring Cloud Alibaba使用Seata
在seata基础教程上-seata 1.4.2的安装及基于Nacos的配置中,我们基于Nacos完成了Seata的安装及配置,这篇文章我们介绍下在Spring Cloud Alibaba中的使用。环境准备学习本文之前,你应该准备好以下环境。Nacos 2.0.2版本并运行Seata Server 1.4.2版本,配置好Nacos并运行前置知识本文通过Spring Cloud Alibaba,使用Nacos作为服务中心,通过OpenFeign实现服务之间的调用,所以你必须具备以下基础知识:在Spring Cloud中使用Nacos作为服务注册、发现中心的配置及使用。在Spring Cloud中通过OpenFeign实现服务之间的调用。MyBatis的使用。场景描述本文参考尚硅谷阳哥的视频教程,使用最新的Nacos(2.0.2)及Seata(1.4.2),演示用户下单的业务场景,基本流程如下其实业务很简单,用户下单,扣减商品库存表数据然后减去账户余额,如果不是微服务架构,我们一般使用一个系统,基本上一个@Transactional注解就解决了。基于微服务就不同了,我们提供三个微服务,...
Laughing
2021-07-26

Java

787 阅读
0 评论
2021年07月26日
787 阅读
0 评论