文章分类 - Spring Cloud Alibaba
摘要:引入依赖 在每一个微服务引入服务配置 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
阅读全文
摘要:配置散落存储问题 当我们的项目采用微服务架构后,原本单一的项目会被拆分为一个个小的微服务。原来项目中的配置文件就需要在每个微服务下都要存储一份,这些配置文件中的内容大部分都是相同的,只有个别的配置项不同。就拿数据库配置来说吧,如果每个微服务使用的技术栈都是相同的,则每个微服务中关于数据库的配置几乎都
阅读全文
摘要:Zipkin 总体上分为服务端和客户端,我们需要下载并启动 ZipKin 服务端的 Jar 包,在微服务中集成 ZipKin 的客户端。 使用 docker 安装 ZipKin 服务端 docker run -d -p 9411:9411 openzipkin/zipkin 整合 ZipKin 客户
阅读全文
摘要:ZipKin 介绍 Zipkin 是 Twitter 的一个开源项目,它基于 Google Dapper 论文实现,可以收集微服务运行过程中的实时链路数据,并进行展示。 Zipkin 是一种分布式链路跟踪系统,能够收集微服务运行过程中的实时调用链路信息,并能够将这些调用链路信息展示到 Web 界面上
阅读全文
摘要:最简整合 引入依赖 在每个微服务(用户微服务 shop-user、商品微服务 shop-product、订单微服务 shop-order、网关服务 shop-gateway)下的 pom.xml 文件中添加如下 Sleuth 的依赖。 <dependency> <groupId>org.spring
阅读全文
摘要:Sleuth 是 SpringCloud 中提供的一个分布式链路追踪组件,在设计上大量参考并借用了 Google Dapper 的设计。 Sleuth 的主要功能 分布式追踪:Sleuth 为每个请求生成一个唯一的追踪 ID(Trace ID),并在请求经过的每个服务中传递这个 ID。这样可以在整个
阅读全文
摘要:链路追踪 在分布式与微服务场景下,需要解决如下问题: 如何快速发现并定位到分布式系统中的问题。 如何尽可能精确的判断故障对系统的影响范围与影响程度。 如何尽可能精确的梳理出服务之间的依赖关系,并判断出服务之间的依赖关系是否合理。 如何尽可能精确的分析整个系统调用链路的性能与瓶颈点。 如何尽可能精确的
阅读全文
摘要:SpringCloud Gateway能够实现多种网关功能,比如路由转发、断言、过滤器、熔断、限流、降级、自定义谓词配置、自定义过滤器等等多种功能。其中最常用的功能有断言、过滤器与熔断机制。 网关断言 断言的主要的作用就是进行条件判断,可以在网关中实现多种条件判断,只有所有的判断结果都通过时,也就是
阅读全文
摘要:我们需要在项目中增加一个服务网关模块 shop-gateway,在服务网关模块中实现网关的能力。此时,我们的项目中就会有用户微服务、商品微服务、订单微服务和服务网关。 新建网关模块 引入依赖 在项目中新建 shop-gateway 模块,在服务网关 shop-gateway 模块的 pom.xml
阅读全文
摘要:当一个系统使用分布式、微服务架构后,系统会被拆分为一个个小的微服务,每个微服务专注一个小的业务。客户端如果要调用各种微服务,只能在客户端记录下每个微服务的每个接口地址,然后根据实际需要去调用相应的接口。 直接使用客户端记录并管理每个微服务的每个接口的方式,存在着太多的问题 由客户端记录并管理所有的接
阅读全文
摘要:Sentinel 核心功能介绍 Sentinel 的核心规则包括流控规则、熔断规则、热点规则、授权规则和系统规则,每种规则的配置方式不同。接下来,就详细介绍下 Sentinel 中的每种规则的作用与效果。 流控规则 Sentinel 的流控规则是其流量控制机制的核心部分,主要用于限制请求流量,保护后
阅读全文
摘要:安装 Sentinel 控制台 在 https://github.com/alibaba/Sentinel/releases 下载控制台,下载后解压,并运行启动命令 java -D"server.port=8888" -D"csp.sentinel.dashboard.server=localhos
阅读全文
摘要:Sentinel 是阿里巴巴开源的一款面向分布式服务架构的轻量级流量控制产品,主要功能是保障服务的稳定性。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。通过对资源的实时监控,在流量达到一定阈值时进行限流、降级等操作,以防止系统因流量过大而崩溃。
阅读全文
摘要:并发对系统的影响 使用压测的方式了解并发对系统的影响,测试步骤: 编写一个并发测试的接口。 限制 tomcat 的最大并发数。 使用 JMeter /order/submit_order 接口进行压测。 使用浏览器访问并发测试的接口,观察接口的性能。 编写并发测试接口 在 shop-order 的
阅读全文
摘要:使用负载均衡的前提是每一个服务提供者服务有多个实例,所以第一步,应该对用户微服务和商品微服务启动多个实例 启动多服务实例 启动多个用户微服务 启动用户微服务时,默认监听的端口为806,如果需要启动多个服务,需要在启动时设置自定义的监听端口。 在 IDEA 的 Edit Configuration 中
阅读全文
摘要:负载均衡就是将原本由一台服务器处理的请求根据一定的规则分担到多台服务器上进行处理。 负载均衡根据发生的位置,可以分为服务端负载均衡和客户端负载均衡。 服务端负载均衡 服务端负载均衡指的是在服务端处理负载均衡的逻辑 负载均衡在服务端进行处理,当客户端访问服务端的服务A时,首先访问到服务端的负载均衡器,
阅读全文
摘要:搭建 Nacos 注册中心 下载和解压 https://github.com/alibaba/nacos/releases 下载Nacos的安装包。 解压Nacos安装包,并在命令行进入到Nacos的bin目录下执行如下命令以单机的方式启动Nacos。 启动和访问 启动Nacos之后,在浏览器中输入
阅读全文
摘要:服务间调用存在的问题 目前,订单微服务为了在调用用户微服务和商品微服务,会将用户微服务和商品微服务的所在的 IP 地址和端口号硬编码到代码中,这样会存在很多问题,其中最重要的三个问题: IP 地址和端口修改问题:如果用户微服务和商品微服务的 IP 地址或者端口号发生了变化,则订单微服务将变得不可用,
阅读全文
摘要:设计完毕后,对各服务进行业务实现 用户微服务开发 引入依赖 在 shop-user 的 pom.xml 文件里添加如下 shop-bean 依赖,shop-bean 模块包含着微服务的各种实体类。 <dependencies> <dependency> <groupId>io.binghe.shop
阅读全文
摘要:整体交互流程 服务规划 对于用户微服务、商品微服务和订单微服务来说,每个服务占用的端口和访问的基础路径是不同的,这里就将每个服务占用的端口和访问的基础路径整理成下表所示。 服务名称 项目名称 占用端口 访问的基础路径 备注 用户微服务 shop-user 8060 /user 提供用户信息的增删改查
阅读全文

浙公网安备 33010602011771号