1.11 微服务问题分析及总结

发生Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)问题 问题:在验证某些功能时,启动camera auto DC模式成功,切换其它模式失败基本必现camera error,crash log如下: C015C0D 08-08 16:01:22.447 6408 6600 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xe375435c in tid 6600 (res_init), pid 6408 (provider@2.4-se) C015DB6 0... 阅读详情


1 微服务架构入门

1.1 核心知识点

  • 微服务架构诞生的背景(软件即服务,将一个大型软件,拆成若干个小系统;分而治之~北京一个火车站到多个火车站)
  • 微服务架构解决方案(大厂基本自研~自己研发各种组件,Spring Cloud ~Netflix,Alibaba,…)
  • 微服务架构下Maven聚合项目的创建方式?(Maven聚合项目~资源复用:extends,import,简化编译,打包,部署方式)
  • 微服务架构入门聚合项目创建?(01-sca,sca-consumer,sca-provider,sca-gateway,sca-common)
  • 微服务中聚合工程之间的引用设计?(将一个工程作为依赖添加到其它工程~重点是坐标)

1.2 常见问题分析

  • 为什么需要微服务?(对系统分而治,解决因并发访问过大带来的系统复杂性(例如:业务,开发,测试,升级,可靠性等)
  • 微服务设计的特点?(单一职责,独立进程,开发测试效率高,可靠性高,升级难度小,但会带来一定的维护成本)
  • 微服务解决方案有哪些?(大厂自研,中小企业采用开源Spring Cloud Alibaba,Spring Cloud Netfix等 )
  • 微服务设计中需要哪些关键组件(服务的注册,发现,配置,限流降级,访问入口管理,分布式事务管理等)
  • 创建聚合工程的目的?(实现工程之间资源的的共享,简化工程管理)
  • 如何修改聚合工程中项目的编译和运行版本?(pom.xml:build->plugins->plugin->maven-compiler-plugin)
  • maven工程中build元素的作用?(定义项目的编译,打包方式)
  • maven父工程的packaging元素内的值是什么?(父工程默认打包方式为pom方式)
  • maven父工程中dependencyManagement元素的作用是什么?(项目依赖的版本,当前工程或子工程不需要再指定版本)
  • Maven父工程中如何统一定义JDK编译和运行版本?(配置maven编译插件:maven-compiler-plugin)

1.3 常见Bug分析

  • 依赖无法下载或加载?(本地库冲突,网络不好,maven镜像配置,指定版本在远程服务器不存在,清idea缓存后重启)
  • 项目的pom.xml文件有删除线?(idea/setting/build,Execution,Deployment/build Tools/maven/ignore Files)
    在这里插入图片描述
  • 项目单元测试失败,提示找不到@SpringBootConfiguration,例如:
    在这里插入图片描述
  • 单元测试依赖添加的有问题或者单元测试类写错了位置,例如:
    在这里插入图片描述
  • 方法调用错误,例如:
    在这里插入图片描述
  • 空指针异常,例如:
    在这里插入图片描述

2 Nacos注册中心入门

2.1 核心知识点

  • 服务注册中心诞生背景? (服务多了,需要统一管理,例如所有公司需要在工商局进行备案)
  • 服务注册中心的选型?(社区活跃度,稳定性,功能,性能,学习成本)
  • Nacos下载,安装,配置,启动,访问(http://ip:port/nacos)
  • 基于Nacos实现服务的注册?(添加依赖,服务配置,启动服务并检查)
  • 基于RestTemplate实现服务的简易调用?(服务消费方调用服务提供方)

2.3 常见问题分析

  • 如何理解服务注册中心?(存储服务信息的一个服务)
  • 服务注册中心诞生的背景? (服务多了,需要对服务进行更好管理)
  • 市场上常用的注册中心?(Zookeeper,Eureka,Nacos,Consul)
  • 如何对注册中心进行选型?(社区活跃度,稳定性,功能,性能,学习成本)
  • Nacos 是什么?(是Alibaba公司基于SpringBoo技术实现的一个注册中心,本质上也是一个web服务)
  • Nacos 的基本架构?(Client/Server架构)
  • Nacos 主要提供了什么核心功能?(服务的注册,发现,配置)
  • Nacos 服务启动需要什么前置条件?(配置JDK的JAVA_HOME目录,安装MySQL5.7以上版本,配置连接的数据库)
  • Nacos 服务单机模式,window平台下启动时的指令是什么?(startup.cmd -m standalone)
  • 实现Nacos服务注册需要添加什么依赖?(两个:web,discovery)
  • 实现Nacos服务注册时,必须做哪些配置?(服务名,假如是本机服务注册可以省略服务地址)
  • Nacos如何检查服务状态?(通过心跳包实现,服务启动时会定时向nacos发送心跳包-BeatInfo)
  • 服务之间进行服务调用时,使用了什么API?(RestTemplate,用此对象之前要先创建这个对象并交给spring管理)

2.4 常见Bug分析

  • JAVA_HOME环境变量定义错误,例如:
    在这里插入图片描述
    说明,这里一定要注意JAVA_HOME单词的拼写,JAVA_HOME中定义的JDK是存在的,还有后面的路径不能有分号“;”.

  • MySQL版本比较低(建议mysql5.7或mariadb10.5及以上版本),例如:
    当执行nacos-mysql.sql文件时,出现如下错误:
    在这里插入图片描述

  • sql文件不存在,例如
    在这里插入图片描述

  • SQL文件应用错误,例如:
    在这里插入图片描述

  • Nacos的application.properties配置文件中,连接数据库的配置错误.
    在这里插入图片描述

  • 服务启动时,端口被占用了。例如:
    在这里插入图片描述

  • 服务注册时,服务名不正确,格式不正确,配置文件名字不正确,或者没有配置文件,例如:
    在这里插入图片描述

  • 基于Nacos实现服务注册失败,例如
    在这里插入图片描述

  • 客户端500异常,例如
    在这里插入图片描述

  • 服务调用时,连接异常,例如:
    在这里插入图片描述

  • 服务调用时底层404问题,例如:
    在这里插入图片描述

3 基于Nacos实现服务发现与调用

3.1 核心知识点

  • 负载均衡诞生背景.(网络中有一组可以提供相同服务的计算机~类似银行的各个营业点)
  • 客户端负载均衡&服务端负载均衡的不同?(browser->nginx->…;sca-consumer->sca-provider)
  • 基于LoadBalancerClient 对象从注册中心获取服务列表(服务发现)
  • 基于Ribbon(一个负载均衡组件,这个组件中提供一套负载均衡算法)实现负载均衡
  • @Loadbalanced注解的应用(描述RestTemplate对象,为此对象的远程调用进行赋能)

3.2 常见问题分析

  • 为什么负载均衡?(通过多个服务实例均衡处理客户端的请求,生活中有一种说法叫不患寡而患不均)
  • 如何理解服务发现?(服务发现就是从注册中心获取服务信息,例如从nacos获取服务实例信息)
  • LoadBalancerClient的作用?(从nacos注册中心获取服务实例列表,然后本地基于负载均衡算法获取具体服务实例)
  • @Loadbalanced注解作用?(描述RestTemplate对象,让系统底层为RestTemplate对象赋能,对请求过程进行拦截)
  • 你了解哪些负载均衡策略?(基于IRule接口去查看,快捷键ctrl+h)
  • 我们如何修改负载均衡策略?(配置文件->例如application.yml,配置类->例如启功类)

3.3 常见Bug分析

  • NullPointerException,例如:

在这里插入图片描述

  • 端口被占用,例如

在这里插入图片描述

  • UnknownHostException,例如

在这里插入图片描述

4 基于Feign方式的服务调用实践

4.1 核心知识点

  • Feign 诞生的背景
  • Feign 方式远程服务调用实践
  • Feign 接口对应的Bean对象命名
  • Feign 方式远程服务调用时熔断处理方案
  • Feign 方式调用原理分析

4.2 常见问题分析

  • 为什么使用Feign方式的服务调用?(优化结构,简化服务调用过程代码的编写、)
  • 如何基于feign方式实现远程服务调用?(依赖,配置,feign接口定义)
  • @EnableFeignCleints 注解的作用是什么?(描述配置类,例如启动类)
  • @FeignClient注解的作用是什么?(告诉Feign Starter,在项目启动时,为此注解描述的接口创建实现类-代理类)
  • 如何理解基于Feign方式的远程服务调用?声明式远程服务调用,底层封装了服务调用过程。
  • Feign方式如何实现负载均衡?(底层基于ribbon组件实现)
  • Feign接口指向的对象是谁?

在这里插入图片描述- 常用服务发现、服务调用方式有哪些?

在这里插入图片描述

4.3 常见Bug分析

  • Fien接口对象依赖注入异常,例如:
    在这里插入图片描述

  • 服务访问时的404异常,例如:
    在这里插入图片描述

  • Feign接口方法中@PathVariable注解参数定义问题,例如:
    在这里插入图片描述

  • 读数据超时,例如:
    在这里插入图片描述

  • 依赖注入异常,例如:
    在这里插入图片描述

5 Nacos配置中心应用实践

5.1 核心知识点

  • 配置中心诞生背景。
  • 市场上主流的配置中心。
  • Nacos配置中心简介。
  • Nacos配置中心入门实践。
  • Nacos配置中心的配置管理模型。

5.2 常见问题分析

  • 什么是配置中心?(存储项目配置信息的一个服务,这个服务可以实现配置的动态发布和更新)
  • 为什么要使用配置中心?(集中管理配置信息,动态发布配置信息)
  • 市场上有哪些主流的配置中心?(Apollo,nacos,……)
  • 配置中心一般都会配置什么内容?(可能会经常变化的配置信息,例如连接池,日志、线程池、限流熔断规则)
  • 什么信息一般不会写到配置中心?(服务端口,服务名,服务的注册地址,配置中心地址)
  • 项目中为什么要定义bootstrap.yml文件?(此文件被读取的优先级比较高,可以在服务启动时读取配置中心的数据)
  • Nacos配置中心宕机了,我们的服务还可以读取到配置信息吗?(可以从服务的本地内存读取)
  • 微服务应用中客户端如何感知配置中心数据变化?(1.4.x版本的nacos客户端会基于长轮询机制从nacos获取配置信息)
  • 服务启动后没有从配置中心获取我们的配置数据是什么原因?(依赖,bootstrap.yml,配置单词,格式,配置模型)
  • 你项目中使用的日志规范是什么?(SLF4J~门面模式)
  • 你了解项目中的日志级别吗?(debug,info,warn,error可以基于日志级别控制日志的输出)
  • Nacos配置管理模型的背景?(环境不同配置不同)
  • Nacos配置中的管理模型是怎样的?(namespace>group>service/data-id)
  • Nacos客户端(微服务)是否可以读取共享配置?(可以)

5.3 常见Bug分析

  • mysql中没有配置中心数据,例如:

在这里插入图片描述

  • 包导入错误,例如:
    在这里插入图片描述
  • 配置中心配置格式不正确,例如:
    在这里插入图片描述
  • 程序中服务读取配置时,找不到配置,例如:

在这里插入图片描述

6 Sentinel 限流应用实践

6.1 核心知识点

  • 服务限流、降级的背景(服务的治理)
  • Sentinel限流入门实践(控制台8180-定义规则,客户端服务应用规则:依赖,配置)
  • Sentinel常用限流模式(直接,关联->保证核心业务,链路->红绿灯)
  • Sentinel降级(熔断)入门实现(出现不稳当的系统服务时,暂停对此服务的访问)
  • Sentinel实现热点参数限流(热点视频,文章,…),系统规则配置(例如cpu使用率),授权配置(黑白名单)

6.2 常见问题分析

  • 为什么要进行限流、降级? (系统处理能力有限,可以通过限流方式,保证系统可靠运行)
  • 你了解Sentinel限流有哪些算法? (计数器,令牌桶,漏桶,滑动窗口算法~sentinel默认)
  • Sentinel常用限流模式?(直接,关联->保证核心业务,链路->红绿灯)
  • @SentinelResource注解的作用,你用过哪些属性?(在链路限流中描述资源节点)
  • Sentinel常用限流效果有哪些?(快速失败,预热,排队)
  • Sentinel中限流、降级操作被触发时出现的异常类型是什么?(都是BlockException类型的子类)
  • 如何对限流结果进行处理?(有默认处理方案,我们也可以自己定义处理规则-实现BlockExceptionHandler接口)
  • Sentinel限流的基本原理?(底层对服务请求进行拦截,然后通过流控规则限定对资源访问)

在这里插入图片描述

6.3 常见Bug分析

  • sentinel 服务启动不起来?(要配置jdk环境变量path,要使用JDK8版本)
    
  • sentinel 面板不显示我们的服务?(依赖,配置>一定要注意缩进,先访问,放大招-清idea缓存重启)
  • 配置完sentinel后,业务服务启动不启动来?(大部分都是配置错了)

7 Gateway 入门应用实践

7.1 核心知识点

  • API 网关(Gateway)诞生背景
  • 市场主流微服务网关(Spring Cloud Gateway,zuul,…)
  • API Gateway实现服务的保护和转发(重点)
  • API Gateway层面的负载均衡实现(重点,lb://sca-provider)
  • API Gateway请求处理原理分析(重点:官方图,了解关键代码,执行过程)

7.2 常见问题分析

  • 为什么要使用api网关?(服务保护,统一url访问,统一身份认证,统一跨域设计,。。。)
  • 网关入门实践的步骤? (依赖,配置,启动,服务访问)
  • 网关项目中的负载均衡是如何实现?(底层基于Ribbon实现,可以在RibbonLoadBalancerClient中加断点分析)
  • 说说SpringCloud gateway处理请求的基本流程?(官方,断点)
    在这里插入图片描述

7.3 常见Bug分析

  • 配置文件格式不正确,例如

在这里插入图片描述

  • 服务访问被拒绝,例如

在这里插入图片描述

  • 服务注册失败(nacos没启动),例如:
    在这里插入图片描述
  • 503 异常(找不到可用的服务)

在这里插入图片描述

7.4 路由配置写到配置中心进行实践

第一步:添加依赖(spring-cloud-starter-alibaba-nacos-config)

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

第二步:修改配置文件名(修改bootstrap.yml)并添加注册中心配置

spring:
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        file-extension: yml

第三步:在nacos中创建配置,并将路由部分内容添加到配置中心
在这里插入图片描述
第四步:启动服务(nacos,两个provider,一个gateway)读取配置并进行访问测试。
在浏览器中输入http://localhost:9000/nacos/provider/echo/9000

- 在网关层面配置负载均衡策略(可以直接将配置写到配置中心),例如:
sca-provider: #这个是要进行远程调用的服务id(服务名)
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载均衡算法

8 Gateway 进阶应用实践

8.1 核心知识点

  • 网关中常用谓词(predicate)对象及实践。
  • 网关中过滤器(Filter)的类型及实践。
  • 网关中基于sentinel实现服务限流(API,路由id)。
  • 网关中基于自定义限流结果的处理(GatewayCallbackManager)。
  • 网关中实现统一跨域配置(推荐配置文件,参考官网)。

8.2 常见问题分析

  • 网关中的谓词对象类型?(GatewayPredicate)
  • 网关中的谓词对象是如何创建的?(谓词工厂)
  • 你在网关中配置过哪些常用谓词?(Path,Method,Before,Query,Header,…)
  • 网关中的过滤器是如何分类的?(GlobalFilter,GatewayFilter:需要手动配置)
  • 我们是否可以自定义谓词,过滤器对象?(可以,参考官方默认的定义)
  • 网关层面如何基于sentinel实现限流?(有关sentinel的两个依赖,配置,JVM参数)
  • 网关层面的限流类型有哪些?(路由id,API分组)
  • 我们是否可以对限流结果进行自定义处理?(可以,了解)
  • 网关中做跨域如何设计?(Java代码方式配置,配置文件方式-推荐)
  • 如何将路由,跨域,负载等配置写到配置中心?(注意层级关系)

8.3 常见Bug分析

  • 配置文件的格式(一定要注意缩进关系)
  • 配置中心数据读取不到?(依赖,bootstrap.yml,内容的格式,配置管理模型)
  • 跨域配置问题?(服务于客户端的ajax请求)
    在这里插入图片描述

9 单点登录系统初步设计及实现

9.1 核心知识点

  • 单点登录系统诞生的背景。
  • Java中单点登录系统解决方案。
  • 单点登录系统(SSO)中的服务划分及关系设计。
  • 单点登录系统中父工程的创建及初始化。
  • 系统基础服务(sso-system)工程的创建及基本业务实现。

9.2 常见问题分析

  • 为什么要做单点登录设计?(业务简化,代码复用,不需要每个服务都登录一次)
  • 你知道哪些SSO系统解决方案?(基于用户登录状态信息的存储进行方案设计)
  • 单点登录系统中你的服务是如何设计的,工程结构是怎样的?
  • 用户登录时,需要从数据库查询哪些信息?(用户信息以及用户的权限信息)
  • 如何基于用户id查询用户权限,你有什么方案?(3种)
    在这里插入图片描述
  • 基于idea的为类自动生成序列化id?
    在这里插入图片描述
    在这里插入图片描述
  • 基于idea中的httpclient进行服务访问测试?
    在这里插入图片描述
  • 如何将链接数据库的信息写到配置中心?
    在这里插入图片描述
  • @Autowired注解描述的Mapper对象有红色波浪线,但运行没有错误,如何去除红色波浪线。
    在这里插入图片描述
  • idea中如何在Database窗口打开要访问的数据库,例如
    在这里插入图片描述

9.3 常见Bug分析

  • MySql指令不可用,例如:
    在这里插入图片描述

  • 项目启用异常,提示有多个@SpringBootConfiguration注解描述的类,例如:
    在这里插入图片描述

  • 连接数据库的url中时区定义有问题,例如:
    在这里插入图片描述

  • NullPointerExeption 异常分析?

在这里插入图片描述

  • 数据库依赖问题,例如:
    在这里插入图片描述
  • MyBatis 绑定异常(BindException)
    在这里插入图片描述

10 SSO系统中的登录逻辑基本实现

10.1 核心知识点

  • 定义封装用户信息的User对象(一定主要包结构)
  • 定义用户信息远程调用Feign接口(RemoteUserService~基于此接口调用sso-system服务中的用户信息)
  • 基于Security规范定义用户业务逻辑服务对象
  • (UserDetailsServiceImpl~调用RemoteUserService获取和封装用户信息)
  • 定义用户认证基本配置类(SecurityConfig~配置密码加密对象,认证规则,以及登录成功或失败的处理方案)
  • 实现自定义登录逻辑测试(校验登录正确账号和错误账户下服务端的响应结果)
  • 熟悉SpringSecurity的认证流程?(Client->Filters->AuthenticationManager–>UserDetailService->…)

10.2 常见问题分析

  • 为什么定义RemoteUserService 接口(Feign)?(基于此接口调用远程sso-system服务)
  • sso-auth服务中用户业务数据的获取在哪里?(客户端提交的用户名,sso-system服务提供的数据库数据)
  • 为什么要构建SecurityConfig对象?(配置加密算法,认证规则)
  • 为什么要让SecurityConfig类要继承WebSecurityConfigurerAdapter类型?(重写默认的认证规则)
  • 认证过程中使用的密码加密对象是谁?(BCryptPasswordEncoder,不可逆加密对象)
  • 单体架构中的用户的状态的存储是如何实现的?(了解,默认是存储到了tomcat的session对象中)
    在这里插入图片描述

10.3 常见Bug分析

  • 没有PasswordEncoder对象,例如:
    在这里插入图片描述

  • 远程调用服务404异常,例如:
    在这里插入图片描述

  • 远程调用服务没启动或服务名不正确,例如
    在这里插入图片描述

  • 基于postman登录测试时404异常,例如:

在这里插入图片描述

  • 服务名的定义和使用不规范,例如:
    在这里插入图片描述
  • Feign接口依赖注入异常,例如:
    在这里插入图片描述
  • NullPointerException,例如
    在这里插入图片描述

11 SSO系统颁发令牌及资源服务实践

11.1 核心知识点

  • 认证服务器(sso-auth)中Token设计(UUID令牌,JWT令牌)
  • 认证服务器(sso-auth)中Oauth2规范基本配置(认证入口,为谁认证,由谁认证,认证后颁发什么令牌)
  • 基于Postman进行认证测试?(请求方式,请求url,认证参数)
  • 资源服务器(sso-resource)核心业务分析及认证,授权规则设计及实现(匿名,认证,授权)

11.2 常见问题分析

  • JWT是什么?(是JSON WEB TOKEN这几个单词的缩写,描述的是web应用的一种令牌格式)
  • JWT有几部分构成?(头:令牌类型,签名算法,负载:允许包含用户登录状态 ,签名:防止令牌被篡改)
  • 为什么要采用JWT令牌?(可以存储用户登录状态信息,避免访问资源时从数据库查询认证信息)
  • 基于Oauth2协议的认证服务器默认的令牌生成策略是什么?(UUID.randomUUID())
  • 认证服务器中常见令牌相关设计存储方案有哪些?(Mysql,Redis,Jwt)
  • 认证服务器对用户进行认证时,客户端提交了哪些关键信息?(username,password,client_id,grant_type,client_secret)
  • 认证服务器完成认证操作后,服务端返回哪些信息?(访问令牌,刷新令牌,令牌类型,作用域,编号)
  • 认证服务器中完成认证业务的关键对象有哪些?(Filter,AutenticationManager,UserDetailService,.)
  • 资源服务器如何设计的认证,授权规则?(三个维度:匿名,登录,授权)
  • 访问令牌与刷新令牌有什么不一样?(客户端是要携带访问令牌访问资源的,刷新令牌是为了再次生成访问令牌)
  • 访问令牌,刷新令牌有有效时长吗?(刷新令牌有效时长一般要大于访问令牌有效时长)

11.3 常见Bug分析

  • 客户端传参不匹配,例如:
    在这里插入图片描述

  • AuthenticationManager对象没有配置(SecurityConfig),例如:
    在这里插入图片描述

  • 响应的令牌不正确,例如:
    在这里插入图片描述

  • 400异常,例如
    在这里插入图片描述

  • 请求方式不正确,例如
    在这里插入图片描述

  • 访问地址错误,例如:
    在这里插入图片描述

12 SSO网关,UI工程以及操作日志实践

12.1 核心知识点

  • SSO系统中网关服务器(sso-gateway)实现路由转发,跨域设计,负载均衡,限流。
  • SSO系统中UI工程中页面设计(Bootstrap+VUE+axios)及请求响应代码分析(200,401,403)。
  • SSO系统中访问资源时进行用户行为日志的获取和记录。(AOP,Feign,Async)

12.2 常见问题分析

  • 网关服务器在哪里做了负载均衡(lb://)?
  • 为什么网关层面要做跨域设计?(Ajax技术不支持跨域请求,将所有服务的跨域共性提取到网关层面)
  • UI工程中用户端如何提交ajax请求的?(axios,底层ajax对象为XMLHttpRequest)
  • 为什么在资源访问时要记录用户行为日志?(便于用户行为进行分析)
  • 你基于什么技术获取的用户行为日志?(采用了AOP的设计)
  • 你记录日志时采用的是同步还是异步方式?(异步方式)
  • 项目切面中如何获取请求对象?(RequestContextHolder)
  • 项目切面中获取获取登陆用户信息?(SecurityContextHolder)
  • 你项目中哪里用到了反射技术呢?(Spring Bean对象的创建,依赖注入,方法对象的获取,方法上注解的获取,。。)
  • @PreAuthorize注解的作用是什么?(描述资源方法,告诉系统底层,访问此方法需要授权)

12.3 常见Bug分析

  • 400异常,请求参数不合法(参数个数,类型,格式)。
  • 401异常,认证失败?(提交的数据不正确)
  • 403异常,没有资源访问权限?(说明用户为已认证用户,但是没有资源的访问权限)
  • 415异常,数据协议有问题?(比方说,你要json数据,但是数据格式定义的是text)
  • 调用的服务没有启动,例如:
    在这里插入图片描述
  • 503异常,例如
    在这里插入图片描述
Java微服务安全丨雪崩问题及解决方案 什么是雪崩问题?微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。可以认为:限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。相关内容自学JavaEE快速通关路径(依次向下顺序学习即可)Java SE基础-打好JavaSE基础才能成为开发高手。 阅读详情

相关推荐

微服务详解(九):故障排除指南

微服务详解(一):概述 微服务详解(二):解决方案 微服务详解(三):设置开发环境 微服务详解(四):领域驱动设计 微服务详解(五):实现微服务 微服务详解(六):部署与测试 微服务详解(七):微服务的安全性 微服务详解(八):最佳做法和一般原则 微服务详解(九):故障排除指南 1.日志记录和ELK环境 微服务一般使用映像的容器,如Docker来部署,它们提供日志,并通过命令来...

qq_36807862的博客 1576

Java系统拆分和微服务

各个应用熟悉之后,需要从系统层面来构思,我们想打造平台型的产品,那么最重要也是最难的一点就是功能集中管控,打破各个应用的业务小闭环,统一收拢,这个决心更多的是开发、产品、业务方、各个团队之间达成的共识,可以参考《微服务(Microservice)那点事》一文,“按照业务或者客户需求组织资源”。一个系统接的业务越多,耦合越紧密。一个是技术层面,通过与pd以及开发的讨论,熟悉现有各个应用的领域模型,以及优缺点,这种讨论只能让人有个大概,更多的细节如代码、架构等需要通过做需求、改造、优化这些实践来掌握。

2301_77822280的博客 960

微服务架构如何保障双11狂欢下的99.99%高可用

欢迎关注个人微信号:石杉的架构笔记(id:shishan100) 周一至周五早8点半!精品技术文章准时送上!   往期文章 拜托!面试请不要再问我Spring Cloud底层原理 【双11狂欢的背后】微服务注册中心如何承载大型系统的千万级访问? 【性能优化之道】每秒上万并发下的Spring Cloud参数优化实战       目录 一、概述 二、业务场景 三、线...

石杉的架构笔记 5447

微服务中常见问题

Spring Cloud五大组件有哪些?Eureka:注册中心Ribbon:负载均衡Feign:远程调用Hystrix:服务熔断Zuul/Gateway:服务网关 随着SpringCloud Alibaba在国内兴起,我们项目中使用了阿里巴巴的组件注册中心/配置中心 Nacos负载均衡 Ribbon服务调用 Feign服务保护 Sentinel服务网关 Gateway Eurake工作原理服务注册和服务发现是什么意思?Spring Cloud如何实现服务注册发现的?Nacos工作原理 Nacos和Eura

w15635748705的博客 2823

【微服务】分布式下服务调用产生的问题之服务容错

上篇中,我们了解了Ribbon的概念,也实现了基于Ribbon的服务调用,但同样也引发了另一个问题,不知道大家有没有思考过。如果服务与服务之间互相调用,那存不存在如果由于网络分区故障导致服务并不难100%可用?显而言之,是肯定存在的。那么该怎么解决这个问题呢?这时候就引入了一个新的概念,叫服务容错–Sentinel。在讲述服务容错之前,我们先模拟一个高并发导致网络故障的场景,让大家有更深层次的了解。

热爱技术,享受生活 2万+

Windows安装WSL子系统及docker,以及WSL和docker配置、使用及问题解决

在Windows操作系统中,Ubuntu子系统(也称为Windows Subsystem for Linux, WSL)为开发者提供了一个在Windows环境下运行Linux环境的平台。然而,有时用户在按照Ubuntu子系统或者使用WSL时,可能会遇到各种问题,下面总结一下解决方式。想要在Windows上安装Docker(实际上是基于Hyper-V或者WSL2这两项虚拟化技术),需要开启虚拟化功能,所以不管是对于系统还是硬件都有一定的要求。

sym的博客 9761

Dify 1.11.1升级前必读:5个真实环境兼容性故障案例复盘

解决Dify升级兼容难题,本文复盘5个真实故障案例。通过Dify 1.11.1兼容性测试,总结常见问题与应对策略,覆盖API对接、插件适配等典型场景,保障系统平稳升级。方法实用,过程可复现,值得收藏。

CodePulse的博客 935

FPGA数字下变频实战:用Vivado DDS IP核实现IQ采样与频率校正(附MATLAB仿真对比)

本文提供了一份基于Vivado DDS IP核实现FPGA数字下变频(DDC)的完整工程指南。详细阐述了IQ采样的原理、DDC链路构建、DDS频率校正的工程实现,并重点介绍了如何利用MATLAB搭建黄金参考模型进行全链路仿真与对比验证,分享了关键的调试技巧与性能优化建议。

t1u2v的博客 804

JDK11垃圾回收调优实战与性能优化指南

垃圾回收(GC)是Java虚拟机(JVM)内存管理的核心技术,通过自动回收无用对象释放内存空间。现代GC算法如G1、ZGC采用分代收集和并发标记策略,在吞吐量与延迟间取得平衡。JDK11作为长期支持版本,其G1回收器通过并行化处理和可预测停顿优化,显著提升了大数据量应用的性能表现。在电商秒杀、金融交易等低延迟场景中,合理的GC参数配置可使停顿时间控制在100ms内。通过-Xmx设置堆大小、-XX:MaxGCPauseMillis调整停顿目标,配合JFR飞行记录仪分析,能有效解决FullGC频繁、元空间溢出等

weixin_34226706的博客 330

【Docker】Ubuntu安装Docker

1 安装Docker 安装Docker有三种方法,这里只用repository安装,更详细的安装方法可以看官方文档。 1.1 添加repository 首先更新apt: sudo apt-get update 安装一些包让apt可以通过https使用repository: sudo apt-get install \ apt-transport-https \ ca-certif...

widiot的博客 9929

YOLOv11多模态融合实战:基于YOLOFuse的RGB与红外线(IR)协同检测技术解析

本文深入解析了基于YOLOv11的YOLOFuse多模态融合技术,重点探讨了RGB与红外线(IR)协同检测的实现原理与实战应用。文章详细介绍了双流架构与数据级、特征级、决策级三种融合策略,并通过实战案例展示了其在低光照、复杂环境下显著提升检测精度与鲁棒性的优势,为全天候安防、自动驾驶等场景提供了有效的技术解决方案。

weixin_29041195的博客 646

Microservices-with-Go:构建高可用微服务架构

Microservices-with-Go:构建高可用微服务架构 项目介绍 Microservices-with-Go 是一本由 Packt Publishing 出版的书籍的代码仓库,旨在帮助开发者利用 Go 语言构建可扩展和可靠的微服务架构。本书深入浅出地介绍了微服务开发中的最佳实践和解决方案,通过实践案例让读者更好地理解和掌握微服务的关键技术。 项目技术分析 本书涵盖了微服务开发中的多个关键...

gitblog_00763的博客 1398

OpenClaw入门必装Skills(附使用场景)

很多同学安装了OpenClaw后,但却不会使用,就相当于你只是拥有了一副强大的躯干,却没有给它装上能够灵活执行任务的“手脚”和负责思考决策的“大脑插件”——Skills。没有这些核心能力的支撑,OpenClaw只是一个“空壳”,无法真正应用到实际业务场景中,更谈不上提升效率或解决复杂问题。所以,安装只是第一步,要真正让OpenClaw“活”起来,为我们所用,就需要给OpenClaw安装各种Skills,这个过程就是养虾的过程。

十二测试录 3216

GoogleCloudPlatform/microservices-demo:微服务通信模式对比分析

在现代微服务架构中,通信模式的选择直接影响系统的性能、可靠性和可维护性。GoogleCloudPlatform/microservices-demo项目作为一个典型的云原生微服务示例,展示了多种通信模式的实践应用。本文将深入分析该项目中采用的通信模式,并通过对比帮助开发者理解不同场景下的最佳选择。 ## 项目架构概览 Online Boutique电商应用包含11个微服务,采用多语言技术栈: ...

gitblog_00872的博客 1017

【电子通识】TINA-TI怎么使用受控源向导创建受控源

TINA-TI怎么使用受控源向导创建受控源

一点硬件 350

【100%通过率】华为OD机试真题 Python【数字最低位排序】【最低位排序】

2023华为OD机试真题 Python【数字最低位排序】【最低位排序】 给定一个非空数组(列表) 起元素数据类型为整型 请按照数组元素十进制最低位从小到大进行排序 十进制最低位相同的元素,相对位置保持不变 当数组元素为负值时,十进制最低为等同于去除符号位后对应十进制值最低位

MISAYAONE的博客 1888

GoogleCloudPlatform/microservices-demo:企业级微服务架构参考

在现代软件开发中,微服务架构已成为构建复杂、可扩展应用程序的主流选择。然而,从单体架构向微服务架构迁移并非易事,开发团队常常面临以下挑战: - 服务间通信机制的选择与实现 - 分布式数据一致性的保证 - 服务发现与负载均衡的配置 - 监控与可观测性的建立 - 持续部署与运维的复杂性 GoogleCloudPlatform/microservices-demo项目正是为了解决这些痛点而生,它提供...

gitblog_01180的博客 1188

SAP 基于生产订单行项目外部加工创建采购申请时的一个增强需求

摘要 本文介绍在SAP系统中实现生产订单外协工序自动生成采购申请(PR)时,将指定文本写入PR抬头文本的技术方案。关键点包括: 业务背景:通过CO02事务码将工序标记为外部加工,系统自动生成PR,需在生成时自动写入抬头文本。 技术难点: PR抬头文本存储在STXH/STXL而非EBAN表 标准增强点ME_PROCESS_REQ_CUST在外协场景可能不触发 推荐方案: 使用BAdI ME_REQ_POSTED,在PR过账时点执行 通过Text Object EBANH和Text ID(如B01)写入文本 实

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 614

microservices-framework-benchmark全面解析:30+主流微服务框架性能大比拼,谁才是终极赢家?

microservices-framework-benchmark是一个专注于微服务框架性能测试的开源项目,通过对30多种主流微服务框架的吞吐量、延迟和传输效率进行基准测试,帮助开发者选择最适合的微服务框架。本文将深入分析测试结果,为你揭示各框架的性能表现和适用场景。 ## 为什么微服务框架性能至关重要?🚀 在当今高并发的业务环境中,微服务框架的性能直接影响系统的响应速度和用户体验。一个高性

gitblog_01133的博客 355

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

11-微服务问题总结

当我们在执行一些SQL脚本时(例如 nacos-mysql.sql文件),假如出现如下错误,请升级你的mysql(建议mysql5.7以上或MariaDB 10.5.11) 问题1:没有配置JAVA_HOME环境变量,或者JDK有问题 问题2:nacos链接mysql时,链接配置问题 问题3:启动命令用错位置第一步:添加或编辑配置,例如: 第二步:新建 shell Script脚本,例如: 第三步:输入nacos信息,例如 第四步:启动nacos,例如: 假如出现依赖下载不下来,或者pom.xml文件

qq_54781283的博客 2022

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

2108-微服务课上问题分析及总结

文章目录Day01~微服务架构入门核心知识点常见问题分析常见Bug分析课堂练习课后作业 Day01~微服务架构入门 核心知识点 微服务架构诞生的背景(分而治之~北京一个火车站到多个火车站) 微服务架构解决方案(大厂自研,Spring Cloud ~Netflix,Alibaba,…) 微服务架构下Maven项目的创建方式?(Maven聚合项目~资源复用,简化编译,打包,部署方式) 微服务架构入门聚合项目创建?(01-sca,sca-consumer,sca-provider,sca-gateway,sca

雨田说码 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

2107-微服务课上问题分析及总结

文章目录Day01~微服务入门常见问题分析常见Bug分析 Day01~微服务入门 常见问题分析 为什么需要微服务?(对系统分而治,解决因并发访问过大带来的系统复杂性(例如:业务,开发,测试,升级,可靠性等) 微服务设计的特点?(单一职责,独立进程,开发测试效率高,可靠性高,升级难度小,但会带来一定的维护成本) 微服务解决方案有哪些?(大厂自研,中小企业采用开源Spring Cloud Alibaba,Spring Cloud Netfix等 ) 微服务设计中需要哪些关键组件(服务的注册,发现,配置,限流降

雨田说码 1万+

提高微服务安全性的11个方法

原文发表于kubernetes中文社区,为作者原创翻译,原文地址 更多kubernetes文章,请多关注kubernetes中文社区 目录 为什么选择微服务? 1.通过设计确保安全 OWASP 2.扫描依赖 3.随处使用HTTPS 安全的GraphQL API 安全的RSocket端点 4.使用身份令牌 授权服务器:多对一还是一对一? 在JWT上使用PASETO令牌 5.加密和保护密钥 6.通过交付流水线验证安全性 7.降低攻击者的速度 8.使用Docker Rootl..

琦彦 9425

【亲测免费】 Microservices with Spring Boot and Spring Cloud 2E 教程

Microservices with Spring Boot and Spring Cloud 2E 教程 1、项目介绍 Microservices with Spring Boot and Spring Cloud 2E 是由 Packt Publishing 出版的一本关于使用 Spring Boot 和 Spring Cloud 构建微服务的书籍的代码仓库。该书旨在帮助开发者使用 Sprin...

gitblog_01109的博客 1268

革命性API设计GoogleCloudPlatform/microservices-demo:REST与gRPC对比

还在为微服务架构中的API协议选择而纠结?面对REST和gRPC两大主流技术,如何做出最适合业务场景的决策?Google Cloud Platform的微服务演示项目microservices-demo为我们提供了一个绝佳的实践案例,展示了两种协议在现代云原生应用中的巧妙融合与对比。 通过深入分析这个项目,你将掌握: - ✅ REST和gRPC在真实电商场景下的性能表现差异 - ✅ 混合架构中...

gitblog_00097的博客 738
上一篇: 1.10 SSO微服务工程中用户行为日志的记录
下一篇: 2.3 Docker数据管理及Dockerfile镜像制作
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值