Spring Cloud
文章平均质量分 96
荒野大飞
。
展开
-
SpringCloud微服务文章列表加载(注册发现和配置中心Nacos、服务调用SSM、XML文件编写进行复杂的多表查询,网关gateway添加微服务路由)(项目概况,SSM细节总结)
加载首页加载更多加载最新接口路径请求方式POSTPOSTPOST参数响应结果// 最大时间 Date maxBehotTime;// 最小时间 Date minBehotTime;// 分页size Integer size;// 频道ID String tag;// 最大时间 Date maxBehotTime;// 最小时间 Date minBehotTime;// 分页size Integer size;// 频道ID String tag;Date;原创 2023-10-19 20:53:29 · 171 阅读 · 0 评论 -
SpringCloud微服务(注册发现Nacos、服务调用SSM、网关gateway)项目环境搭建(项目概况,SSM细节总结)
(2)在heima-leadnews-gateway下创建heima-leadnews-app-gateway微服务。引入依赖,在heima-leadnews-model和heima-leadnews-common模块中引入该依赖。启动user微服务,访问地址:http://localhost:51801/swagger-ui.html。md5是不可逆加密,md5相同的密码每次加密都一样,不太安全。在heima-leadnews-service下创建工程heima-leadnews-user。原创 2023-10-19 00:47:09 · 896 阅读 · 0 评论 -
SpringCould微服务保护和授权规则03——隔离和降级(FeignClient整合Sentinel,线程隔离,熔断降级,自定义异常结果,规则持久化,实现push模式)
线程隔离(仓壁模式)降级熔断在application.yml中配置:feign.sentienl.enable=true给FeignClient编写FallbackFactory并注册为Bean将FallbackFactory配置到FeignClient线程隔离的两种手段是?信号量隔离线程池隔离信号量隔离的特点是?基于计数器模式,简单,开销小线程池隔离的特点是?基于线程池模式,有额外开销,但隔离控制更强默认情况下,发生限流、降级、授权拦截时,都会抛出异常到调用方。原创 2023-10-14 10:54:04 · 574 阅读 · 0 评论 -
SpringCould微服务保护02——三种流控模式(直接,关联,链路)和四种流控效果(快速失败,Worm up,排队等待,热点参数限流)(Sentinel组件高级选项选择+Jmeter压测演示)
流控模式有哪些?•直接:对当前资源限流•关联:高优先级资源触发阈值,对低优先级资源限流。•链路:阈值统计时,只统计从指定资源进入当前资源的请求,是对请求来源的限流流控效果有哪些?快速失败:QPS超过阈值时,拒绝新的请求warm up: QPS超过阈值时,拒绝新的请求;QPS阈值是逐渐提升的,可以避免冷启动时高并发导致服务宕机。排队等待:请求会进入队列,按照阈值允许的时间间隔依次执行请求;如果请求预期等待时长大于超时时间,直接拒绝。原创 2023-10-13 19:57:08 · 332 阅读 · 0 评论 -
SpringCould微服务保护01——Sentinel组件下载并使用
什么是雪崩问题?微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.htmlSentinel 具有以下特征:•丰富的应用场景。原创 2023-10-13 18:53:15 · 1401 阅读 · 0 评论 -
elasticsearch(ES)分布式搜索引擎04——(数据聚合,自动补全,数据同步,ES集群)
默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。原创 2023-10-12 11:23:33 · 1756 阅读 · 0 评论 -
elasticsearch(ES)分布式搜索引擎03——(RestClient查询文档,ES旅游案例实战)
elasticsearch(ES)分布式搜索引擎03——(RestClient查询文档,ES旅游实体类有两个,一个是前端的请求参数实体,一个是服务端应该返回的响应结果实体。1)请求参数"key": "搜索关键字","page": 1,"size": 3,因此,我们在Data;@Data2)返回值total:总条数:当前页的数据因此,我们在} }} }List;@Data请求方式:Post请求路径:/hotel/list请求参数:对象,类型为RequestParam返回值:PageResult,包含两个属性。原创 2023-10-11 18:48:16 · 1351 阅读 · 0 评论 -
elasticsearch(ES)分布式搜索引擎02——(DSL查询文档,搜索结果处理)
(DSL查询文档,搜索结果处理)match和multi_match的区别是什么?match:根据一个字段查询multi_match:根据多个字段查询,参与查询字段越多,查询性能越差精确查询常见的有哪些?term查询:根据词条精确匹配,一般搜索keyword类型、数值类型、布尔类型、日期类型字段range查询:根据数值范围查询,可以是数值、日期的范围query:查询条件from和size:分页条件sort:排序条件highlight:高亮条件。原创 2023-10-11 13:15:35 · 409 阅读 · 0 评论 -
elasticsearch(ES)分布式搜索引擎01——(初识ES,索引库操作和文档操作,RestClient操作索引库和文档)
什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是elastic stack(ELK)?是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch什么是Lucene?是Apache的开源搜索引擎类库,提供了搜索引擎的核心API分词器的作用是什么?创建倒排索引时对文档分词用户搜索时,对输入的内容分词IK分词器有几种模式?ik_smart:智能切分,粗粒度。原创 2023-10-11 00:05:46 · 1475 阅读 · 0 评论 -
【Java】微服务——RabbitMQ消息队列(SpringAMQP实现五种消息模型)
基本消息队列的消息发送流程:建立connection创建channel利用channel声明队列利用channel向队列发送消息基本消息队列的消息接收流程:建立connection创建channel利用channel声明队列定义consumer的消费行为handleDelivery()利用channel将消费者与队列绑定多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息。原创 2023-10-09 23:09:04 · 2221 阅读 · 0 评论 -
【Java】微服务——Docker容器部署(docker安装,docker配置镜像加速,DockerHub,docker基本操作,Dockerfile自定义镜像.Docker-Compose)
微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题**数据卷(volume)**是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。原创 2023-10-09 15:49:02 · 4008 阅读 · 0 评论 -
【Java】微服务——Gateway网关
过滤器的作用是什么?① 对路由的请求或响应做加工处理,比如添加请求头② 配置在路由下的过滤器只对当前路由的请求生效defaultFilters的作用是什么?① 对所有路由都生效的过滤器需求:定义全局过滤器,拦截请求,判断请求的参数是否满足下面条件:参数中是否有authorization,authorization参数值是否为admin如果同时满足则放行,否则拦截实现:import org。原创 2023-10-07 19:13:00 · 3298 阅读 · 0 评论 -
【Java】微服务——Feign远程调用
使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制。原创 2023-10-07 15:34:56 · 2996 阅读 · 0 评论 -
【Java】微服务——Nacos注册中心
是阿里巴巴的产品,现在是中的一个组件。相比功能更加丰富,原创 2023-10-04 16:06:21 · 806 阅读 · 0 评论 -
【Java】微服务——Nacos配置管理(统一配置管理&热更新&配置共享&Nacos集群搭建)
我们最终的目的,是修改nacos中的配置后,微服务中无需重启即可让配置生效,也就是配置热更新。,例如:userservice-dev.yaml,例如:userservice.yaml而不包含环境,因此可以被多个环境共享。下面我们通过案例来测试配置共享。原创 2023-10-04 17:39:59 · 2713 阅读 · 0 评论 -
【Java】微服务——Ribbon负载均衡(跟进源码分析原理)
SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。用一幅图来总结一下:拦截我们的RestTemplate请求http://userservice/user/1RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-serviceDynamicServerListLoadBalancer根据user-service到eureka拉取服务列表。原创 2023-10-04 12:27:06 · 259 阅读 · 0 评论 -
【Java】微服务——微服务介绍和Eureka注册中心
注册一个RestTemplate的实例到Spring容器修改order-service服务中的OrderService类中的queryOrderById方法,根据Order对象中的userId查询User将查询的User填充到Order对象,一起返回。原创 2023-10-03 16:00:38 · 906 阅读 · 0 评论