springcloud微服务实战

author author     2023-03-25     372

关键词:

参考技术A 阅读《Spring微服务实战》笔记

项目地址: https://gitee.com/liaozb1996/spring-cloud-in-action

配置管理原则:

Spring Cloud Config 后端存储:文件系统、Git

标注引导类:

配置服务器配置:

创建配置文件:

访问配置:

客户端配置:

spring-cloud-config-client 依赖

boostrap.properties

刷新属性:

服务发现至关重要的原因:

传统服务位置解析(DNS+负载均衡器)的缺点:

服务发现实现组件:

构建 Eureka 服务:

标注引导类:

单机模式配置 :

每次注册服务都需要等待30秒,因为 eureka 需要连续接收 3 个心跳包才能使用该服务。

缓存注册表后,客户端每隔30秒会重新到 eureka 刷新注册表。

服务注册:

解决多网卡问题:

通过API获取注册表信息:(设置请求头 Accept:application/json )

http://localhost:8761/eureka/apps

http://localhost:8761/eureka/apps/organization

与 Ribbon 交互的客户端:

当使用二方包时需要在引导类添加 @EntityScan :

配置 RestTemplate:

DiscoveryClient:

支持 Ribbon 的 RestTemplate:

Feign:

OpenFeign 依赖:

Feign 会在运行时动态生成代理对象:

远程调用包括对远程资源和远程服务的调用。

远程调用会遇到两个问题:

四种客户端弹性模式:

为什么客户端弹性模式很重要:

客户端弹性模式提供了三种构建能力:

在引导类启动断路器:

配置属性手册: https://github.com/Netflix/Hystrix/wiki/Configuration

使用 Hystrix 默认配置对远程调用进行管理:

超时配置: execution.isolation.thread.timeoutInMilliseconds

配置后备策略:后备方法必须在同一类中并且具有相同的方法签名

配置舱壁:

Hystrix 断路的策略:

Hystrix 有三个级别的配置:

类级别配置:

Hystrix 有两个隔离策略:

如果使用 TREAD 策略,并且要将父线程的上下文传递到子线程中,需要自定义 HystrixConcurrencyStrategy

Zuul 提供的功能:路由映射、构建过滤器

依赖:zuul、eureka-client

标注引导类:

zuul 配置:



Zuul路由映射机制:

查询路由: http://localhost:8080/actuator/routes

调用服务: http://localhost:8080/license/license/1 (第一个 license 是服务ID,/license/1 是请求路径)

使用服务发现手动映射路由:

添加前缀:

手动配置静态路由:前面都是基于 eureka 上的服务id进行路由映射的,而这里是直接配置URL

Git + http://localhost:8080/actuator/refresh (POST)

Zuul 使用 Hystrix 和 Ribbon

Zuul 支持三种过滤器类型:前置过滤器、后置过滤器、路由过滤器

前置过滤器:向通过网关的请求添加 tracking-id

这里使用了 Zuul 的 RequestContext:

Zuul 不允许直接修改请求头部,这里通过 addZuulRequestHeader 添加头部信息,在调用远程服务会自动合并

为了方便应用获取 tracking-id,这里使用 Filter 获取请求头信息并映射到 UserContext 中:

为了在服务间调用传播 tracking-id 这里需要定义一个 和 RestTemplate:

项目中 license 会远程调用 orgnization,这里需要在两个微服务配置 Filter

传智播客idea版springcloud微服务实战视频教程

课程目录部分截图: 下载地址:百度网盘下载 查看详情

基于springcloud的微服务实战

1引言1.1目的本博文是基于springboot+springcloud实现的微服务架构改造,提供对研发人员的技术架构支持。版本0.0.1主要实现了四个模块的功能:服务生产者,服务消费者,服务注册中心,客户端负载均衡。后续还会根据项目进展进... 查看详情

springcloud微服务实战

...章服务注册与发现介绍微服务中的服务注册与发现机制,SpringCloudEureka组件的使用以及如何保证高可用第4章服务拆分以商品服务和订单服务为例介绍微服务拆分中的业务功能拆分和数据拆分的注意点以及将项目模块进行多模块改... 查看详情

1.springcloud微服务实战---基础知识

...化管理数据 7.基础设施自动化 8.容错设计 4.为什么选择SpringCloud 服务治理: 阿里巴巴开源的Dubbo和当当网在其基础上扩展的DubboX、Netflix的Eure 查看详情

springcloud微服务实战搭建企业级应用开发框架:架构说明

SpringCloud分布式应用微服务系统架构图:SpringCloud分布式应用微服务系统组件列表:微服务框架组件:SpringBoot2+SpringCloudHoxton.SR8+SpringCloudAlibabaSpringBootAdmin:管理和监控SpringBoot应用程序的微服务健康状态数据持久化组件:MySql+Druid+My... 查看详情

springcloud微服务实战

