自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 List去重的方式

List集合的去重操作方式二:使用迭代器遍历集合,使用迭代器的next()方法得到下一个元素,然后使用集合的indexOf()和lastIndexOf()方法分别从头和尾判断这两个值得索引是否一样,如果索引一样说明是同一个值,然后将该元素remove()。

2023-03-09 23:16:11 1027 1

原创 Invalid bound statement (not found)出现原因和解决方法

Invalid bound statement (not found)出现原因和解决方法。如果mapper的位置是在src路径下,需要在pom.xml文件下设置将非java文件也进行编译。默认情况下只会编译Java文件。出现这种异常情况一般是因为MybatisPlus没有找到对应的Mapper映射文件。一、检查mapper文件的namespace是否和mapper接口的全类名一致。二、检查询语句和java方法的返回值是否一致。resuleMap是否映射成功。三、在配置文件中指定mapper的位置。

2023-03-09 23:02:34 6218

原创 ConcurrentHashMap的key,value为什么不能为null

我们不能确定到底是A线程先执行,还是B线程先执行的,所以返回值有可能是true也有可能是false。假设当A线程调用get(key)方法时返回了一个null值,此时我们无法判读这个键值对他是key根本就不存在还是因为他的value就是null。ConcurrentHashMap和HashTable都是在高并发的场景下使用的所以为了避免存在歧义,将不允许key/value为null。ConcurrentHashMap的源码中在put的值的时候不允许key或者value为null,插入null会报空指针异常。

2023-03-03 10:36:44 2078

原创 Session和Cookie

当服务端request.getSession()时如果没有Session则会生成一个session和session的唯一id(JsessionID),将这个id保存到Cookie中写到用户浏览器的。当用户再次访问服务端时,会携带这cookie中的这个JSESSIONID然后服务端会根据这个id去查找内存中的session。设置和得到失效时间,没有设置则cookie是一个会话级别的,在设置一个相同key的cookie过期时间设置为0则可以删除cookie。cookie会以文件的形式持久化的保存到客户端本地。

2023-03-02 16:22:56 219

原创 SpringCloud AlibabaSentinel实现熔断与限流

简介Sentinelhttps://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D中文官网一句话解释,之前我们讲解过的Hystrix下载地址https://github.com/alibaba/Sentinel/releases作用:服务使用中的各种问题:服务雪崩、服务降级、服务熔断、服务限流。安装Sentinel控制台sentinel组件由2部分构成安装步骤下载到本地sentinel-dashboard..

2021-12-07 16:23:20 415

原创 SpringCloud AlibabaNacos服务注册和配置中心

Nacos简介Nacos: Dynamic Naming and Configuration Service前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service。一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos就是注册中心 + 配置中心的组合等价于Nacos = Eureka+Config +Bus。作用:替代Eureka做服务注册中心,替代Config做服务配置中心各种注册中心比较安装并运行Nacos本地Java8+.

2021-12-06 23:29:55 243

原创 SpringCloud Sleuth分布式请求链路跟踪

概述为什么会出现这个技术?需要解决哪些问题?在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案。在分布式系统中提供追踪解决方案并且兼容支持了zipkin搭建链路监控步骤zipkin下载SpringCloud从F版起已不需要自己构建Z..

2021-12-05 11:20:53 807

原创 SpringCloud Stream消息驱动

消息驱动概述什么是SpringCloudStream,官方定义 Spring Cloud Stream 是一个构建消息驱动微服务的框架应用程序通过 inputs 或者 outputs 来与 Spring Cloud Stream中binder对象交互。通过我们配置来binding(绑定) ,而 Spring Cloud Stream 的 binder对象负责与消息中间件交互。所以,我们只需要搞清楚如何与 Spring Cloud Stream 交互就可以方便使用消息驱动的方式。通过使用Spring I.

2021-12-03 13:17:17 1568

原创 SpringCloud Bus消息总线

概述Spring Cloud Bus 配合 Spring Cloud Config 使用可以实现配置的动态刷新。Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了Java的事件处理机制和消息中间件的功能。Spring Clud Bus目前支持RabbitMQ和Kafka。Spring Cloud Bus能管理和传播分布式系统间的消息,就像一个分布式执行器,可用于广播状态更改、事件推送等,也可以当作微服务间的通信通道。什么是总线在微服务架...

2021-12-02 22:30:49 126

原创 SpringCloud Config分布式配置中心

概述分布式系统面临的---配置问题微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。 SpringCloud提供了ConfigServer来解决这个问题,我们每一个微服务自己带着一个application.yml,上百个配置文件的管理.........

2021-12-02 20:22:34 137

原创 Gateway网关

概述简介SpringCloud Gateway 是 Spring Cloud 的一个全新项目,基于 Spring 5.0+Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能, 例如:熔断、限流、重试等。SpringCloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Zuul,

2021-11-30 10:50:38 408

原创 Hystrix断路器

概述分布式系统面临的问题:复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”.对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟...

2021-11-29 11:46:16 209

原创 OpenFeign

概述官网解释:https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/#spring-cloud-openfeignFeign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准.

2021-11-28 10:55:21 168

原创 Ribbon负载均衡服务调用

概述Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定...

2021-11-27 10:26:05 241

原创 Consul服务注册与发现

Consul简介Intro to Consul | Consul by HashiCorpConsul的官网Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发。提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。它具有很多优点。包括: 基于 raft 协议,比较...

2021-11-10 21:09:09 471

原创 SpringCloud整合Zookeeper代替Eureka

zookeeper是一个分布式协调工具,可以实现注册中心功能。关闭Linux服务器防火墙后启动zookeeper服务器服务提供者pom.xml<dependencies> <!-- SpringBoot整合Web组件 --> <dependency> <groupId>org.springframework.boot</groupId> <artif

2021-11-07 23:17:01 1603

原创 Rest微服务工程构建

微服务cloud整体聚合父工程Project使用maven管理项目创建maven工程pom.xml<groupId>com.zjh.springcloud</groupId> <artifactId>mscloud03</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging>

2021-11-07 20:41:59 335

原创 Eureka基础

服务器治理 Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理 在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。服务注册与发现Eureka采用了CS的设计架构,Eureka Server 作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用 Eureka的客...

2021-11-07 19:37:53 334

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除