摘要:
1. 创建用户模块 eureka模块创建好后,我们便开始创建3个业务微服务模块。首先创建用户模块user,创建好后编辑pom.xml,如程序清单15-6所示。 接着,我们把application.properties文件的扩展名改为.yml,然后添加程序清单15-7所示的配置。这里不赘述,因为和co 阅读全文
posted @ 2022-12-14 21:23
cnetsa
阅读(202)
评论(0)
推荐(0)
摘要:
父工程和common模块创建好后,创建名为“eureka”的模块。然后,编辑pom.xml,如程序清单15-4所示。 接着,我们把application.properties文件的扩展名改为.yml,然后添加程序清单15-5所示的配置。这里不做过多解释,详细讲解可以参见第9章第2节。 阅读全文
posted @ 2022-12-14 21:18
cnetsa
阅读(49)
评论(0)
推荐(0)
摘要:
1、创建Maven项目 下面,我们正式开始开发项目。 首先,创建一个Maven项目作为微服务的父工程,将其命名为“mall” 。如图所示。 创建好后,编辑pom.xml文件,如程序清单15-1所示。 2、创建common模块 很多情况下,各个微服务会用到同样的代码,如果把这些公用的代码抽离出来单独做 阅读全文
posted @ 2022-12-14 20:36
cnetsa
阅读(880)
评论(0)
推荐(0)
摘要:
1、开发工具 项目开发工具如下。 (1)项目开发工具:IntelliJ IDEA。 (2)项目管理工具:Maven。 (3)数据库管理工具:Navicat。 (4)前端部署工具:Nginx。 2、开发环境 项目开发环境如下。 (1)操作系统:Windows。 (2)Java开发包:JDK 8。 (3 阅读全文
posted @ 2022-12-14 20:33
cnetsa
阅读(69)
评论(0)
推荐(0)
摘要:
1、系统架构设计 了解了我们要做的项目以及具体的业务功能之后,我们就可以开始设计我们的系统架构和设计数据库了。 考虑到到电商类的系统模块比较多,并且我们也希望整个系统不同模块之间的耦合性越低越好,各个模块独立运行这样的话模块间影响也小,整个系统的稳定性和灵活性就大大提高,所以我们考虑使用Spring 阅读全文
posted @ 2022-12-14 20:30
cnetsa
阅读(229)
评论(0)
推荐(0)
摘要:
1、项目背景 学习过Spring Boot和Spring Cloud技术之后我们知道,Spring Boot框架可以让我们快速开发一个项目,特别适合小项目或者单一服务的开发,这意味着诸如CRM(Customer Relationship Management,客户关系管理)、OA(Office Au 阅读全文
posted @ 2022-12-14 20:04
cnetsa
阅读(149)
评论(0)
推荐(0)
摘要:
熟悉电商项目基本功能。 熟悉项目架构搭建与数据库设计。 熟悉Spring Boot框架和微服务Spring Cloud框架在项目中的使用。 掌握电商项目用户、商品、订单等模块的实现。 掌握项目网关实现接口统一访问和服务监控。 掌握项目的部署和运行。 从学习Spring Boot快速开发与使用Spri 阅读全文
posted @ 2022-12-14 20:01
cnetsa
阅读(393)
评论(0)
推荐(0)
摘要:
我们知道在微服务架构中有了Config Server配置中心之后就可以让我们从远程git仓库读取配置文件,以达到配置集中管理以及配合Spring Cloud Bus实现配置的自动刷新。 但是如果配置中心宕机或者出现其他故障,那将会是一个“噩耗”,可能导致所有的Config Client服务无法读取配 阅读全文
posted @ 2022-12-14 19:42
cnetsa
阅读(203)
评论(0)
推荐(0)
摘要:
在上一节中我们学习了在Spring Cloud微服务系统架构中使用Config Server进行本地仓库配置读取和线上环境的远程仓库git配置读取,让我们在多个微服务下也可以进行配置信息的集中管理。但是还有一个问题,那就是Config Server从git读取配置文件是项目启动的时候进行的,如果项目 阅读全文
posted @ 2022-12-14 19:18
cnetsa
阅读(795)
评论(0)
推荐(0)
摘要:
通过之前的介绍我们知道Config Server读取配置文件有2种方式: 一种是从本地仓库中读取并缓存到Config Server项目中; 另外一种是从远程仓库读取(这里我们以git为例)并缓存到Config Server项目中供Config Client获取。 所以下面我们会这两种不同的方式搭建C 阅读全文
posted @ 2022-12-14 18:48
cnetsa
阅读(647)
评论(0)
推荐(0)
摘要:
市场上的开源的配置中心有很多,如奇虎360的QConf、淘宝的Diamond、百度的Disconf、携程的Apollo都可解决上述提到的问题,同样地Spring Cloud提供的配置中心则是Spring Cloud Config。 Spring Cloud Config在官方文档中的表述:为分布式系 阅读全文
posted @ 2022-12-14 16:55
cnetsa
阅读(163)
评论(0)
推荐(0)
摘要:
了解Spring Cloud Config的作用。 熟悉Config Server从本地仓库读取配置文件。 熟悉Config Server从远程仓库git读取配置文件。 熟悉Spring Cloud Config使用RabbitMQ消息队列并结合Spring Cloud Bus实现配置的自动刷新。 阅读全文
posted @ 2022-12-14 16:48
cnetsa
阅读(269)
评论(0)
推荐(0)
摘要:
上一节我们带领读者使用Hystrix Dashboard 查看服务调用的监控信息,以此来查看某些服务的健康状态。 但是我们只查看了goods服务被调用的健康状态,而在一个复杂的分布式系统中,相同服务类型的节点可能有很多个,它们组成了一个集群。 如果想要同时监控集群中多个服务节点的健康指标信息,就需要 阅读全文
posted @ 2022-12-14 16:41
cnetsa
阅读(183)
评论(0)
推荐(0)
摘要:
在上一节中我们对Hystrix实现服务熔断和降级进行了原理分析,在其解释中提到了Hystrix命令执行会根据其健康指标来决定是否熔断,这些健康指标除了可以让Hystrix自己决定熔断外,我们也能够实时地查看,这对于系统的运维也非常有帮助。那么我们怎样才能查看Hystrix的健康指标呢?其实Hystr 阅读全文
posted @ 2022-12-14 15:53
cnetsa
阅读(372)
评论(0)
推荐(0)
摘要:
通过上面两节我们了解了Hystrix的基本使用,下面我们将通过Hystrix官方的工作流程(如图所示)来解析Hystrix是怎样实现服务熔断】 图中执行的步骤如下: ① 创建一个HystrixCommand或者HystrixObservableCommand对象。 先通过调用HystrixComma 阅读全文
posted @ 2022-12-14 15:46
cnetsa
阅读(199)
评论(0)
推荐(0)
摘要:
Feign本身就整合了Hystrix,所以它自带熔断和降级功能,只不过默认熔断功能是关闭的,需要我们自己去开启。 所以我们只需要在Hystrix服务项目上添加Feign服务访问方式即可实现熔断和降级。 开发步骤如下: ① 在application.yml中开启Feign的熔断功能,如程序清单13-8 阅读全文
posted @ 2022-12-14 15:45
cnetsa
阅读(360)
评论(0)
推荐(0)
摘要:
当我们进行服务调用的时候使用的是RestTemplate方式,那么在服务调用的时候进行服务熔断就需要结合Ribbon来使用,并且当服务出现故障的时候服务调用者也需要知道并做出相应的处理,比如进行服务降级。 下面我们就结合Ribbon来实现服务的熔断和降级处理。 开发步骤如下: ① 我们使用IDEA创 阅读全文
posted @ 2022-12-14 15:27
cnetsa
阅读(259)
评论(0)
推荐(0)
摘要:
Hystrix翻译成汉语有海参、豪猪和猬草的意思,它们的特征是身上长有棘刺,主要是起到保护的作用,这也彰显了Hystrix在微服务中的作用。 Hystrix是由Netflix公司开源的一个延迟和容错库,它通过隔离远程系统、服务或者第三方库之间的访问,防止级联失败并提供回退选项,从而提升系统的可用性、 阅读全文
posted @ 2022-12-14 15:16
cnetsa
阅读(378)
评论(0)
推荐(0)
摘要:
在微服务架构系统中通常会有多个服务,在服务调用中如果出现基础服务故障,可能会导致级联故障,即一个服务不可用,可能导致所有调用它或间接调用它的服务都不可用,进而造成整个系统不可用的情况,这种现象也被称为服务雪崩效应。 服务雪崩效应是一种因“服务提供者不可用”(原因)导致“服务调用者不可用”(结果),并 阅读全文
posted @ 2022-12-14 15:09
cnetsa
阅读(380)
评论(0)
推荐(0)
摘要:
了解服务雪崩效应产生的原因和应对的策略。 熟悉Hystrix的使用及其工作原理。 熟悉如何在Feign中使用Hystrix进行服务降级。 熟悉Hystrix Dashboard和Turbine的使用。 在微服务架构系统中,可能被拆分出很多的服务,如电商项目中的订单服务、商品服务、库存服务等,这些服务 阅读全文
posted @ 2022-12-14 15:08
cnetsa
阅读(23)
评论(0)
推荐(0)
摘要:
Ribbon策略测试 在第2节中我们进行Ribbon第一个实例的时候就发现了Ribbon从服务清单里面调用服务默认是通过轮询的方式,接下来我们将通过修改一些配置来体验其他的负载均衡策略。 首先,我们需要在订单服务的application.yml文件中配置其他的负载均衡策略,如程序清单12-8所示。 阅读全文
posted @ 2022-12-14 14:59
cnetsa
阅读(145)
评论(0)
推荐(0)
摘要:
通过上一节解析Ribbon原理我们知道,在BaseLoadBalancer中通过IRule接口定义了很多的负载均衡策略,所以我们可以通过查看IRule的接口类实现关系来看一下Ribbon有哪些负载均衡策略,如图所示。 IRule接口的直接子类是AbstractLoadBalancerRule,但是它 阅读全文
posted @ 2022-12-14 14:52
cnetsa
阅读(493)
评论(0)
推荐(0)
摘要:
之前我们在使用RestTemplate进行服务交互的时候,在其注入的bean上添加了@LoadBalanced注解,这样它就默认是使用Ribbon进行负载均衡处理。 但是RestTemplate是Spring提供的,Bean跟Ribbon客户端负载均衡又有什么关系呢? 下面我们就来深入地研究Ribb 阅读全文
posted @ 2022-12-14 14:30
cnetsa
阅读(135)
评论(0)
推荐(0)
摘要:
Ribbon是Netflix公司提供的一个在Spring Cloud中免费使用的客户端负载均衡器组件。 它在集群中为各个客户端之间的通信提供支持,可以控制、管理HTTP和TCP客户端的负载均衡。 Ribbon从Eureka注册获取访问服务提供者地址列表后,就可基于某种负载均衡算法,自动地帮助服务消费 阅读全文
posted @ 2022-12-14 14:21
cnetsa
阅读(418)
评论(0)
推荐(0)
摘要:
负载均衡(Load Balance)是实现系统高可用、缓解网络压力以及处理能力扩容的重要手段之一,负载均衡可以帮我们把一些网络请求的压力“均衡”到所有的服务器进行处理。 当然,因为多台服务器的承载能力各不相同,有的硬件配置高而有的硬件配置低,有的网络带宽高而有的网络带宽低,所以负载均衡是在保证服务器 阅读全文
posted @ 2022-12-14 14:16
cnetsa
阅读(202)
评论(0)
推荐(0)
摘要:
Zuul限流是通过引入spring-cloud-zuul-ratelimit依赖实现的。它提供了下面几种限流类型。 (1)用户(USER),根据认证用户或匿名用户限流。 (2)客户端IP地址(ORIGIN),根据客户端IP地址限流。 ( 3)请求路径(URL),根据请求URL限流。 (4)根据服务限 阅读全文
posted @ 2022-12-14 13:49
cnetsa
阅读(805)
评论(0)
推荐(0)
摘要:
Zuul可以实现对所有发往后端微服务请求的过滤和拦截。Zuul主要有4种类型的过滤器。 (1)pre:预过滤器,在路由分发请求前调用。 (2)post:后过滤器,在路由分发请求后调用。 (3)route:路由过滤器,用于路由请求分发。 (4)error:错误过滤器,在处理请求发生错误时调用。 怎样使 阅读全文
posted @ 2022-12-14 12:55
cnetsa
阅读(490)
评论(0)
推荐(0)
摘要:
我们现在搭建一个Zuul网关,实现在第9章创建的商品和订单两个微服务的接口通过网关统一访问。同样,先创建一个Spring Boot项目,命名为zuul,如图所示。 然后,在“Dependencies”界面中勾选“Spring Cloud Routing”中的“Zuul [Maintenance]”; 阅读全文
posted @ 2022-12-14 12:45
cnetsa
阅读(805)
评论(0)
推荐(0)
摘要:
Zuul是Netflix公司提供的微服务网关,它可以和Eureka、Ribbon、Hystrix等组件配合使用,实现认证和安全、性能监测、动态路由、负载均衡、压力测试、静态资源处理等功能。 Gateway是Spring官方基于Spring 5.0、Spring Boot 2.0和Project Re 阅读全文
posted @ 2022-12-14 12:03
cnetsa
阅读(1383)
评论(0)
推荐(0)
摘要:
网关指的是一个网络连接到另一个网络的“关口”。在Internet里,网关是一种连接内部网与Internet上其他网络的中间设备,通俗来说,也叫作“路由器”。 网关地址是能够理解成内部网与Internet信息传输的一种通道的地址。 根据不一样的分类准则,网关也有非常多的种类,在TCP/IP(Trans 阅读全文
posted @ 2022-12-14 11:56
cnetsa
阅读(510)
评论(0)
推荐(0)
摘要:
Spring Cloud中,除了可以使用Eureka作为注册中心外,还可以通过配置的方式使用Zookeeper作为注册中心。 ZooKeeper是Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。 在分布式领域有一个很著名的CAP理论:一致性(C 阅读全文
posted @ 2022-12-14 11:52
cnetsa
阅读(461)
评论(0)
推荐(0)
摘要:
Eureka负责服务治理,是微服务架构的核心基础,所以它的重要性不言而喻。 默认情况下,只要知道地址和端口,就能访问和查看所有微服务的状态以及一些监控信息,缺乏一定的安全性。 Eureka的安全认证可以通过设置用户名和密码来确保对Eureka的面板信息进行安全的访问,此时客户端只能通过安全认证方式进 阅读全文
posted @ 2022-12-14 11:19
cnetsa
阅读(1198)
评论(0)
推荐(0)
摘要:
Eureka REST API是指通过指定的URL来查询或操纵注册到Eureka Server的Eureka Client。 Netflix官方在GitHub的Wiki上专门写了一篇文章“Eureka REST operations”来介绍Eureka REST API,具体内容如表所示。 其中,实 阅读全文
posted @ 2022-12-14 11:12
cnetsa
阅读(430)
评论(0)
推荐(0)
摘要:
用了注册中心后,所有的服务都要通过注册中心来进行信息交换。注册中心的稳定性非常重要,一旦注册中心掉线,将会影响到整个系统的稳定性。 所以在实际开发中,Eureka一般都是以集群的形式出现的。 Eureka Server集群中的节点通过点对点通信的方式共享服务注册表。 下面我们搭建一个3个Eureka 阅读全文
posted @ 2022-12-14 11:00
cnetsa
阅读(228)
评论(0)
推荐(0)
摘要:
默认情况下,如果Eureka Server在90s内没有接收到某个微服务的心跳,Eureka Server将会移除该微服务。 但是当发生网络故障时,微服务与Eureka Server之间无法正常通信,而微服务本身是正常运行的,则此时不应该移除这个微服务。 所以Eureka引入了自我保护模式。 官方对 阅读全文
posted @ 2022-12-14 10:23
cnetsa
阅读(961)
评论(0)
推荐(0)
摘要:
我们知道Eureka Client会保存各个服务的信息,其中包含各个服务的地址。 那么服务之间到底是怎样通过这些信息进行交互的呢? Spring Cloud服务间的调用默认支持两种方式——Ribbon和Feign,具体来说就是使用RestTemplate和FeignClient来调用。 不管使用什么 阅读全文
posted @ 2022-12-14 10:13
cnetsa
阅读(286)
评论(0)
推荐(0)
摘要:
在9.3节中我们搭建好了一个商品微服务,本节我们来搭建一个订单(order)微服务,实现简单的查询订单的功能。 通常订单只保存商品的ID,而我们在查询订单的时候需要看到商品的详细信息,所以就需要通过调用商品微服务来协助订单微服务实现此项功能。 此时,商品微服务就是服务提供者,而订单微服务则是服务消费 阅读全文
posted @ 2022-12-14 09:55
cnetsa
阅读(170)
评论(0)
推荐(0)
摘要:
我们搭建好了Eureka Server,本节我们来搭建一个Eureka Client商品(goods)微服务,实现简单的查询商品的功能。 我们使用IDEA创建一个名为goods的Spring Boot项目,如图9-4所示。 然后,在“dependencies”界面中勾选“Web”中的“Spring 阅读全文
posted @ 2022-12-14 09:19
cnetsa
阅读(105)
评论(0)
推荐(0)
摘要:
了解了Eureka的作用之后,我们搭建一个Eureka Server注册中心。 我们使用IDEA创建一个名为eureka-server的Spring Boot项目,如图9-1所示。 然后,在“dependencies”界面中勾选“Spring Cloud Discovery”中的“Eureka Se 阅读全文
posted @ 2022-12-14 09:11
cnetsa
阅读(207)
评论(0)
推荐(0)
摘要:
Eureka分为Eureka Server和Eureka Client,以实现服务注册以及服务发现的功能。 当其是Eureka Server时,便是服务端,也叫服务注册中心,所有的客户端会向其注册。 注册中心的服务注册表中将会存储所有可用服务节点的信息,服务节点信息可以通过访问注册中心直观地查看。 阅读全文
posted @ 2022-12-14 09:08
cnetsa
阅读(125)
评论(0)
推荐(0)
摘要:
Spring Cloud是一个由众多独立子项目组成的大型综合项目,每个子项目有不同的发行节奏,都维护着自己的发布版本号。 Spring Cloud通过一个资源清单(Bill of Material,BOM)来管理每个版本的子项目清单。为避免与子项目的发布版本号混淆,Spring Cloud没有采用版 阅读全文
posted @ 2022-12-14 09:04
cnetsa
阅读(1671)
评论(0)
推荐(0)
摘要:
相对于传统的单体架构,微服务架构引入了太多的概念,让新手有点无可适从。所以,我们要清楚哪些是自身需要的。下面我们分析一下哪些组件是开发一个使用微服务架构的系统所必需的。 使用微服务架构进行开发的4个步骤如下。 ① 沿用组织中现有的技术体系开发具有单一功能的微服务。 ② 服务提供方将地址信息注册到注册 阅读全文
posted @ 2022-12-14 09:02
cnetsa
阅读(116)
评论(0)
推荐(0)

浙公网安备 33010602011771号