...:https://gitee.com/liaozb1996/spring-cloud-in-action配置管理原则:SpringCloudConfig后端存储:文件系统、Git标注引导类:配置服务器配置:创建配置文件:访问配置:客户端配置:spring-cloud-config-client依赖boostrap.properties刷新属性:服务发现... 查看详情

本地服务调用k8s环境中的springcloud微服务实战(代码片段)

欢迎访问我的GitHub下图是典型的微服务在Kubernetes环境的部署情况(简化版):在开发阶段,如果服务B还在开发中,部署情况如下图所示:此时的服务B如何才能访问到注册中心和服务A呢?常规手段:通过service访问对应的pod通常... 查看详情

微服务实战:选择微服务部署策略

 微服务实战(一):微服务架构的优势与不足微服务实战(二):使用APIGateway微服务实战(三):深入微服务架构的进程间通信微服务实战(四):服务发现的可行方案以及实践案例微服务实践(五):微服务的事件驱动... 查看详情

chrisrichardson微服务实战系列

微服务实战(一):微服务架构的优势与不足微服务实战(二):使用APIGateway微服务实战(三):深入微服务架构的进程间通信微服务实战(四):服务发现的可行方案以及实践案例微服务实践(五):微服务的事件驱动数据... 查看详情

3.20go微服务实战(微服务实战)---日志和监控

第20章 日志和监控20.1 日志实践20.2 指标 20.2.1 指标数据类型 20.2.2 命名约定 20.2.3 存储和查询 20.2.4 Grafana20.3 日志记录 20.3.1 具有关联ID的分布式跟踪 20.3.2 ElasticSearch、Logstash和Kibana 20.3.3 Kibana 20.4 异常    查看详情

3.20go微服务实战(微服务实战)---日志和监控

第20章 日志和监控20.1 日志实践20.2 指标 20.2.1 指标数据类型 20.2.2 命名约定 20.2.3 存储和查询 20.2.4 Grafana20.3 日志记录 20.3.1 具有关联ID的分布式跟踪 20.3.2 ElasticSearch、Logstash和Kibana 20.3.3 Kibana 20.4 异常    查看详情

3.21go微服务实战(微服务实战)---持续交付

第21章 持续交付21.1 持续交付简介 21.1.1 手动部署 21.1.2 持续交付的好处 21.1.3 持续交付面面观 21.1.4 持续交付的过程21.2 容器编排的选项和基础架构21.3 Terraform 21.3.1 提供者 21.3.2 Terraform配置入口点 21.3.3 VPC模块 21.3.... 查看详情

3.21go微服务实战(微服务实战)---持续交付

第21章 持续交付21.1 持续交付简介 21.1.1 手动部署 21.1.2 持续交付的好处 21.1.3 持续交付面面观 21.1.4 持续交付的过程21.2 容器编排的选项和基础架构21.3 Terraform 21.3.1 提供者 21.3.2 Terraform配置入口点 21.3.3 VPC模块 21.3.... 查看详情

springcloudalibaba微服务实战三十四-隐私接口禁止外部访问(代码片段)

...好,我是飘渺!在这个系列文章中曾经介绍过在SpringCloud体系下如何防止前端请求绕过网关直接到达后端微服务,今天我们要反其道而行之,介绍在SpringCloud体系中如何防止内部隐私接口被网关调用。看到这里可能... 查看详情

2.go语言高并发与微服务实战---微服务概述

...务架构 2.1.5云原生架构2.2常见的微服务框架 2.2.1Java中的SpringCloud与Dubbo框架 2.2.2Go语言中的GoKit与GoMicro框架2.3微服务设计的六大原则 1.高内聚,低耦合 2.高度自治 3.以业务为中心 4.弹性设计 5.日志与监控 查看详情

2.go语言高并发与微服务实战---微服务概述

...务架构 2.1.5云原生架构2.2常见的微服务框架 2.2.1Java中的SpringCloud与Dubbo框架 2.2.2Go语言中的GoKit与GoMicro框架2.3微服务设计的六大原则 1.高内聚,低耦合 2.高度自治 3.以业务为中心 4.弹性设计 5.日志与监控 查看详情

重新理解微服务之它还那么纯粹吗?

系列文章.Net微服务实战之技术选型篇.Net微服务实战之技术架构分层篇.Net微服务实战之DevOps篇.Net微服务实战之负载均衡(上).Net微服务实战之CI/CD.Net微服务实战之Kubernetes的搭建与使用.Net微服务实战之负载均衡(下).Net微服务... 查看详情

一本专为java/spring开发人员准备的微服务实战指南

...发现、监控、分布式跟踪、安全性、管理等。这本《Spring微服务实战》(第2版)可以帮你解决这些难题。《Spring微服务实战》(第2版)是一本专为Java/Spring开发人员准备的微服务实战指南,书中将介绍Spring中... 查看详情