![](https://img-blog.csdnimg.cn/0c53fb621e534f5f8af2d598160d7955.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
微服务与中间件
文章平均质量分 89
微服务与中间件
简明编程
CSDN简明编程,掘金白嫖圣手fly,其他地方均不是本人,若发现他人盗用本人原创文章请联系我,各种资料均免费,需要请私信
展开
-
pinia持久化存储方案——pinia-storage(自己写的,持续更新)
Pinia-Storage是使用TypeScript编写的Pinia的持久化存储解决方案,可根据业务需求将state中的数据存储到localStorage和sessionStorage中,依赖于性能更好、扩展性更强、灵活度更好的fastify组织提供的序列化方案:fast-json-stringify和反序列化方案:secure-json-parse,因此在性能上强于pinia的持久化插件pinia-plugin-persist。的性能主要取决于被序列化对象的大小和结构,以及机器的硬件配置。原创 2023-04-19 21:35:58 · 984 阅读 · 0 评论 -
Spring事件监听机制
如我们需要激发一个调用RabbitMq的事件,我们需要继承ApplicationEvent类,继承后重写构造方法,很简单只要返回这个参数source即可。简单来说,就是当代码执行到激发事件的那一行时,由spring发布一个事件,这个事件会被设置好的监听器所捕获,然后进行某种处理,这就是事件监听。其中的泛型就是事件的类型,说明我们这个监听器是专门监听这个事件的!注入后通过Application Context激发事件。我们需要把应用程序上下文注入。原创 2022-12-24 11:58:21 · 270 阅读 · 0 评论 -
Sentinel系列——概述与安装1-1
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。原创 2022-12-24 01:33:39 · 1134 阅读 · 0 评论 -
Nacos系列——Java SDK(2.x版本)2-1
本工程是Nacos的Java SDK 2.x版本的实现,并非官方文档而是本人经过学习后自己构建的工程,官方文档目前还未更新,仅供学习交流,请勿进行任何商业用途。原创 2022-12-19 15:39:38 · 714 阅读 · 0 评论 -
Nacos系列——配置的创建与获取
这里仅需要一个简单的SpringBoot工程即可,如果您下载了对应的资源,那么仅需要查看资源内部README文档进行对应修改即可,下面我们将从0构建Nacos-easy。如果我们增加新的配置只需要在yaml中进行修改即可,输出就会改变了。选择下载:Nacos-easy。原创 2022-12-18 17:04:06 · 3029 阅读 · 0 评论 -
Nacos系列——Nacos架构(2.x版本)1-2
本文仅作为笔记用途,文章所用专业性内容均出自nacos文档,并非本人构写,请查看Nacos官方文档,后续实际应用才是原创。原创 2022-12-18 14:59:01 · 282 阅读 · 0 评论 -
Nacos系列——Nacos概述(2.x版本)1-1
本文仅作为笔记用途,文章所用专业性内容均出自nacos文档,并非本人构写,请查看Nacos官方文档,后续实际应用才是原创Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。原创 2022-12-18 14:27:55 · 1119 阅读 · 0 评论 -
MongoDB——Java Client API(Spring Data MongoDB)
属性:name , value 用来指定在文档中key的名称,默认为成员变量名。属性:value 或 collection 用来指定操作的集合名称。作用:用来将成员变量以及值映射为文档中一个key、value对。作用:用来映射这个类的一个对象为mongo中一条文档数据。作用:用来将成员变量的值映射为文档的_id的值。作用:用来指定改成员变量,不参与文档的序列化。范围:用在成员变量、方法上。save方法则会直接更新。范围:成员变量、方法上。范围:成员变量、方法上。原创 2022-12-15 21:32:43 · 519 阅读 · 0 评论 -
Spring统一异常处理捕获不到CompletableFuture异步编排中的异常的问题
我们常常使用或配合来做全局的统一异常处理,这种方式被认为是十分高效的在这个例子中,只要Controller中(带有注解)出现任意异常就会被捕捉到!但是我们需要明确的是,我上面这句话只在主线程的情况下成立!在这个类中我们看到有一个表明一定会引发除0异常!ExcpHandlerController结果可以看到结果很正常,确实把错误返回了我们只要把Controller中的代码改成如下:结果可以看到结果是ok,而且查看控制台并没有进行异常捕获,有些人可能说是因为已经使用了异步编排的做了异常处理原创 2022-12-03 16:07:22 · 1431 阅读 · 0 评论 -
后端微服务项目中出现的问题整理2022年11月
这里我们要说一下,我的异步编排跟Feign一起使用,所以也就是子模块业务出现错误会在子模块中报错,同时回到夫模块这里会显示Feign的调用模块错误500,这就表示我们的异步编排中出现了这个错误,我们就可以通过全局异常处理来抓取进行特殊的处理,但是整个项目里我并没有这样做,因为从逻辑上我返回了null其实已经是说明查不到这个数据了,但是在这里我还是要给大家扩展一下这个全局异常处理。方法将所有的属性获取到,这个方法可以获取继承到的属性,但是继承的属性必须设置成。无法获取父类中继承而来的属性所以出现无属性异常。原创 2022-12-01 21:09:27 · 1192 阅读 · 1 评论 -
微服务与中间件系列——GateWay整合Swagger3增强Knife4j
匹配上,比如我这个就是去除3个前缀,如果是/api/hello/**,就是去除2个前缀,这个一定不能错,因为这和swagger请求地址有关。统一进行文档管理,查看,避免swagger文档在微服务中使用繁琐的问题。本案例使用nacos作为服务的注册中心。其实也就是做了一下对于配置的处理。注意路由的ID要对应服务的名称。启动gateway浏览器访问。一定要和你前面指定的断言。原创 2022-11-20 01:19:10 · 712 阅读 · 1 评论 -
Zookeeper系列——节点监听机制,JAVA API
客户端可以监测znode节点的变化。znode节点的变化触发相应的事件,然后清除对该节点的监测。当监测一个znode节点时候,Zookeeper会发送通知给监测节点。一个Watch事件是一个一次性的触发器,当被设置了Watch的数据获取目录发生了改变的时候,则服务器将这个改变发送给设置了Watch的客户端以便通知它们。当节点目录变化是才会触发,数据改变不会,监听后就失效。若传入的是对象则需要实现序列化接口。这里我用lambda简写了。true表示开启监听。原创 2022-11-18 01:40:54 · 961 阅读 · 0 评论 -
Zookeeper系列——概述
节点在被创建后就一直存在直到主动删除,在ZK中,每个父节点会为他的第一级子节点维护一份时序,会记录每个子节点创建的先后顺序。基于这个特性,在创建子节点的时候,可以设置这个属性,那么在创建节点过程中,ZK会自动为给定节点名加上一个数字后缀,作为新的节点名。一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chuby一个开源的实现,是Hadoop和Hbase的重要组件。生命周期和客户端一致,客户端消亡,节点自动清除且不能有子节点,每个父节点会为他的第一级子节点维护一份时序。rmr / 节点名称。原创 2022-11-17 23:51:01 · 883 阅读 · 0 评论 -
ElasticSearch系列——Elasticsearch Java API Client
实体类}//创建文档 final Produce produce = new Produce("aabbcc123" , "旺仔牛比糖" , "旺仔牛比糖吃了炒鸡牛笔" , 6.66D);原创 2022-11-10 03:11:14 · 2960 阅读 · 0 评论 -
ElasticSearch系列——分词器
扩展词典:就是有些词并不是关键词,但是也希望被ES用来作为检索的关键词,可以将这些词加入扩展词典。停用词典:就是有些词是关键词,但是出于业务场景不想使用这些关键词被检索到,可以将这些词放入停用词典。我们可以直接去文件中进行定义,你问我怎么知道的?人家README里写的。原创 2022-11-09 00:48:23 · 2631 阅读 · 0 评论 -
ElasticSearch系列——Kibana,核心概念
由于默认使用标签进行高亮,我们也可以自己定义使用pre_tags设置前置标签使用post_tags设置后置标签"default_field" : "name" , "query" : "辣条" } } , "highlight" : {} } } }原创 2022-11-08 17:29:29 · 1072 阅读 · 0 评论 -
ElasticSearch系列——ElasticSearch8.5介绍、安装、Http方式使用
请求方式POST请求路径参数1indexName参数1类型string参数1规范使用全小写命名参数1示例值testing2参数2docId参数2类型string参数2规范参数2示例值116688{"articleName" : "testing2测试" , "catgory" : "原创" , "content" : "this is a test" }{原创 2022-11-07 07:16:30 · 1752 阅读 · 0 评论 -
Jenkins系列——Jenkins介绍day1-1
软件开发生命周期又叫做SDLC(Software Development Life Cycle),它是集合了计划、开发、测试和进化(维护改进)过程的集合。原创 2022-10-24 13:24:25 · 340 阅读 · 0 评论 -
微服务与中间件——GateWay网关
SpringCloudGateway则是 基于Spring5中提供的WebFlux,属于响应式编程的实现,具备更好的性能该项目依赖nacos+feign,这两个配好是前提条件,若有问题请查看:微服务与中间件系列——Feign注意一定要加上loadBalanced依赖,因为新版本中已经去除了Ribbon的负载所以我们要引入否则会有报错提示3.修改yaml4.启动类加上注解GateWay的流程网关路由可以配置的内容包括:我们在配置文件中写的断言规则只是字符串,这些字符串会被Predicate Fa原创 2022-08-25 17:36:04 · 913 阅读 · 0 评论 -
微服务与中间件系列——Feign
将FeignClient抽取为独立模块,并且把接口有关的POJO、默认的Feign配置都放到这个模块中,提供给所有消费者使用。如下你可以分为client中暴露的服务达到访问实际在service模块中的服务。这里是对日志的配置修改,在开发中可以采用Basic,上线后请关闭日志以确保性能。其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。采用连接池可以优化Feign的性能,代替URLConnection。一般来说我们需要自己配置日志级别。写服务的名称则是某个服务生效。原创 2022-08-24 18:42:10 · 535 阅读 · 0 评论 -
微服务与中间件系列——Nacos快速使用
本文单纯只是教大家如何快速在微服务的项目中构建Nacos,有关于深入学习的内容将在后续SpringCluod系列的Nacos中进行介绍,或大家可以参照Nacos的官网学习!原创 2022-08-24 16:01:08 · 340 阅读 · 1 评论 -
微服务与中间件系列——RabbitMQ,SpringAMQP使用
N (Message Quene):翻译为j消息队列,通过典型的生产者和消费者模型生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入轻松的实现系统间解耦。别名为消息中间件,通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。原创 2022-08-23 22:46:44 · 850 阅读 · 1 评论 -
SpringBoot邮件服务spring-boot-starter-mail
Spring 框架通过使用 JavaMailSender接口,Spring Boot 为其提供了自动配置以及启动模块。或者你可以选择创建spring boot项目时进行选择。如下获取到16位授权码。原创 2022-08-21 23:51:10 · 4721 阅读 · 0 评论 -
阿里云OSS服务使用操作流程
阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。原创 2022-08-20 13:18:07 · 3451 阅读 · 0 评论 -
SpringBoot2.7+借助Validator帮助进行校验
我们可以采用自定义注解方式控制快速失败返回模式是否开启加上之前校验了所有的加上之后。原创 2022-08-12 09:49:23 · 1553 阅读 · 1 评论 -
MapStruct代码生成器使用
一个代码生成器,它基于约定优于配置的方法,极大地简化了 Java bean 类型之间的映射实现。生成的映射代码使用简单的方法调用,因此速度快、类型安全且易于理解。我们使用@Mappings和@Mapping的配合使用完成自定义映射表示让MapStruct在调用完自动转化方法后再调用这个方法如下,我设置一个若值为空则默认填入default字符串的方法} }...原创 2022-08-11 20:02:41 · 1904 阅读 · 0 评论 -
SpringBoot2.7+使用swagger3
用于响应类上,表示一个返回响应数据的信息,一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候。另外有时候我们自定义配置的时候最好把这个开关也加上,在发布的时候请改为false,当然如果是微服务直接关掉这个服务就行。查了一下也没找到问题到底出在哪里,只知道肯定是在docket设置的时候没有装配好导致的。用在请求的方法上,说明方法的用途、作用。用在请求的方法上,表示一组参数说明。用在请求的类上,表示对类的说明。...原创 2022-08-11 15:21:00 · 4264 阅读 · 1 评论 -
Nacos2.1与Mysql8.0+持久化报错No Database Set(Nacos2.1 use Mysql8.0+ persistence error)
本文档是两个语言版本,英语在下面。原创 2022-08-11 08:40:16 · 1846 阅读 · 0 评论 -
微服务与中间件系列——容器技术Docker
Docker官方的Docker hub (https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像到本地,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么我们就需要搭建自己的私有仓库来存储和管理自己的镜像。使用的是Hypervisor技术。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。...原创 2022-08-06 06:09:12 · 560 阅读 · 0 评论 -
SpringCloud系列——Ribbon day2-2
上方是无论你有哪些服务都采用随机负载的策略,而修改yaml文件我们可以做到指定某个服务使用特定的策略。对于依赖来说目前eureka已经内置了ribbon,所以无需引入了。这个配置类,添加以下代码表示注册使用随机访问策略。之前我们RestTemplate上使用的注解。如下,设置了commons服务使用随机策略。由此会对发送的http请求进行拦截。Ribbon的负载均衡规则由。配置后,会被Ribbon(对服务进行负载均衡的配置。...原创 2022-08-04 14:45:30 · 145 阅读 · 0 评论 -
Redis系列——Java客户端(Jedis,SpringDataRedis)day2-1
打开官网个人推荐这三个Redisson - 具有内存数据网格功能的 Redis Java 客户端。 超过 50 个基于 Redis 的 Java 对象和服务:Set、Multimap、SortedSet、Map、List、Queue、Deque、Semaphore、Lock、AtomicLong、Map Reduce、发布/订阅、Bloom filter、Spring Cache、Tomcat、Scheduler、JCache API、Hibernate , MyBatis, RPC, 本地缓存… (原创 2022-06-26 04:31:47 · 139 阅读 · 0 评论 -
Redis系列——5种常见数据类型day1-3
在使用开始连接到cli后需要你输入密码数据类型StringHashListSetSortedSetGEOBitMapHyperLog前5个为基本类型redis中的key允许有多个电磁形成层级结构,多个单词之间用隔开最简单的存储类型,它的value字符串,最大空间不超过512mb有三种类型注意:浮点数没有decrbyfloat,只能设置负数自减hash散列,其value是无序字典String结构是将对象序列化为JSON字符串后存储,当需要修改对象某个字段时很不方便,而hash原创 2022-06-26 00:05:35 · 216 阅读 · 0 评论 -
Redis系列——redis启动,客户端day1-2
前台启动其实就是我们在day1-1看到的最后的启动方式若我们关闭terminal就会关闭后台启动即使关闭terminal也不会关闭redis首先我们需要找到reids的配置文件进行相关配置redis的配置文件叫redis.comf位置在/etc/redis下通过如下命令可以找到我们将redis.conf原始配置进行复制为redis_copy.conf原始为127.0.0.1表示本地访问,修改为0.0.0.0表示可以在任意IP进行访问,因为0.0.0.0(unspecified)表示本机的总广播原创 2022-06-25 17:25:43 · 342 阅读 · 0 评论 -
Redis系列——概述day1-1
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。https://www.redis.net.cn/非关系型数据库常见有:Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。http原创 2022-06-25 15:40:24 · 163 阅读 · 0 评论