微服务 & 中间件
文章平均质量分 91
SpringCloudAlibaba、RabbitMQ、Docker、Redis、Elasticsearch等
陌上人如玉এ
前无颜,后无钱,小小少年,可怜可怜
还未老,想低保,小小年纪,苦恼苦恼
展开
-
RabbitMQ部署指南
我们在Centos7虚拟机中使用Docker来安装。原创 2023-06-09 22:41:30 · 1757 阅读 · 1 评论 -
【高级篇】服务异步通信
每个RabbitTemplate只能配置一个ReturnCallback,因此需要在项目加载时配置:// 获取RabbitTemplate RabbitTemplate rabbitTemplate = applicationContext . getBean(RabbitTemplate . class);原创 2023-06-09 22:35:45 · 1361 阅读 · 0 评论 -
安装和配置Canal
下面我们就开启mysql的主从同步机制,让Canal来模拟salve。原创 2023-06-08 21:08:25 · 853 阅读 · 0 评论 -
安装OpenResty
首先你的Linux虚拟机必须联网你可以在你的 CentOS 系统中添加openresty仓库,这样就可以便于未来安装或更新我们的软件包(通过命令)。然后再重复上面的命令然后就可以像下面这样安装软件包,比如openrestyopm是OpenResty的一个管理工具,可以帮助我们安装一个第三方的Lua模块。如果你想安装命令行工具opm,那么可以像下面这样安装默认情况下,OpenResty安装的目录是:/usr/local/openresty。原创 2023-06-08 21:07:02 · 952 阅读 · 0 评论 -
【高级篇】多级缓存
传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图:存在下面的问题:请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈Redis缓存失效时,会对数据库产生冲击浏览器访问静态资源时,优先读取浏览器本地缓存访问非静态资源(ajax查询数据)时,访问服务端请求到达Nginx后,优先读取Nginx本地缓存如果Nginx本地缓存未命中,则去直接查询Redis(不经过Tomcat)如果Redis查询未命中,则查询Tomcat。原创 2023-06-08 21:06:53 · 1310 阅读 · 0 评论 -
Redis集群
我们需要执行命令来创建集群,在Redis5.0之前创建集群比较麻烦,5.0之后集群管理命令都集成到了redis-cli中。修改redis-6.2.4/redis.conf文件,将其中的持久化模式改为默认的RDB模式,AOF保持关闭状态。要在同一台虚拟机开启3个实例,必须准备三份不同的配置文件和目录,配置文件所在目录也就是工作目录。要在同一台虚拟机开启3个实例,必须准备三份不同的配置文件和目录,配置文件所在目录也就是工作目录。这里我们搭建一个三节点形成的Sentinel集群,来监管之前的Redis主从集群。原创 2023-06-07 16:23:06 · 1171 阅读 · 0 评论 -
【高级篇】分布式缓存
基于Redis集群解决单机Redis存在的问题。原创 2023-06-07 16:18:50 · 1236 阅读 · 0 评论 -
seata的部署和集成
首先我们要下载seata-server包,地址在。原创 2023-06-06 18:21:25 · 1472 阅读 · 0 评论 -
【高级篇】分布式事务
本地事务,也就是传统的。原创 2023-06-06 18:17:36 · 1194 阅读 · 0 评论 -
Jmeter快速入门
Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。原创 2023-06-05 23:19:03 · 283 阅读 · 0 评论 -
【高级篇】微服务保护
什么是雪崩问题?微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.html丰富的应用场景。原创 2023-06-05 23:14:28 · 341 阅读 · 0 评论 -
【实用篇】Elasticsearch03
默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。原创 2023-06-04 21:58:13 · 680 阅读 · 0 评论 -
【实用篇】Elasticsearch02
match和multi_match的区别是什么?match:根据一个字段查询multi_match:根据多个字段查询,参与查询字段越多,查询性能越差精确查询常见的有哪些?term查询:根据词条精确匹配,一般搜索keyword类型、数值类型、布尔类型、日期类型字段range查询:根据数值范围查询,可以是数值、日期的范围query:查询条件from和size:分页条件sort:排序条件highlight:高亮条件。原创 2023-06-03 17:04:32 · 488 阅读 · 0 评论 -
【实用篇】Elasticsearch01
什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是elastic stack(ELK)?是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch什么是Lucene?是Apache的开源搜索引擎类库,提供了搜索引擎的核心API分词器的作用是什么?创建倒排索引时对文档分词用户搜索时,对输入的内容分词IK分词器有几种模式?ik_smart:智能切分,粗粒度。原创 2023-06-02 18:04:54 · 705 阅读 · 0 评论 -
【实用篇】RabbitMQ
基本消息队列的消息发送流程:建立connection创建channel利用channel声明队列利用channel向队列发送消息基本消息队列的消息接收流程:建立connection创建channel利用channel声明队列定义consumer的消费行为handleDelivery()利用channel将消费者与队列绑定多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息。原创 2023-06-02 09:10:26 · 251 阅读 · 0 评论 -
【实用篇】Docker
微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题**数据卷(volume)**是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。原创 2023-06-01 08:59:40 · 538 阅读 · 0 评论 -
【实用篇】SpringCloud02
使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制。原创 2023-05-30 22:24:41 · 872 阅读 · 0 评论 -
【实用篇】SpringCloud01
单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。原创 2023-05-29 20:19:39 · 1153 阅读 · 0 评论