
SpringCloud
文章平均质量分 71
分布式微服务
ximeneschen
这个作者很懒,什么都没留下…
展开
-
Feign,Apache Http Client,OkHttp的区别
一、在Java中可以使用的HTTP客户端组件主要有3个,如下:(1)HttpURLConnection,JDK自带(2)Apache HttpComponents,独立的HTTP客户端实现,使用广泛,目前已发展到5.x版本,详见:https://hc.apache.org/index.html(3)OkHttp,一个新出现的HTTP客户端,详见:https://square.github.io/okhttp/为什么已经存在了如Apache HTTPClient和OkHttp这样优秀HTTP客转载 2021-10-24 22:43:02 · 3956 阅读 · 0 评论 -
nacos 配置中心和注册中心依赖后报错,提示 org.apache.http.impl.client.HttpClientBuilder 这个类找不到
https://blog.csdn.net/weixin_44415928/article/details/114817994原创 2021-09-03 12:37:01 · 2054 阅读 · 0 评论 -
Nacos配置中心,拉取配置报NACOS SocketTimeoutException httpGet] currentServerAddr:http://localhost:8848,error超时
Nacos配置中心,项目拉取配置报错错误信息:NACOS SocketTimeoutException httpGet] currentServerAddr:http://localhost:8848, err : connect timed out原因:bootstrap.yml(bootstrap.properties)用来在程序引导时执行,应用于更加早期配置信息读取,如可以使用来配置application.yml中使用到参数等;application.yml(application.prop转载 2021-07-27 11:23:54 · 5483 阅读 · 0 评论 -
分布式锁的3种实现(数据库、缓存[redis]、Zookeeper)
锁是开发过程中十分常见的工具,在处理高并发请求的时候和订单数据的时候往往需要锁来帮助我们保证数据的安全。一、分布式锁的场景场景1.前端点击太快,导致后端重复调用接口。两次调用一个接口,这样就会产生同一个请求执行了两次,而从用户的角度出发,他是因为太卡而点了两次,他的目标是执行一次请求。场景2.对于高并发场景,我们往往需要引入分布式缓存,来加快整个系统的响应速度。但是缓存是有失效机制的,如果某一时刻缓存失效,而此时有大量的请求过来,那么所有的请求会瞬间直接打到DB上,那么这么大的并发量,DB可原创 2021-07-21 11:36:17 · 560 阅读 · 1 评论 -
gateway集成sentinel实现网关限流
一、先启动sentinel参考文章二、编写gateway服务yaml文件server: port: 2004spring: cloud: gateway: discovery: locator: enabled: true #开启从注册中心动态创建路由的功能,利用微服务名进行路由 routes: - id: sentinel-user-feign #路由的ID,没有固定规则但要求唯一,建议配合服务名原创 2021-06-01 09:35:34 · 1047 阅读 · 0 评论 -
Spring Cloud GatewayAPI网关服务
一、Gateway 简介Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和 Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能, 例如:熔断、限流、重试等。Spring Cloud Gateway 具有如下特性:基于Spring Framework 5, Project Reactor 和 Spring Boot 2.0 进行构建;动态路由:能够匹配任何请原创 2021-05-31 17:50:44 · 489 阅读 · 0 评论 -
Nacos注册服务都注册在public空间下
服务注册和服务配置都有命名空间,两个都要指定,单独指定一个config的那你discovery的就是默认的命名空间。#指定获取配置的空间spring.cloud.nacos.config.namespace=2b05af2f-0c7e-4975-b598-f0dce9175d67#指定服务启动后的注册空间spring.cloud.nacos.discovery.namespace=2b05af2f-0c7e-4975-b598-f0dce9175d67...原创 2021-05-28 16:56:07 · 3919 阅读 · 0 评论 -
SpringCloud+Seata1.4+Nacos1.4+MySQL8实现分布式事务(客户端)
本文基于,在此基础上进行更深入的探索一、Seata执行流程TM开启分布式事务(TM向TC注册全局事务记录)按业务场景,编排数据库、服务等事务内资源(RM向TC汇报资源准备状态)TM结束分布式事务,事务一阶段结束(TM 通知TC提交/回滚分布式事务) TC汇总事务信息,决定分布式事务是提交还是回滚TC通知所有RM提交/回滚资源,事务二阶段结束TC (Transaction Coordinator) - 事务协调者 维护全局和分支事务的状态,驱动全局事务提交或回滚TM(Transact原创 2021-03-04 17:03:30 · 473 阅读 · 1 评论 -
Docker搭建Nacos1.3+Seata1.4+MySQL8分布式事务(服务端)
seata的介绍看另一篇文章一、docker启动seata拉取镜像docker pull seataio/seata-server:latest第一次启动seata,复制出其配置的相关文件docker run --name seata-server -p 8091:8091 -d seataio/seata-server:latest复制出容器中的文件到容器外的目录,我的是/mnt/seatadocker cp seata-server:/seata-server /mnt/se原创 2021-03-01 16:23:22 · 853 阅读 · 1 评论 -
Sentinel结合Fejgn接口,进行调用远程接口的调用和限流
sentinel 适配了 Feign 组件。如果想使用,除了引入 sentinel-starter 的依赖外还需要 2 个步骤:1、引入依赖<!--feign对sentinel的支持--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentin原创 2021-02-27 17:36:28 · 877 阅读 · 0 评论 -
使用Idea创建SpringCloud父子工程
一、创建父工程选择Spring Initializr填写项目信息什么都不要选,直接nextfinish父工程是用来进行全局版本控制的,不需要src目录,可以直接删除(如下,很简洁),删除后在maven reimport就可以修改pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.o原创 2021-02-24 17:24:41 · 1451 阅读 · 1 评论 -
Sentinel入门
一、摘要Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,Sentinel 作为其核心组件之一,具有熔断与限流等一系列服务保护功能,本文将对其用法进行详细介绍。二、Sentinel简介随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel具有如下特性:丰富的应用场景:承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀,可以实时熔断下游不原创 2021-02-08 14:31:35 · 302 阅读 · 0 评论 -
引入sentinel后,json转化异常
添加sentinel依赖后返回的是XML格式的数据而不是JSON格式的数据,是因为sentinel中集成了com.fasterxml.jackson.dataformat的 jackson-dataformat-xml。XML优先级比JSON高,所以会先返回XML。两种解决方法:1,去除sentinel依赖包的com.fasterxml.jackson.dataformat依赖<dependency> <groupId>com.alibaba.cloud</gro转载 2021-02-27 14:26:55 · 516 阅读 · 0 评论 -
Sentinel的blockHandler与fallback的区别
一、两者区别这里说明一下,笔者使用的是Alibaba的Sentinel限流降级框架,Sentinel提供了限流、服务降级功能,但是只是限制后,返回不可控的结果肯定是不行的,我们还要保证调用者在调用那些被限制的服务时候,不管是不是被限制,都要让他们拿到一个合理的结果,而不是扔回去一个异常就完事了。Sentinel提供了这样的功能,让我们可以另外定义一个方法来代替被限制或异常服务返回数据,这就是fallback和blockHandler。fallback:若本接口出现未知异常,则调用fallback指转载 2021-02-07 18:18:47 · 5221 阅读 · 0 评论 -
Ribbon 与 Nginx 区别
服务器端负载均衡 Nginxnginx 是客户端所有请求统一交给 nginx,由 nginx 进行实现负载均衡请求转发,属于服务器端负载均衡。既请求由 nginx 服务器端进行转发。客户端负载均衡 RibbonRibbon 是从 eureka 注册中心服务器端上获取服务注册信息列表,缓存到本地,然后在本地实现轮询负载均衡策略。既在客户端实现负载均衡。应用场景的区别:Ngi...原创 2020-05-07 12:59:37 · 330 阅读 · 0 评论 -
Nacos服务的注册,服务的调用,修改配置文件自动刷新和命名空间
一、nacos配置中心的配置使用nacos作为配置中心,不需要再到远端仓库拉取配置文件。详细的nacos控制台配置参见官方链接二、服务的注册创建项目并引入依赖<!--引入nacos client的依赖--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery&原创 2021-02-05 10:39:33 · 3264 阅读 · 1 评论 -
OpenFeign组件的使用(使用nacos作为服务注册中心)
一、OpenFeign介绍Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性(可以使用springmvc的注解),可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,默认实现了负载均衡的效果并且springcloud为feign添加了springmvc注解的支持。思考:使用RestTemplate+ribbon已经可以完成服务间的调用,为什么还要使用fe原创 2021-02-05 10:01:07 · 2748 阅读 · 1 评论 -
Ribbon、Feign、OpenFeign、spring-cloud-openfeign的区别
一、 Ribbon随着服务注册中心的安装完成后,客户端的负载均衡和服务的调用又是我们关注的话题。Ribbon可以实现客户端的负载均衡,负载均衡LBLoadBalance(负载均衡):简单的说就是将用户的请求平摊的分配到多个服务器上,从而达到系统的HA(高可用)。常见的负载均衡工具有nginx、LVS,硬件上F5等集中式LB即在服务的消费方和提供方之间使用独立的LB设施,可以是硬件F5、也可以是软件nginx、LVS等,提供该设施将请求通过某种策略发送给服务提供方进程内LB原创 2021-02-04 18:06:58 · 553 阅读 · 0 评论 -
Nacos 入门教程
一 、Nacos快速入门什么是 NacosNacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式) 的服务基础设施。为什么是Na原创 2021-02-04 14:09:40 · 16516 阅读 · 0 评论 -
服务注册中心,服务配置中心,消息总线
一、服务注册中心什么是服务注册中心服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者 url 串、路由信息等。服务注册中心是微服务架构中最基础的设施之一。注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。简单理解就是:在没有注册中心时候,服务间调用需要知道被当服务调方的具体地址(写死的 ip:port)。更换部署地址,就不得不修改调原创 2021-02-04 10:55:36 · 1577 阅读 · 1 评论 -
@EnableDiscoveryClient
要想将一个微服务注册到Eureka Server(或其他服务发现组件,例如Zookeeper、Consul等),Eureka 2.0闭源之后,Consul慢慢会成为主流。只需:添加Eureka Client(或其他服务发现组件的Client)依赖:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eu原创 2021-02-04 10:04:18 · 2569 阅读 · 0 评论