SpringCloud
文章平均质量分 88
SpringCloud
懒虫虫~
无论人生上到哪一层台阶,阶下有人在仰望你,阶上亦有人在俯视你。你抬头自卑,低头自得,唯有平视,才能看见真实的自己!
展开
-
介绍下你们项目中各微服务之间怎么调用的?
在我们的项目中,我们可能会使用一些RPC框架(如gRPC、Thrift等)来定义和生成跨模块之间的通信接口,并通过序列化和反序列化技术来传输数据。在我们的项目中,我们使用一些流行的消息队列系统(如RabbitMQ、Apache Kafka等),其中一个微服务将产生的消息发送到消息队列,而其他相关模块则从队列中订阅并消费这些消息。为了实现这种共享,我们可以将这些共享数据存储在一个或多个共享数据库中(如MySQL、PostgreSQL等),并允许各个模块通过连接到该数据库来读取和写入数据。原创 2023-07-22 16:23:55 · 1496 阅读 · 0 评论 -
自定义starter实现接口或方法限流功能
*** 基于guava的令牌桶/*** 基于sentinel限流//设置受保护的资源 rule . setResource(resourceName);//设置流控规则 QPS rule . setGrade(RuleConstant . FLOW_GRADE_QPS);//设置受保护的资源阈值 rule . setCount(limitCount);//加载配置好的规则 FlowRuleManager . loadRules(rules);原创 2023-07-02 14:41:02 · 316 阅读 · 0 评论 -
SpringCloud Alibaba--Sentinel哨兵使用
继续学习SpringCloud Alibaba的Sentinel,这里测试Nacos的config功能,首先启动nacos服务。启动sentinel-dashboard-1.8.3.jar服务java -jar sentinel-dashboard-1.8.3.jar一、创建cloudalibaba-sentinel-service8401工程pom.xml<!-- SpringCloud alibaba nacos --> <dependency&g原创 2022-02-19 16:26:48 · 1020 阅读 · 2 评论 -
最近项目中的一次SQL查询数据缓慢优化的一点总结
当数据量增多之后,多表关联查询,又增加了模糊查询条件,导致查询缓慢,由于是微服务项目,服务之间调用超时,从而引起连接超时异常,导致服务不可用!一、优化方案1、将SQL拆分、分2次查询2、将两次查询的结果,重新进行封装组合原始SQL如下<select id="getUserGroupPage" resultType="com.xxx.service.api.response.CmsUserGroupResp"> select原创 2022-02-17 19:58:09 · 796 阅读 · 0 评论 -
SpringCloud Alibaba--Nacos配置中心使用
继续学习SpringCloud Alibaba的Nacos,这里测试Nacos的config功能,首先启动nacos服务。一、创建cloudalibaba-config-nacos-client3377工程1 yml配置文件application.yml、bootstrap.ymlspring: profiles: active: dev #表示开发环境server: port: 3377spring: application: name:原创 2022-02-13 15:00:55 · 347 阅读 · 0 评论 -
使用Spring的@Value和@ConfigurationProperties从Nacos或yml中获取值并自动刷新
这里以service项目调用xxl-job为例进行说明一、nacos配置server: port: 32031spring: application: name: t1 profiles: active: local cloud: nacos: config: prefix: t1 group: test namespace: YKF file-extension: properties原创 2022-02-10 23:00:00 · 9070 阅读 · 0 评论 -
SpringCloud Alibaba--Nacos服务注册发现与负载均衡
书接上文,继续跟着周阳老师学习SpringCloud Alibaba的Nacos。首先启动nacos服务。一、Nacos服务提供者创建工程cloudalibaba-provider-payment90011.pom.xml <dependencies> <!-- SpringCloud alibaba nacos --> <dependency> <groupId>com.al原创 2022-01-09 14:07:27 · 561 阅读 · 0 评论 -
SpringCloud H版系列12--Sleuth分布式跟踪
SpringCloud Sleuth一、Spring Cloud Sleuth1.1 Sleuth1.2 基本概念1.3 下载和启动二、项目实战2.1 对8001和80修改pom,引入zipkin依赖。2.2 依次启动7001、8001和80进行测试书接上文,继续跟着周阳老师学习SpringCloud的分布式跟踪框架Sleuth。一、Spring Cloud Sleuth1.1 SleuthSpring Cloud Sleuth为Spring Cloud实现了分布式跟踪,在分布式系统中提供追踪解决方原创 2021-12-04 22:45:28 · 1345 阅读 · 0 评论 -
SpringCloud H版系列11--Stream为微服务应用构建消息驱动能力
Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架。它可以基于 Spring Boot 来创建独立的、可用于生产的 Spring 应用程序。Spring Cloud Stream 为一些供应商的消息中间件产品提供了个性化的自动化配置实现,并引入了发布-订阅、消费组、分区这三个核心概念。原创 2021-12-01 15:41:31 · 438 阅读 · 0 评论 -
SpringCloud H版系列10--Bus消息中心
Bus消息中心一、Spring Cloud Bus1.1Bus 解决的问题1.2刷新类型介绍1.3 Bus消息中心原理和思想二、搭建RabbitMQ三、参照3355模块新建3366模块四、测试书接上文,继续跟着周阳老师学习SpringCloud的消息中心Bus。一、Spring Cloud BusSpring Cloud Bus 集成了市面上常用的消息代理(rabbit mq、kafka等 2种),连接微服务系统中的所有节点,当有数据变更时,可以通过消息代理广播通知微服务及时变更数据;例如微服务的配置原创 2021-11-05 22:56:56 · 352 阅读 · 0 评论 -
application.yml与bootstrap.yml的区别
application.yml与bootstrap.yml的区别一、加载顺序二、配置区别三、属性覆盖问题四、bootstrap.yml典型的应用场景Spring Boot 默认支持 properties(.properties) 和 YAML(.yml .yaml ) 两种格式的配置文件,yml 和 properties 文件都属于配置文件,功能一样。Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap,另外一种是 app原创 2021-10-31 12:45:37 · 860 阅读 · 0 评论 -
SpringCloud H版系列9--Config配置中心
Config配置中心一、Config配置中心二、Config特性2.1 Spring Cloud Config 优势2.2Spring Cloud Config 缺点三、项目实战3.1 在GitHub或者Gitee上创建公开的项目springcloud-config3.2 新建配置中心模块3344 cloud-config-center33443.3 新建cloud-config-client-3355书接上文,继续跟着周阳老师学习SpringCloud的Config,特此整理如下一、Config配置中原创 2021-10-31 09:00:00 · 318 阅读 · 0 评论 -
SpringCloud H版系列8--GateWay服务网关
原创 2021-10-28 22:39:40 · 369 阅读 · 0 评论 -
SpringCloud H版系列7--Hystrix断路器
一、Hystrix在分布式环境中,许多服务依赖项中的一些必然会失败。Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止级联失败和提供回退选项来实现这一点,所有这些都可以提高系统的整体弹性。1.1 Hystrix被设计的目标是:(1)对通过第三方客户端库访问的依赖项(通常是通过网络)的延迟和故障进行保护和控制。(2)在复杂的分布式系统中阻止级联故障。(3)快速失败,快速恢复。(4)回退,尽可能优雅地降级。(5)启原创 2021-10-27 22:31:01 · 148 阅读 · 0 评论 -
SpringCloud H版系列6--OpenFeign服务接口调用
OpenFeign服务接口调用一、OpenFeign二、cloud-consumer-feign-order80三、测试3.1 测试负载均衡3.2 测试超时控制一、OpenFeignFeign是一个声明式的Web Service客户端。它的出现使开发Web Service客户端变得很简单。使用Feign只需要创建一个接口加上对应的注解,比如:@FeignClient注解。Feign有可插拔的注解,包括@Feign注解和JAX-RS注解。Feign也支持编码器和解码器,Spring Cloud Open原创 2021-09-21 14:19:15 · 229 阅读 · 0 评论 -
SpringCloud H版系列5--Ribbon负载均衡服务调用
一、RibbonSpring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一个Spring Cloud构建的微服务和基础设施中。因为微服务间的调用,API网关的请求转发等内容,实际上都原创 2021-09-21 13:38:40 · 114 阅读 · 1 评论 -
SpringCloud H版系列4--Consul服务注册与发现
Consul服务注册与发现一、Consul是什么二、Consul安装和启动三、cloud-providerconsul-payment8006支付服务四、cloud-consumerconsul-order80消费服务五、测试验证一、Consul是什么Consul是一个服务网格(微服务间的 TCP/IP,负责服务之间的网络调用、限流、熔断和监控)解决方案,它是一个一个分布式的,高度可用的系统,而且开发使用都很简便。它提供了一个功能齐全的控制平面,主要特点是:服务发现、健康检查、键值存储、安全服务通信、多原创 2021-09-19 16:37:16 · 438 阅读 · 0 评论 -
SpringCloud H版系列3--Zookeeper服务注册与发现
书接上文(链接: SpringCloud H版系列2–Eureka服务注册与发现以及Eureka集群搭建)利用Zookeeper作为注册中心替代Eureka。创建cloud-provider-payment8004作为服务提供者,cloud-consumerzk-order80作为服务消费者。一、Eureka VS Zookeeper1.1. Eureka保证APEureka服务器节点之间是对等的,只要有一个节点在,就可以正常提供服务。Eureka客户端的所有操作可能需要一段时间才能在Eureka原创 2021-09-19 16:09:48 · 204 阅读 · 0 评论 -
SpringCloud H版系列2--Eureka服务注册与发现以及Eureka集群搭建
书接上文(SpringCloud H版系列1),搭建好项目整体框架,创建完成cloud-provider-payment8001和cloud-consumer-order80两个微服务子模块并能正常启动和访问。一、Eureka基础知识1.1、什么是服务治理?Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、原创 2021-08-29 22:18:08 · 331 阅读 · 0 评论 -
SpringCloud H版系列1<PaymentMain8001和OrderMain80>
这里根据尚硅谷周阳老师的springcloud视频,整理的项目资料,持续更新中。一、新建maven项目springcloud20211 项目整体目录结构如下,持续更新中2 主pom.xml文件<?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"原创 2021-08-29 10:34:05 · 701 阅读 · 0 评论 -
使用Feign作为服务消费者
Ribbon是一个基于Http和TCP的负载均衡工具,Feign(音:菲恩)是一个声明式的伪Http客户端,它比Ribbon更加的优雅。Feign使用的是接口的方式。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。1.1 导入feign依赖 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId&原创 2021-03-06 16:16:07 · 563 阅读 · 1 评论 -
使用Ribbon作为服务消费者
Ribbon是一个基于Http和TCP的负载均衡工具。一、环境准备在上一篇博客的基础上,开启 Eureka–Server 与 Eureka–Client项目。Eureka服务注册与服务发现Eureka–Client 项目开启后,将配置文件中的端口从8762改为8763,再启动一次。这好比启动了两个服务器,模拟一个分布式项目,同一个项目分别部署在8762端口与8763端口。IDEA开启多实例方式如下:1.1在IDEA上点击Application右边的下三角,弹出选项后,点击Edit Configur原创 2021-03-04 16:56:14 · 134 阅读 · 2 评论 -
Eureka服务注册与服务发现
一、环境准备首先创建了一个Maven环境。修改Pom文件,导入SpringCloud的依赖。用Eureka作为服务注册与发现的组件。<?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原创 2021-02-27 12:19:33 · 151 阅读 · 0 评论 -
SpringCould组件有哪些?他们的作用是什么?微服务的CAP是什么?BASE是什么?
一、业务场景介绍先来给大家说一个业务场景,假设咱们现在开发一个电商网站,要实现支付订单的功能,流程如下:1)创建一个订单后,如果用户立刻支付了这个订单,我们需要将订单状态更新为“已支付”2)扣减相应的商品库存3)通知仓储中心,进行发货4)给用户的这次购物增加相应的积分针对上述流程,我们需要有订单服务、库存服务、仓储服务、积分服务。整个流程的大体思路如下:1)用户针对一个订单完成支付之后,就会去找订单服务,更新订单状态2)订单服务调用库存服务,完成相应功能3)订单服务调用仓储服务,完成相应功转载 2021-02-26 18:02:29 · 464 阅读 · 2 评论