![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring Cloud
文章平均质量分 69
奈斯菟咪踢呦
联系电话:15718879112
展开
-
微服务架构的核心问题
背景工作多年,作为后端开发,经历了几家公司,每家公司都有自己核心的一些技术栈,去到不同的公司自己的学习技术的和实践技术的着重点可能不同,最近想把以前学习到的用到的技术做一个分类总结。首先我想从第一家公司技术栈讲起:springcloud,因为我们是做医药电商,公司内部需要将整个电商中台进行微服务改造。首先将不同的服务模块化,订单中心,用户中心,物流中心,商品中心,报表中心等分别抽出来模块话开发,代码没有变化。微服务架构的4个核心问题:1、服务很多,客户端该怎么访问?2、这么多服务,服务之间如何通信原创 2022-05-14 20:23:38 · 368 阅读 · 0 评论 -
十一、服务发现与消费
通过上面的实践,已经搭建好了微服务架构中的核心组件——服务注册中心(包括单节点模式和高可用模式),同时创建一个spring boot入门程序,通过简单配置,是程序注册到了Eureka注册中心上,成为该服务治理体系下的一个服务,命名为:eureka.client.01 ,现在已经有了服务注册中心和服务提供者,下面就来尝试构建一个服务消费者,它主要完成两个目标,发现服务以及消费服务。其中发现服务的任务由原创 2017-12-29 15:17:39 · 166 阅读 · 0 评论 -
十六、客户端负载均衡
Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,他是基于NetflixRibbon实现的,通过Spring Cloud的封装,可以让我们轻松的将面向服务的REST模板请求自动转换成客户端负载均衡的服务调用,他虽然是一个工具类框架,不像注册中心、配置中心、api网关那样独立部署,但是几乎存在每一个Spring Cloud构建的微服务和基础设施中。因为微服务间的原创 2018-01-15 10:43:02 · 287 阅读 · 0 评论 -
源码分析
上一篇对Eureka中各个元素的通信行为做了了解。 首先,对于服务注册中心、服务提供者、服务消费者这三个主要元素来说,后两者(也就是Eureka客户端)在整个运行机制中是大部分通信行为的主动发起者,而注册中心主要是处理请求的接收者,所以,可以从Eureka的客户端作为入口看看他是如何完成通信的。我们将一个普通的spring boot应用注册到Eureka Server或者是从Eureka Se原创 2018-01-05 15:08:55 · 207 阅读 · 0 评论 -
十九、声明试服务调用:Spring Cloud Feign
上两篇对Spring Cloud Ribbon和Spring Cloud Hystrix的介绍,已经掌握了发微服务的应用时的两个重磅武器,学习了如何在微服务架构中实现客户端负载均衡的服务调用以及如何通过断路器保护我们的微服务应用。在实践过程中我们会发现对这两个框架的使用几乎是同时的,既然如此,那么可否有更高层次的封装来整合这两个基础工具以简单开发呢。下面学习的Spring Cloud Feig原创 2018-01-22 17:38:16 · 894 阅读 · 0 评论 -
二十、声明式服务调用:使用Spring Cloud Feign 实现参数绑定
上一篇博客是实现的是一个不带参数的REST服务绑定。然而系统各种业务复杂的时候没我们会在HTTP的各个位置传入不同的参数,并且返回请求响应的时候也可能是一个复杂的结构。 这篇学习Fegin中几种不同形式参数的绑定方法。1、介绍Spring Cloud Feign的参数绑定前,先扩展一下服务提供方hello-service,增加几个接口定义,其中包含带有Request参数的请求,带有Heade原创 2018-01-23 15:55:58 · 2691 阅读 · 1 评论 -
搭建服务注册中心和注册服务提供者过程中遇到问题
遇到问题: 1、 项目包建在入口主类所在包的里面 2、Whitelabel Error Page @springBootApplication在进行加载时,只会加载其入口的当前目录及其子目录下的服务,如果存放在其它目录下,应用扫描不到。如下正确方式 3、 springcloud服务已经关但是Eureka还是显示up该状态持续很久,访问该服务也返回错误,但在注册中原创 2017-12-25 17:49:57 · 412 阅读 · 0 评论 -
十七、Spring Cloud服务容错保护:Spring Cloud Hystrix
在为微服务架构中,我们将系统拆分成多个服务单元,各个单元的应用间通过服务注册与订阅的方式互相依赖的,由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或者延迟,而这些问题直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会因为等待出现故障依赖方的响应形成任务积压,最终导致自身服务瘫痪。因此为了解决这个问题产原创 2018-01-16 17:07:16 · 480 阅读 · 0 评论 -
二十一、API网关服务:Spring Cloud Zuul
上面的博客已经对于Spring Cloud Netflix下的核心组件了解了一大半,这些组件基本涵盖了微服务架构中最基础的几个核心设施,已经可以构建一个简单的微服务。eg:通过Spring Cloud Eureka实现高可用的服务注册中心以及实现微服务的注册与发现;通过Spring Cloud Ribbon或者Feign实现服务间负载均衡的接口调用;同时,为了分布式系统更加健壮,对于依赖的服务原创 2018-01-24 18:00:26 · 379 阅读 · 0 评论 -
十八、Spring cloud :Hystrix原理
一、运行原理 Hystrix是国外知名的视频网站Netflix所开源的非常流行的高可用架构框架。Hystrix能够完美的解决分布式系统架构中打造高可用服务面临的一系列技术难题。Hystrix是‘豪猪’,具有自我保护的能力,Hystrix通过如下机制解决雪崩效应。1、资源隔离:包括线程池隔离和信号量隔离,限制调用分布式的资源使用,某一个调用的服务出现问题不会影响其他的服务调用。 2、降级机制:超值原创 2018-01-18 16:33:33 · 1066 阅读 · 0 评论 -
Spring Cloud Stream(消息驱动)介绍
一、概述1、发布/订阅 简单的讲就是生产者,消费者模式。发布者是生产者,将数据发布到数据中心,订阅者是消费者,订阅自己感兴趣的数据。当有数据到达数据中心时候,就把数据发送给对应的订阅者。未处理的传感数据发布到raw-sensor-data的Topic进行广播,Averages 和IngestHDFS同时订阅了此消息,收到消息后触发自身的处理逻辑。 Topic可能对应不同的概念,在R...原创 2018-03-09 14:43:51 · 329 阅读 · 0 评论 -
SpringCloud stream连接RabbitMQ收发信息
1、POM引入spring-cloud-starter-stream-rabbit<!--消息通道--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-r...原创 2018-03-14 17:03:22 · 1654 阅读 · 0 评论 -
十二、负载均衡基本概述
上一篇服务的发现与消费中: Ribbon是一款基于Http和Tcp的客户端负载均衡器,他可以通过客户端中配置的ribbonServerlist服务端列表去轮询访问以达到负载均衡随着有线无线网络的渐渐扩张,大规模网络的建设和应用,大量信息的交互和流动,给我们的服务器带来了空前的压力。那么,如何进行一个优化,如何缓解单一服务器的压力呢?这就引出了负载均衡这个概念。那么,什么是负载均衡呢?负载均衡(Lo原创 2017-12-29 15:39:31 · 285 阅读 · 0 评论 -
十、服务注册与发现
服务注册与发现:一、eureka的常用注解: 1、@EnableEurekaClient:该注解表明应用既作为eureka实例,又为eureka client可以发现注册的服务 2、@EnableEurekaServer: 该注解表明应用为eureka服务,有可以联合多个服务作为集群,对外提供服务注册以及发现功能 注册服务使用@EnableEurekaClient将服务注原创 2017-12-28 15:21:28 · 1375 阅读 · 0 评论 -
七、Netflix Eureka && 搭建服务注册中心
Spring Cloud Eureka, 使用Netflix Eureka来实现服务注册与发现, 它既包含了服务端组件,也包含了客户端组件,并且服务端与客户端均采用Java编写,所以Eureka主要适用 于通过Java实现的分布式系统,或是与NM兼容语言构建的系统Eureka服务端,我们也称为服务注册中心,他同其他服务注册中心一样,支持高可用配置,他依托于强一致性提供良好的服务实例可用性。可以应对原创 2017-12-20 16:08:10 · 622 阅读 · 0 评论 -
八、注册服务提供者
创建服务提供的客户端,并向服务中心注册,继续创建一个springBoot项目 首先,创建一个基本的Spring Boot应用。命名为eureka-client,在pom.xml中,加入如下配置 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h原创 2017-12-25 17:44:25 · 171 阅读 · 0 评论 -
十三、服务发现与消费
上一篇简单配置后,使程序注册到了Eureka注册中心上,成为该服务治理体系下的一个服务,命名为hello-service,。现在我们已经有了服务注册中心和服务提供者。下面构建一个服务消费者: 主要目的是:服务发现以及消费服务。 其中服务发现任务由Eureka的客户端完成,而服务的消费任务由Ribbon完成。Ribbon是一个基于Http和tcp的客户端负载均衡器。它可以在通过客户端中配置的 ri原创 2018-01-02 18:52:31 · 385 阅读 · 0 评论 -
一、什么是微服务
一、什么是微服务微服务是系统架构上的 一 种设计风格, 它的主旨是将 一 个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。 被拆分成的每一 个小型服务都围绕着系统中的某 一 项或 一些耦合度较高的业务功能进行构建, 并且每个服务都维护着自身的数据存储、 业务开发、自动化测试案例以及独立部原创 2017-12-19 16:08:50 · 284 阅读 · 0 评论 -
二、Spring Cloud简介
Spring Cloud是 一 个基千SpringBoot实现的微服务架构开发 工具。 它为微服务架构中涉及的 配置管理、 服务治理、 断路器、 智能路由、 微代理、 控制总线、 全局锁、 决策竞选、分布式会话和集群状态管理等操作提供了 一 种简单的开发方式。Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品,还可能会新增),如下所述。•原创 2017-12-19 16:12:34 · 224 阅读 · 0 评论 -
三、Spring Boot微服务构建
一、 1、通过官方的Spring Initializr工具来产生基础项目。访问http://s七art. spring. io/, 如下图所示, 该页面提供了以Maven 或 Gradle构建Spring Boot项目的功能 2、选择构建工具Maven Project、 Spring Boot版本选择1. 3. 7, 填写Group和 沁tifact信息, 在Search for depen原创 2017-12-19 16:22:44 · 931 阅读 · 0 评论 -
四、idea创建spring boot
前情提要: spring boot和springmvc相对比: 两者没什么关系,只是spring boot省略很多配置,算是springmvc的升级版,毕竟作为一个优秀的程序员不能总花一堆时间去搞配置 一:工具准备 1.ide: intellij idea ps:公司开发用的是eclipse,在家学习时候装的是 idea,使用过程中发现相对于eclipse是有很大进步的,但也有些原创 2017-12-19 16:27:05 · 232 阅读 · 0 评论 -
五、参数配置+多环境配置
一、自定义参数除了可以在spring boot的配置文件中设置各个start模块中预定义的配置属性,也可以在配置文件中定义一些我们需要的自定义属性。比如在application.properties中添加比如: book.name=SpringCloud book.author=psw 然后,在应用中可以通过@value注解加载这些自定义的参数:@Component pub...原创 2017-12-19 16:33:36 · 300 阅读 · 0 评论 -
十四、Eureka详解
以上博客进行了简单的注册服务与发现示例,构建了Eureka服务治理体系中的三个核心角色:服务注册中心、服务提供者、以及服务消费者,spring boot应用纳入Eureka的服务治理体系,成为服务提供者或是服务消费者,同时,接触了客户端负载均衡的消费服务。下面详细了解Eureka的基础架构、节点间的通信机制以及一些进阶的配置等。基础架构 在服务治理中,她已经包含了整个Eureka服原创 2018-01-03 11:33:08 · 335 阅读 · 0 评论 -
十五、服务治理机制
Eureka实现的服务治理体系是如何运作起来的,其中有这样几个重要的元素: 1、”服务注册中心-1” 和“ 服务注册中心-2”, 它们互相注册组成了高可用集群。 2、”服务提供者”启动了两个实例,一 个注册到 “ 服务注册中心-1” 上, 另外 一 个注册到“ 服务注册中 心-2” 上。 3、还有两个“ 服务消费者 “ , 它们也都分别只指向了 一 个注册中心。根据上面的结原创 2018-01-03 17:01:10 · 465 阅读 · 0 评论 -
九、高可用注册中心
高可用注册中心在微服务架构这样的分布式环境中,我们需要考虑发生故障的情况,所以生产环境中必须进行高可用部署,对于微服务也如此,对于服务注册中心也一样。但是在前面,一直是单节点的服务注册中心,这在生产环境是不合适的,所以需要构建高可用的服务注册中心以增强系统的可用性。EurekaServer的设计一开始就考虑了高可用问题,在Eureka服务治理设计中,所有节点即是服务提供方,也是服务消费方,服务注册原创 2017-12-26 18:10:29 · 844 阅读 · 0 评论 -
六、服务治理
Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件中的 一 部分, 它基于 Netflix Eureka 做了二次封装, 主要负责完成微服务架构中的服务治理功能。 Spring Cloud 通过为 Eureka 增加了 Spring Boot 风格的自动化配置,我们只需通过简单引入依赖和注解配置就能 让 Spring Boot 构建的微服务应用轻松原创 2017-12-20 14:06:59 · 489 阅读 · 0 评论