SpringCloud合集
文章平均质量分 85
两米以下皆凡人
这个作者很懒,什么都没留下…
展开
-
分布式事务管理(Seata)
1、概述①、分布式事务问题分布式前单机单库,即一个web服务仅对应一个MySQL数据库1:N或者N:N,也就是一个服务对应多个数据库或多个服务对应多个数据库。分布式后单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据—致性由本地事务来保证,但是全局的数据一致性问题没法保证。②、什么是Seata官方中文档Seata(Simple Extensible Autonomous T原创 2021-02-25 20:54:32 · 4357 阅读 · 3 评论 -
服务熔断与降级(Sentinel)
1、概述官方Git仓库中文文档①、什么是Sentinel随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。回顾以前的Hystrix,我们做到了服务熔断,服务降级,但是Hystrix没有一套Web界面可以让我们更加细粒化的配置,Sentinel和Nacos一样,不再需要我们手动的去创建某个微服务模块来专门实现对应功能,直接用一套Web界面供我们进行细粒化的统一配置,管理。②、Windows原创 2021-02-24 18:47:12 · 1764 阅读 · 0 评论 -
Sentinel做服务熔断与限流,服务能被监控,但是监控列表为空的问题思考
首先我觉得,服务和Sentinel不在同一台机器上面,本身是能够正常监控的,只要保证两台机器能够在一个内网中,能够互相连通即可我在学习Sentinel的时候,我盲目使用云服务器的docker拉取Sentinel镜像,但是我开启了服务后,服务虽然能被Sentinel监控,但是监控列表为空当我用本机Windows下载Sentinel运行,监控列表又能正常显示我纠结了这个问题很久,网上也找到了很多的解决方案,他们无非是在配置文件中添加了一行client-ip又或是clientIp,跟上本机.原创 2021-02-22 14:11:42 · 1715 阅读 · 7 评论 -
从0到1,手把手教你搭建一个Nginx+MySQL+Nacos集群
因为阿里云学生机内存1G太寒酸,当我启动第二个Nacos的时候,机器就躺尸了,不得不切换到虚拟机上操作,nacos全部放在了一台虚拟机上面,算一个伪集群吧,本文基于CentOS8+MySQL8,从0到1一步步记录,欢迎交流1、配置JDK#切换root用户su root#安装jdkyum install -y java-1.8.0-openjdk*安装完成,jdk默认安装路径为/usr/lib/jvm#获取jdk安装目录列表,复制jdk程序根目录ls /usr/lib/jvm#获取目录原创 2021-02-21 16:22:31 · 273 阅读 · 0 评论 -
服务注册与配置中心(Nacos)
1、概述①、什么是Cloud Alibaba2018.10.31,Spring Cloud Alibaba正式入驻了Spring Cloud官方孵化器,并在Maven中央库发布了第一个版本。中文文档,官方文档Spring Cloud for Alibaba,它是由一些阿里巴巴的开源组件和云产品组成的。这个项目的目的是为了让大家所熟知的Spring 框架,其优秀的设计模式和抽象理念,以给使用阿里巴巴产品的Java开发者带来使用Spring Boot和Spring Cloud 的更多便利。②、原创 2021-02-19 18:29:56 · 816 阅读 · 0 评论 -
SpringCloud系列之分布式请求链路跟踪(Sleuth)
1、概述①、为什么使用Sleuth在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。对于上面这张图,较为简单,监控与否无关紧要,但是对于大型分布式系统而言呢?成百上千个服务使我们不得不对服务链路进行追踪②、什么是Sleuth源码仓库,官方文档Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,在分原创 2021-02-18 20:49:18 · 339 阅读 · 0 评论 -
SpringCloud系列之消息驱动(Stream)
1、概述①、为什么要用Stream对于消息中间件MQ,大家所熟知的就有四个,ActiveMQ,RabbitMQ,阿里的RocketMQ,和大数据平台的Kafka。而现在的Web系统,我们可以把它看作以下三部分如果我们Java程序员用到的消息中间件是RabbitMQ,但是大数据平台使用的是Kafka,那这个系统将会至少存在两个问题切换开发维护所以我们就开始思考,有没有一种技术让,让我们不再关注MQ的细节,,我们只需要用一种适配绑定的方式,自动的帮我们在各种MQ之间切换,正所谓偷懒原创 2021-02-18 18:22:38 · 562 阅读 · 0 评论 -
SpringCloud系列之服务总线(Bus)
1、概述在学习完Config之后,我们发现了一个问题就是每当配置中心配置发生变化以后,都需要将每个微服务重新启动一遍,这样对于某些大型项目而言是很痛苦的,然后我们就又引入了动态刷新功能,每当配置中心配置变化后,我们的运维小哥就手动给每一个微服务都发送一个POST请求用于更新配置,这样便免于重新启动服务,节约时间,但是这样的动态刷新还是不够彻底,我们如何才能彻底解放运维小哥的双手呢?那就是使用Spring Cloud Bus配合Spring Cloud Config使用实现动态刷新配置Spring原创 2021-02-17 19:28:01 · 5628 阅读 · 10 评论 -
SpringCloud系列之服务配置中心(Config)
1、概述①、问题出现微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。回顾我们以前创建的微服务,每一个module都有一个对应的application.yml文件,单拎出来服务提供者这几个module,如果每一个都用到了mybatis,且操作的都是同一个数据库,但是我们在每一个module都进行了一遍相同的数据库连接配置,这样的操作实在麻烦,如果我们没原创 2021-02-16 16:28:55 · 347 阅读 · 0 评论 -
SpringCloud系列之服务网关(Gateway)
1、概述官方网站①、是什么Cloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关;但在2x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,那就是SpringCloud Gateway;SpringCloud Gateway作为Spring Cloud 生态系统中的网关,目标是替代Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuul 2.0以上最新高性能版本进行集成,仍然还是使用的Zuul 1.x非React原创 2021-02-15 17:26:22 · 1267 阅读 · 2 评论 -
@HystrixProperty配置汇总
纯手敲,关于配置中的name属性到底填什么,可以参考HystrixCommandProperty类(这不用我说吧)@HystrixCommand(fallbackMethod = "str_fal1backMethod", groupKey = "strGroupCommand", commandKey = "strCommand", threadPoolKey = "strThreadPoo1", commandProperties =.原创 2021-02-13 11:15:23 · 1539 阅读 · 0 评论 -
SpringCloud系列之服务降级(Hystrix断路器)
1、概述①、分布式系统面临的问题往往复杂分布式体系架构的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败就像图中所看到的那样,一个用户请求需要调用A服务,但是A服务也需要调用P服务,然后P调H,H调I等等······如果一切顺利,则没有啥问题,但是如果I服务出现了超时,会出现什么问题呢?②、服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可原创 2021-02-11 17:55:55 · 284 阅读 · 4 评论 -
SpringCloud系列之服务调用(OpenFeign)
1、简介①、概述Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡也就是说,Feign是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,原创 2021-02-10 11:04:18 · 772 阅读 · 1 评论 -
SpringCloud系列之服务调用(Ribbon)
1、简介Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具,也就是存在于我们的客户端,而不像Nginx一样在服务端简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们原创 2021-02-09 14:24:51 · 400 阅读 · 2 评论 -
在使用Eureka的时候,@LoadBalanced注解无效,无法通过服务名获取注册中心服务的URL的问题记录
1、工程介绍2、问题描述我的消费者和Eureka集群都搭建成功,测试没有问题,问题出在服务提供者集群的时候,开始我只搭建一个Payment的时候,对于消费者访问的时候就是指定的我的8001Payment,如图然后我着手搭建第二个Payment8003,然后他的application name和8001保持一致,也可以看见Eureka管理界面是都启动成功了的其中CloudPaymentService就是我的Payment集群然后我的消费者访问地址就不再是指定8001,应该指定集群原创 2021-02-04 18:33:11 · 3341 阅读 · 1 评论 -
在使用Zookeeper以及Consul的时候,@LoadBalanced注解无效,无法通过服务名获取注册中心的URL的问题记录
太惨了我,这个问题我至少郁闷了四五天,在搞服务注册中心的时候,我第一个看的是Eureka,当时也是类似的错误,我稀里糊涂解决了以后,却又死在了Zookeeper和Consul上,要不是见哥,我真都快放弃这个问题了,呜呜呜,全网感谢见哥。1、问题描述在练习Zookeeper和Consul分别作为服务注册中心的时候,给我莫名其妙报了这个错误。2021-02-04 12:27:37.269 ERROR 9112 --- [nio-8002-exec-3] o.a.c.c.C.[.[.[/].[dis.原创 2021-02-08 20:57:25 · 1102 阅读 · 0 评论 -
Eureka,Zookeeper,Consul三者异同点以及CAP规则
三者之间的比较组件名语言CAP服务健康检查服务健康检查对外暴露接口SpringCloud集成EurekaJavaAP可配支持HTTP已集成ConsulGoCP支持HTTP/DNS已集成ZookeeperJavaCP支持客户端已集成CAP规则鉴于现在的微服务架构,这个P,我们永远都要保证,系统要么是AP,要么是CP,三个里面不可能全占CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需原创 2021-02-06 18:27:17 · 398 阅读 · 2 评论 -
SpringCloud系列之服务注册中心(Consul)
1、简介官方文档中文文档下载地址Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go语言开发。提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。它具有很多优点。包括:基于raft协议,比较简洁;支持健康检查,同时支持HTTP和DNS 协议支持跨数据中心的WAN广域网集群提供图形界面跨平台,支持Linux、Mac、 Window原创 2021-02-06 17:41:21 · 378 阅读 · 0 评论 -
Spring Cloud和Spring Cloud Alibaba文章汇总
技术栈技术选型部分技术随着技术的迭代,不断更新,下面做简要叙述服务注册中心Eureka:Netflix公司出厂自带,目前已停更,不建议使用。**zookeeper:**常配合dubbo使用,是一种老技术了,可以使用。Consul:,也可以替换Eureka,是基于go语言开发的,不推荐使用。Nacos:Spring Cloud Alibaba全家桶成员,经受住百万级注册并发量的考验,可以很完美的替换Eureka,推荐使用。服务调用**Ribbon:**半生不熟,也进入了维护状态原创 2021-01-31 15:29:08 · 213 阅读 · 1 评论 -
SpringCloud系列之服务注册中心(Zookeeper)
1、Zookeeper的安装①、拉取Zookeeper镜像#拉取Zookeeper镜像docker pull zookeeper#启动Zookeeperdocker run --name zookeeper_1 -p 2181:2181 --restart always -d zookeeper②、开放安全组此步骤针对云服务器,本地虚拟机可关闭防火墙2、注册服务提供者①、建module②、POM<?xml version="1.0" encoding="UTF-原创 2021-02-06 15:09:20 · 427 阅读 · 0 评论 -
SpringCloud系列之IDEA提取公共代码模块
1、创建公共代码模块2、更改POM文件<?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://ma原创 2021-02-02 12:30:45 · 970 阅读 · 0 评论 -
SpringCloud系列之服务注册中心(Eureka)
1、简介Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。2、组成Eureka包含两个组件:Eureka Server和Eureka Client。Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这原创 2021-02-02 16:17:54 · 744 阅读 · 0 评论 -
SpringCloud系列之微服务模块的创建
1、建module在父工程中新建一个module,具体操作不再赘述这里需要注意的地方就在于parent的选择,默认没有选上,需要勾选上Maven,创建完毕后在父工程的pom文件中就会看到自动生成了modules标签。2、改POM由于父工程中已经指定了相关的gav(groupId,version,artifactId),所以子模块中的pom文件会有很多地方不需要写version以及groupId<?xml version="1.0" encoding="UTF-8"?>原创 2021-02-02 12:02:11 · 1656 阅读 · 0 评论 -
创建SpringCloud父工程
SpringCloud之整体聚合父工程Project1.New Project创建父工程pom文件报错解决方法为导入依赖,暂时不用做这一步,下面还会涉及到<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-project-info-reports-plugin --><dependency> <groupId>org.apache.maven.plug原创 2021-01-31 15:30:08 · 1398 阅读 · 7 评论