SpringCloud分布式实战
文章平均质量分 88
SpringCloud分布式实战相关总结
qq_40011574
业精于勤,荒于嬉!
展开
-
安全校验相关
安全校验xss跨站脚本攻击(Cross Site Scripting)伪造会话(基于XSS实现CSRF)劫持cookie恶意代码执行可用Antisamy框架跨域csrf(Cross Site Request Forgery) 跨站请求伪造伪造用户身份操作为什么 Cookie 无法防止 CSRF 攻击,而 Token 可以CSRF攻击只是借用了Cookie,并不能获取Cookie中的息,所以不能获取Cookie中的token不论是 Cookie 还是 Token 都无法避免 跨站原创 2022-10-21 11:51:04 · 89 阅读 · 0 评论 -
安装OpenResty
安装OpenResty1.安装首先你的Linux虚拟机必须联网1)安装开发库首先要安装OpenResty的依赖开发库,执行命令:yum install -y pcre-devel openssl-devel gcc --skip-broken2)安装OpenResty仓库你可以在你的 CentOS 系统中添加 openresty 仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum check-update 命令)。运行下面的命令就可以添加我们的仓库:yum-config-mana原创 2022-10-21 11:50:31 · 383 阅读 · 0 评论 -
Nacos安装指南
Nacos安装指南1.Windows安装开发阶段采用单机安装即可。1.1.下载安装包在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码:GitHub主页:https://github.com/alibaba/nacosGitHub的Release下载页:https://github.com/alibaba/nacos/releases如图:本课程采用1.4.1.版本的Nacos,课前资料已经准备了安装包:windows版本使用nacos-serv原创 2022-10-21 11:48:44 · 620 阅读 · 0 评论 -
Centos7安装Docker
0.安装DockerDocker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。Docker CE 分为 stable test 和 nightly 三个更新频道。官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。1.CentOS安装DockerDocker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内原创 2022-10-20 07:24:20 · 217 阅读 · 0 评论 -
Sentinel源码分析
Sentinel源码分析1.Sentinel的基本概念Sentinel实现限流、隔离、降级、熔断等功能,本质要做的就是两件事情:统计数据:统计某个资源的访问数据(QPS、RT等信息)规则判断:判断限流规则、隔离规则、降级规则、熔断规则是否满足这里的资源就是希望被Sentinel保护的业务,例如项目中定义的controller方法就是默认被Sentinel保护的资源。1.1.ProcessorSlotChain实现上述功能的核心骨架是一个叫做ProcessorSlotChain的类。这个类基原创 2022-10-18 07:54:42 · 133 阅读 · 0 评论 -
Jmeter快速入门
Jmeter快速入门1.安装JmeterJmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。1.1.下载可以Apache Jmeter官网下载,地址:http://jmeter.apache.org/download_jmeter.cgi当然,我们课前资料也提供了下载好的安装包:1.2.解压因为下载的是zip包,解压缩即可使用,目录结构如下:其中的bin目录就是执行的脚本,其中包含启动脚本:1.3.运行双击即可运行,但是有两点注意:启动速度原创 2022-10-18 07:53:34 · 59 阅读 · 0 评论 -
安装elasticsearch
安装elasticsearch1.部署单点es1.1.创建网络因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:docker network create es-net1.2.加载镜像这里我们采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大,接近1G。不建议大家自己pull。课前资料提供了镜像的tar包:大家将其上传到虚拟机中,然后运行命令加载即可:# 导入数据docker load -i es.tar同理还有原创 2022-10-18 07:52:11 · 81 阅读 · 0 评论 -
安装Canal
安装和配置Canal下面我们就开启mysql的主从同步机制,让Canal来模拟salve1.开启MySQL主从Canal是基于MySQL的主从同步功能,因此必须先开启MySQL的主从功能才可以。这里以之前用Docker运行的mysql为例:1.1.开启binlog打开mysql容器挂载的日志文件,我的在/tmp/mysql/conf目录:修改文件:vi /tmp/mysql/conf/my.cnf添加内容:log-bin=/var/lib/mysql/mysql-binbinlog原创 2022-10-18 07:49:58 · 245 阅读 · 0 评论 -
seata的部署和集成
seata的部署和集成一、部署Seata的tc-server1.下载首先我们要下载seata-server包,地址在http😕/seata.io/zh-cn/blog/download.html当然,课前资料也准备好了:2.解压在非中文目录解压缩这个zip包,其目录结构如下:3.修改配置修改conf目录下的registry.conf文件:内容如下:registry { # tc服务的注册中心类,这里选择nacos,也可以是eureka、zookeeper等 type = "原创 2022-10-18 07:46:31 · 130 阅读 · 0 评论 -
案例导入说明
案例导入说明为了演示多级缓存,我们先导入一个商品管理的案例,其中包含商品的CRUD功能。我们将来会给查询商品添加多级缓存。1.安装MySQL后期做数据同步需要用到MySQL的主从功能,所以需要大家在虚拟机中,利用Docker来运行一个MySQL容器。1.1.准备目录为了方便后期配置MySQL,我们先准备两个目录,用于挂载容器的数据和配置文件目录:# 进入/tmp目录cd /tmp# 创建文件夹mkdir mysql# 进入mysql目录cd mysql1.2.运行命令进入mysq原创 2022-10-17 08:14:42 · 117 阅读 · 0 评论 -
sentinel规则持久化
Sentinel 规则持久化一、修改order-service服务修改OrderService,让其监听Nacos中的sentinel规则配置。具体步骤如下:1.引入依赖在order-service中引入sentinel监听nacos的依赖:<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifac原创 2022-10-17 08:10:36 · 188 阅读 · 0 评论 -
nacos集群搭建
Nacos集群搭建1.集群结构图官方给出的Nacos集群图:其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。我们计划的集群结构:三个nacos节点的地址:节点ipportnacos1192.168.150.18845nacos2192.168.150.18846nacos3192.168.150.188472.搭建集群搭建集群的基本步骤:搭建数据库,初始化数据库表结构下载nacos原创 2022-10-17 08:09:49 · 189 阅读 · 0 评论 -
Docker实用篇
Docker实用篇0.学习目标1.初识Docker1.1.什么是Docker微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题1.1.1.应用部署的环境问题大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:依赖关系复杂,容易出现兼容性问题开发、测试、生产环境有差异例如一个项目中,部署时需要依赖于node.js、R原创 2022-10-17 08:05:34 · 161 阅读 · 0 评论 -
分布式搜索引擎03
分布式搜索引擎030.学习目标1.数据聚合**聚合(aggregations)**可以让我们极其方便的实现对数据的统计、分析、运算。例如:什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售情况如何?实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实时搜索效果。1.1.聚合的种类聚合常见的有三类:**桶(Bucket)**聚合:用来对文档做分组TermAggregation:按照文档字段值分组,例如按照品牌值分组、按照原创 2022-10-17 07:49:57 · 58 阅读 · 0 评论 -
分布式搜索引擎02
分布式搜索引擎02在昨天的学习中,我们已经导入了大量数据到elasticsearch中,实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。所以今天,我们研究下elasticsearch的数据搜索功能。我们会分别使用DSL和RestClient实现搜索。0.学习目标1.DSL查询文档elasticsearch的查询依然是基于JSON风格的DSL来实现的。1.1.DSL查询分类Elasticsearch提供了基于JSON的DSL(Domain原创 2022-10-17 07:48:41 · 85 阅读 · 0 评论 -
分布式搜索引擎01
分布式搜索引擎01– elasticsearch基础0.学习目标1.初识elasticsearch1.1.了解ES1.1.1.elasticsearch的作用elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容例如:在GitHub搜索代码在电商网站搜索商品在百度搜索答案在打车软件搜索附近的车1.1.2.ELK技术栈elasticsearch结合kibana、Logstash、Beats,也原创 2022-10-17 07:47:21 · 155 阅读 · 0 评论 -
Nacos源码分析
Nacos源码分析原创 2022-10-18 07:55:21 · 586 阅读 · 0 评论 -
多级的缓存
多级缓存0.学习目标1.什么是多级缓存传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图:存在下面的问题:•请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈•Redis缓存失效时,会对数据库产生冲击多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务性能:浏览器访问静态资源时,优先读取浏览器本地缓存访问非静态资源(ajax查询数据)时,访问服务端请求到达Nginx后,优先读取Nginx本地缓存如原创 2022-10-16 00:15:50 · 284 阅读 · 0 评论 -
RabbitMQ-高级篇
服务异步通信-高级篇消息队列在使用过程中,面临着很多实际问题需要思考:1.消息可靠性消息从发送,到消费者接收,会经理多个过程:其中的每一步都可能导致消息丢失,常见的丢失原因包括:发送时丢失:生产者发送的消息未送达exchange消息到达exchange后未到达queueMQ宕机,queue将消息丢失consumer接收到消息后未消费就宕机针对这些问题,RabbitMQ分别给出了解决方案:生产者确认机制mq持久化消费者确认机制失败重试机制下面我们就通过案例来演示原创 2022-10-16 00:14:16 · 376 阅读 · 0 评论 -
RabbitMQ
RabbitMQ1.初识MQ1.1.同步和异步通讯微服务间通讯有同步和异步两种方式:同步通讯:就像打电话,需要实时响应。异步通讯:就像发邮件,不需要马上回复。两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。1.1.1.同步通讯我们之前学习的Feign调用就属于同步方式,虽然调用可以实时得到结果,但存在下面的问题:总结:同步调用的优点:时效性较强,可以立即得到结果同步调用的问题:耦合度高性能和原创 2022-10-16 00:12:23 · 180 阅读 · 0 评论 -
微服务保护
微服务保护1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。如图,如果服务提供者I发生了故障,当前的应用的部分业务因为依赖于服务I,因此也会被阻塞。此时,其它不依赖于服务I的业务似乎不受影响。但是,依赖服务I的业务请求被阻塞,用户不会得到响应,则tomcat的这个线程不会释放,于是越来越多的用户请求到来,越来越多的线程会阻塞:服务器支持的线程和并发数有限,请求一直阻塞,会导致服务器资源耗尽,从而导致原创 2022-10-16 00:09:45 · 268 阅读 · 0 评论 -
分布式缓存
分布式缓存– 基于Redis集群解决单机Redis存在的问题单机的Redis存在四大问题:0.学习目标1.Redis持久化Redis有两种持久化方案:RDB持久化AOF持久化1.1.RDB持久化RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。快照文件称为RDB文件,默认是保存在当前运行目录。1.1.1.执行时机原创 2022-10-16 00:06:47 · 72 阅读 · 0 评论 -
SpringCloud实用篇02
SpringCloud实用篇020.学习目标1.Nacos配置管理Nacos除了可以做注册中心,同样可以做配置管理来使用。1.1.统一配置管理当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置。Nacos一方面可以将配置集中管理,另一方可以在配置变更时,及时通知微服务,实现配置的热更新。1.1.1.在nacos中添加配置文件如何在nacos中管理配置呢?然后在弹出的表单中,填写配置信息:原创 2022-10-16 00:06:09 · 272 阅读 · 0 评论 -
SpringCloud01
SpringCloud011.认识微服务随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢?1.0.学习目标了解微服务架构的优缺点1.1.单体架构单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。单体架构的优缺点如下:优点:架构简单部署成本低缺点:耦合度高(维护困难、升级困难)1.2.分布式架构分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。原创 2022-10-16 00:05:38 · 212 阅读 · 0 评论 -
Nacos源码分析
Nacos源码分析1.下载Nacos源码并运行要研究Nacos源码自然不能用打包好的Nacos服务端jar包来运行,需要下载源码自己编译来运行。1.1.下载Nacos源码Nacos的GitHub地址:https://github.com/alibaba/nacos课前资料中已经提供了下载好的1.4.2版本的Nacos源码:如果需要研究其他版本的同学,也可以自行下载:大家找到其release页面:https://github.com/alibaba/nacos/tags,找到其中的1.4.2.原创 2022-10-16 00:04:56 · 401 阅读 · 0 评论 -
微服务常见面试题
常见面试题1.微服务篇1.1.SpringCloud常见组件有哪些?问题说明:这个题目主要考察对SpringCloud的组件基本了解难易程度:简单参考话术:SpringCloud包含的组件很多,有很多功能是重复的。其中最常用组件包括:•注册中心组件:Eureka、Nacos等•负载均衡组件:Ribbon•远程调用组件:OpenFeign•网关组件:Zuul、Gateway•服务保护组件:Hystrix、Sentinel•服务配置管理组件:SpringCloudConfig、Nacos原创 2022-10-16 00:03:59 · 219 阅读 · 0 评论