SpingCloud
文章平均质量分 52
个人实战学习过程
我叫向同学
永远不要停下前进的脚步
展开
-
【SpringCloud】OpenFeign是什么
什么是OpenFeign官方文档:https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html/OpenFeign是一个声明式WebService客户端。使用OpenFeign客户端能让编写WebService客户端更加简单。它的使用方法就是 定义一个服务接口然后在上面添加注解。OpenFeign也支持可拔插式的编码器和解码器。SpringCloud 对Feign进行了封装,使其支持了Spring MVC标准注解和Ht原创 2021-07-29 16:23:23 · 518 阅读 · 0 评论 -
【SpringCloud】Ribbon默认负载均衡轮询算法原理
负载均衡算法:rest接口第几次请求数 % 服务器集群总数量 = 实际调用服务器位置下标 ,每次服务重启动后rest接口计数从1开始。List instances = discoveryClient.getInstances(“CLOUD-PAYMENT-SERVICE”);如: List [0] instances = 127.0.0.1:8002 List [1] instances = 127.0.0.1:80018001+ 8002 组合成为集群,它们共计2台机器,集群总数为2,原创 2021-06-30 14:01:21 · 302 阅读 · 1 评论 -
【SpringCloud】Ribbon负载均衡规则替换
Ribbon默认的规则是轮询RoundRobinRule,那么如何替换了?修改cloud-consumer-order80注意配置细节官方文档明确给出了警告:这个自定义配置类不能放在@ComponentScan所扫描的当前包下以及子包下,否则我们自定义的这个配置类就会被所有的Ribbon客户端所共享,达不到特殊化定制的目的了。SpringBoot的任何入口启动类都需要添加注解@SpringBootApplication点进去看新建一个package。com.xiang.myrule新建原创 2021-06-02 21:56:07 · 225 阅读 · 1 评论 -
【SpringCloud】Ribbon默认自带的负载均衡规则(核心组件IRule)
IRule:根据特定算法中冲服务列表中选取一个要访问的服务。原创 2021-06-02 20:30:09 · 252 阅读 · 0 评论 -
【SpringCloud】Ribbon的负载均衡和rest调用
Ribbon就是一个软负载均衡的客户端组件。他可以和其他所需请求的客户端结合使用,和eureka结合只是其中的一个实例。Ribbon在工作的时候分两步先选择eurekaServer,它优先选择在同一个区域内负载较少的server。再根据用户指定的策略,在从server取到的服务注册列表中选择一个地址。其实Ribbon提供了多种策略:比如轮询,随机和根据响应时间加权。之前的样例没有引入spring-cloud-starter-netflix-ribbon也可以使用ribbon<!--原创 2021-03-15 22:26:49 · 180 阅读 · 0 评论 -
【SpringCloud】Ribbon介绍
是什么SpringCloud Ribbon是基于Netfix Ribbon实现的一套客户端,负载均衡的工具。简单的说,Ribbon是netfix发布的开源项目,主要功能是提供客户端的软件负载均衡算法将诶服务调用。Ribbon客户端组件提供一些列完善的配置项如连接超时,重试等。简单说,就是在配置文件中列出Load Balance(LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(轮询,随机连接)去连接这些机器。我们很容易实现自定义的负载均衡算法。ribbon资料 https://github原创 2021-03-14 20:38:41 · 265 阅读 · 0 评论 -
【SpringCloud】eureka,zookeeper,consul三个注册中心异同
什么是capc:consistency(一致性)a:availability(可用性)p:partition tolerance(分区容错性)经典cap图最多只能同时较好的满足两个。CAP理论的核心:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这个三个需求。因此根据CAP原理将noSQL数据库分成了满足CA原则,满足CP原则和满足AP原则三大类。CA:单点集群,满足一致性,可用性的系统。通常在 可扩展性上不太强大。CP:满足一致性,分区容忍性的系统,通常性能不是特别高。原创 2021-03-14 19:42:38 · 137 阅读 · 2 评论 -
【SpringCloud】服务消费者注册进consul
新建maven项目 consul-consumerconsul-order-80pom.xml 导入依赖 <dependencies> <!--SpringCloud consul-server --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>原创 2021-03-14 18:56:33 · 113 阅读 · 0 评论 -
【SpringCloud】服务提供者注册进consul
新建maven 项目 cloud-proviederconsul-payment8006pom.xml文件 <dependencies> <!-- 引入自己定义的api通用包,可以使用Payment支付Entity --> <dependency> <groupId>com.xiang.springcloud</groupId> <artifactId>原创 2021-03-14 16:32:07 · 158 阅读 · 2 评论 -
【SpingCloud】安装并运行consul
下载地址 https://www.consul.io/downloadswindows上安装consul下载完成后解压只有一个consul.exe文件,双击运行,查看版本号信息开发模式启动可以通过以下地址访问consul的首页http://localhost:8500/ui/dc1/services...原创 2021-03-11 21:49:31 · 71 阅读 · 0 评论 -
【SpingCloud】Consul简介
是什么?什么是consul? 官方解释:https://www.consul.io/docs/introconsul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server和client。每个数据中心官方建议需要3或5个server节点以保证数据原创 2021-03-11 20:52:23 · 328 阅读 · 5 评论 -
【SpringCloud】订单服务注册进zookeeper
创建一个新maven modulepom.xml依赖 <dependencies> <!-- SpringBoot整合Web组件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifact原创 2021-03-10 22:51:04 · 104 阅读 · 0 评论 -
【SpringCloud】Zookeeper代替Eureka
凉凉了,Eureka 2.x 停止维护,Spring Cloud 何去何从?Eureka源码地址Zookeeper代替EurekaZookeeper是一个分布式协调工具,可以实现注册中心功能。关闭了linux服务器防火墙或启动zookeeper服务器。Zookeeper服务器取代eureka,zk作为服务注册中心。...原创 2021-03-03 22:39:40 · 253 阅读 · 1 评论 -
CentOS7 安装ZooKeeper
ZooKeeper简介ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。安装步骤1、Apache官网下载zookeeper安装包下载地址:https://zookeeper.apache.or原创 2021-03-01 21:27:06 · 535 阅读 · 0 评论 -
【SpringCloud】eureka自我保护机制
自我保护机制是什么访问Eureka主页时,如果看到这样一段大红色的句子:默认情况下,如果eureka server在一定时间内没有接收到某个微服务实例的心跳,eureka server将会注销该实例(默认90秒),但是当网络分区发生故障时(延时,卡顿,拥挤)时,微服务与eureka server之间就无法正常通信,以上行为可能变得非常危险了,因为微服务本是其实是健康的,此时本不应该注销这个服务,eureka通过自我保护模式,来解决这个问题,当eureka server节点在短时间内丢失过多客户端时(可能原创 2021-01-24 15:48:31 · 353 阅读 · 0 评论 -
【SpringCloud】eureka 服务发现Discovery
对于注册进eureka server里面的微服务,可以通过服务发现来获得该服务的信息。就是cloud-provider-payment8001和8002 provider都注册进了eureka注册中心,假设消费者80想看看这些端口号和服务名,那么应该怎么才取得到信息?那么怎么实现了?添加cloud-provider-payment8001中的controller注意导包import org.springframework.cloud.client.discovery.DiscoveryClient;原创 2021-01-24 14:14:47 · 328 阅读 · 1 评论 -
【SpringCloud】actuator微服务信息完善
主机名称:服务名称的修改当前eureka server注册中心状态含有主机名称按照规范的要求只暴露服务名,去掉主机名在cloud-provider-payment8001和8002的applic.yml中添加 instance: instance-id: payment8001cloud-provider-payment8002的application.yml中添加 instance: instance-id: payment8002查看修改过后的状态访问路径显原创 2021-01-24 13:33:03 · 147 阅读 · 0 评论 -
【SpringCloud】支付微服务提供者provider集群配置
目前项目中之有一个cloud-provider-payment8001提供者看图 服务提供者也是多个,也需要变成集群,最终的结果就是注册中心集群,提供者是集群。新建cloud-provider-payment8002参考就是把cloud-provider-payment8001拷贝到8002,在application.yml中修改了端口号8002那么现在问题来了现在消费者80在注册中心找微服务的提供者provider,现在有两个提供在8001和8002,但是他们外暴露的名字都是cloud-pay原创 2021-01-24 10:44:35 · 311 阅读 · 1 评论 -
【SpringCloud】订单支付两个微服务注册进eureka集群
只需要修改两个服务的application.yml文件即可。逗号分割。互相注册 defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka启动先启动eurekaserver 7001和7002服务再启动服务提供者provider8001最后启动消费者80去注册中心查看两个集群是否都注册了...原创 2021-01-24 10:44:11 · 236 阅读 · 0 评论 -
【SpingCloud】之Eureka集群原理说明及实现
一个Eureka集群包含7001和7002等许多服务,在这个集群中,7001指向其他所有服务,7002也指向其他所有服务。总之一句话:我自己一定要有我们这个圈子里的其他兄弟们的全部相关信息。 所以说,他们互相注册,相互守望,对外暴露出一个整体。问题:微服务RPC远程服务调用最核心的是什么?高可用,试想一下你的注册中心只有一个only one ,他要是故障了,会导致整个服务环境不可用解决办法:搭建Eureka注册中心集群,实现负载均衡+故障容错。实现eureka集群新建module cloud-原创 2021-01-24 10:43:59 · 164 阅读 · 0 评论 -
【SpringCloud】订单微服务80 注册Eureka Server
首先添加eureka-client依赖<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-client --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-st原创 2021-01-23 19:42:06 · 82 阅读 · 0 评论 -
【SpringCloud】支付微服务8001注册Eureka Server
此刻的eureka server 没有任何一个实例注册进来现在将cloud-provider-payment8001注册进eureka server在cloud-provider-payment8001服务中添加eureka client依赖<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-client --><dependen原创 2021-01-23 19:26:00 · 145 阅读 · 0 评论 -
【SpringCloud】单机Eurek Server服务端安装
请先阅读Eureka基础知识IDEA生成Eurek Server端服务注册中心新建Module cloud-eureka-server7001pom文件导入依赖 <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-client --> <depende原创 2021-01-23 19:01:37 · 143 阅读 · 0 评论 -
【SpringCloud】之Eureka基础知识
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。 1、Eureka组件Eureka包含两个组件:Eureka Server和Eureka Client。 1.1 Eureka ServerEureka Server提供服务注册服务,各个节点启动后,会在Eur原创 2021-01-23 16:44:21 · 163 阅读 · 0 评论 -
【SpringCloud】之工程重构
在两个项目中,实体类完全一样,造成了代码冗余,应该把每个项目中都会频繁使用的打成jar包,打成一份,一处部署,处处通用。新建一个新的module修改POM文件 导入依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devto原创 2021-01-23 16:04:24 · 286 阅读 · 3 评论 -
启动服务出现Web server failed to start. Port 8001 was already in use.
出错信息APPLICATION FAILED TO STARTDescription:Web server failed to start. Port 8001 was already in use.Action:Identify and stop the process that’s listening on port 8001 or configure this application to listen on another port.Disconnected from the tar原创 2021-01-23 14:54:47 · 5597 阅读 · 2 评论 -
idea2020在service窗口中显示多个服务
自己有几个服务都在run中运行,点来点去是在太麻烦了,为什么没有在service窗口中运行了?网上搜索了一下在项目目录下idea目录下的workspace.xml中新增 <component name="RunDashboard"> <option name="configurationTypes"> <set> <option value="SpringBootApplicationConfigurationType"原创 2021-01-23 14:45:00 · 1503 阅读 · 1 评论 -
【SpringCloud】消费者订单模块
参照新建cloud-provider-payment8001`新建cloud-consumer-order80模块导入依赖 <dependencies> <!--包含了sleuth+zipkin--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spr原创 2021-01-23 14:39:43 · 359 阅读 · 0 评论 -
【SpringCloud】IDEA2020开启热部署devtools
为什么要要开启热部署热部署就是正在运行状态的应用,修改了他的源码之后,在不重新启动的情况下能够自动把增量内容编译并部署到服务器上,使得修改立即生效。热部署为了解决的问题有两个:一是在开发的时候,修改代码后不需要重启应用就能看到效果,大大提升开发效率;二是生产上运行的程序,可以在不停止运行的情况下进行升级,不影响用户使用。我用的是IEDA2020首先导入依赖 <dependency> <groupId>org.springframewo原创 2021-01-23 11:38:42 · 639 阅读 · 0 评论 -
【SpinrgCloud】支付模块构建(上)
需求:客户端消费者 下订单,订单可以调用微服务的提供者payment支付模块cloud-provider-payment8001:微服务提供者支付module模块微服务模块建module改pom写YML业务类在子项目的POM.xml文件中添加依赖后记得构建一下maven <dependencies> <dependency> <groupId>org.springframework.boot</g原创 2021-01-23 11:16:48 · 283 阅读 · 2 评论 -
SpingCloud父工程Project空间新建
使用IEDA创建new project。聚合总父工程名字。Maven选版本。工程名字。字符编码。注解生效。java编译版本选择。File Type过滤。设置字符编码UTF-8注解设置java1.8版本idea会自动生成一些奇奇怪怪的文件,怎么过滤掉.iml;.idea;.gitignore;.sh;.classpath;.project;*.settings;target;父工程pom文件删除src目录,并在pom文件中添加pom统一管理jar包版本<.原创 2021-01-18 22:04:22 · 134 阅读 · 0 评论 -
SpringBoot和Cloud的版本选型
SpringBoot的版本选择SpringBoot的版本用阿拉伯数字表示github地址:SpringBoot源码地址官方版本建议:建议地址SpringBoot官方版本我学习的时间是2021一月份已经更新到当前最稳定2.4.2版本SpringCould版本选择SpringCloud的版本中英文字母表示。github地址:SpringCloud详情去SpringCloud官网SpringCloud采用英国伦敦地铁站的名称来命令,并有字母A–Z依次类推来发布迭代版本。例如Angel是原创 2021-01-17 20:47:18 · 1112 阅读 · 0 评论 -
微服务架构理论入门
微服务架构概述什么是微服务推荐先硬着头皮看一下,接下来才方便理解。微服务论文英文版微服务论文翻译中文版微服务架构的提出者微服务架构是一种架构模式,它提倡将单一应用程序划分为成一组小的服务,服务之间互相协调,互相配合,为用户提供最终价值,每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕着本业务进行构建,并且能够独立的部署到生产环境,类生产环境等,另外应当避免统一的,集中式的服务管理机制,对具体的一个服务而言,原创 2021-01-17 19:56:51 · 161 阅读 · 0 评论