微服务
文章平均质量分 92
微服务笔记
viperd
这个作者很懒,什么都没留下…
展开
-
Docker数据卷篇
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。而要自定义镜像,就必须先了解镜像的结构才行。原创 2024-03-06 22:42:38 · 951 阅读 · 0 评论 -
Sentinel篇:线程隔离和熔断降级
Sentinel支持的雪崩解决方案:线程隔离(仓壁模式)降级熔断Feign整合Sentinel的步骤:在application.yml中配置:feign.sentienl.enable=true给FeignClient编写FallbackFactory并注册为Bean将FallbackFactory配置到FeignClient线程隔离的两种手段是?信号量隔离线程池隔离信号量隔离的特点是?基于计数器模式,简单,开销小线程池隔离的特点是?基于线程池模式,有额外开销,但隔离控制更强。原创 2024-03-17 17:48:23 · 1161 阅读 · 0 评论 -
微服务:Nacos注册中心
国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。原创 2024-02-29 23:41:40 · 1270 阅读 · 0 评论 -
elasticsearch篇:数据聚合
默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。elasticsearch中分词器(analyzer)的组成包含三部分:character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。原创 2024-03-15 14:42:32 · 1663 阅读 · 0 评论 -
Nacos的多环境配置共享
众所周知,一个项目从设计到开发到上线和运维,有多种环境(如测试环境,运行环境....)那如果有些配置,不管在什么环境下,都使用统一参数,这类配置,能不能共享配置?以免同一份配置写好几份,增大了重复度和工作量。,例如:userservice-dev.yaml,例如:userservice.yaml而不包含环境,因此可以被多个环境共享接下来我们去试试写个案例来测试多环境配置共享。原创 2024-03-01 14:30:49 · 1253 阅读 · 1 评论 -
如何搭建Nacos集群
众所周知,在实际的工作中,Nacos的生成环境下一定要部署为集群状态其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用。我们计划的集群结构:我就直接在本机上开三个Nacos来搭建集群了:搭建集群的基本步骤:搭建数据库,初始化数据库表结构下载nacos安装包配置nacos启动nacos集群nginx反向代理本例中才用1.4.1版本的Nacos。原创 2024-03-01 17:27:24 · 989 阅读 · 1 评论 -
微服务:Gateway网关
Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。Gateway网关是我们服务的守门神,所有微服务的统一入口。网关的核心功能特性:请求路由权限控制限流架构图:权限控制:网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截。路由和负载均衡:一切请求都必须原创 2024-03-02 22:40:12 · 1566 阅读 · 3 评论 -
微服务:Sentinel篇
什么是雪崩问题?微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。流控模式有哪些?•直接:对当前资源限流•关联:高优先级资源触发阈值,对低优先级资源限流。•链路:阈值统计时,只统计从指定资源进入当前资源的请求,是对请求来源的限流流控效果有哪些?快速失败:QPS超过阈值时,拒绝新的请求。原创 2024-03-17 00:29:54 · 1501 阅读 · 0 评论 -
elasticsearch篇:DSL查询语法
match和multi_match的区别是什么?match:根据一个字段查询multi_match:根据多个字段查询,参与查询字段越多,查询性能越差精确查询常见的有哪些?原创 2024-03-12 14:26:44 · 2106 阅读 · 0 评论 -
Docker:部署微服务集群
将gateway, orderservice, userservice微服务的配置信息中的localhost都改掉,比如数据库配置中的localhost改成mysql nacos服务地址中的localhost改成 nacos,并且将nacos服务端口要写对!这里我们将order-service、user-service、gateway服务的mysql、nacos地址都修改为基于容器名的访问。② 修改自己的cloud-demo项目,将数据库、nacos地址都命名为docker-compose中的服务名。原创 2024-03-07 16:51:59 · 1091 阅读 · 0 评论 -
Nacos和Eureka
都支持服务注册和服务拉取都支持服务提供者心跳方式做健康检测。原创 2024-02-29 23:46:46 · 570 阅读 · 0 评论 -
elasticsearch篇:RestClient查询
实体类有两个,一个是前端的请求参数实体,一个是服务端应该返回的响应结果实体。1)请求参数"key": "搜索关键字","page": 1,"size": 3,因此,我们在@Data2)返回值total:总条数:当前页的数据因此,我们在@Data定义一个HotelController,声明查询接口,满足下列要求:请求方式:Post请求路径:/hotel/list请求参数:对象,类型为RequestParam返回值:PageResult,包含两个属性。原创 2024-03-12 19:47:04 · 2031 阅读 · 0 评论 -
RabbitMQ篇
消息队列RabbitMQ基础及高级原创 2024-03-08 16:11:10 · 1075 阅读 · 0 评论 -
微服务:Feign篇
使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制。原创 2024-03-02 15:55:12 · 1804 阅读 · 1 评论 -
elasticsearch篇
什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是elastic stack(ELK)?是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch什么是Lucene?是Apache的开源搜索引擎类库,提供了搜索引擎的核心API。原创 2024-03-09 16:53:53 · 867 阅读 · 0 评论 -
elasticsearch篇:RestClient操作
JavaRestClient操作elasticsearch的流程基本类似。核心是client.indices()方法来获取索引库的操作对象。索引库操作的基本步骤:初始化RestHighLevelClient创建XxxIndexRequest。XXX是Create、Get、Delete准备DSL( Create时需要,其它是无参)发送请求。调用RestHighLevelClient#indices().xxx()方法,xxx是create、exists、delete。原创 2024-03-10 23:03:50 · 1683 阅读 · 1 评论 -
Nacos配置管理和配置热更新
Nacos的配置管理以及热更新原创 2024-03-01 13:51:06 · 1394 阅读 · 1 评论 -
实现elasticsearch和数据库的数据同步
实现elasticsearch和数据库数据同步一般有以下三种方法:方式一:同步调用优点:实现简单,粗暴缺点:业务耦合度高方式二:异步通知优点:低耦合,实现难度一般缺点:依赖mq的可靠性方式三:监听binlog优点:完全解除服务间耦合缺点:开启binlog增加数据库负担、实现复杂度高。原创 2024-03-15 18:00:33 · 2951 阅读 · 0 评论 -
微服务:Docker篇
微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题。原创 2024-03-03 21:19:44 · 1085 阅读 · 3 评论