- 博客(26)
- 收藏
- 关注
原创 分布式事务
Seata是一款开源的分布式事务解决方案,致力于提高高性能和简单易用的分布式事务服务。1.A服务【订单微服务】的TM【事务发起者】向TC【Seata服务端】申请开启一个全局事务,TC就会创建一个全局事务并返回一个唯一的XID。2.A服务开始远程调用B服务【账户微服务】,此时XID会在微服务的调用链商传播。5.全局事务调用链处理完毕,TM根据有无异常向TC发起全局事务的提交或者回滚。3.B服务的RM向TC注册分支事务,并将其纳入XID对应的全局事务的管辖。TM:事务发起者【在哪个方法上添加了全局事务注解的】
2023-05-21 21:24:00
157
原创 sentinel规则持久化
当你在sentinel控制台中,无论增加规则,还是修改规则,都会同步到nacos;相反,修改nacos中配置文件的限流规则,也会同步到sentinel。然后浏览器访问:http://localhost:8070,最开始什么都没有,然后访问你自己的项目的任意一个要限流的接口,则左侧会出现对应的 服务名称。添加成功后,nacos中,你指定的命名空间下自动生成${application-name}-flow-rules 格式的配置文件。打开根目录下的pom.xml,修改sentinel的版本。
2023-05-19 21:51:45
336
原创 微服务保护
雪崩问题微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。什么是雪崩问题?如何避免因瞬间高并发流量而导致服务故障?如何避免因服务故障引起的雪崩问题?服务保护技术对比SentinelHystrix隔离策略信号量隔离线程池隔离/信号量隔离熔断降级策略基于慢调用比例或异常比例基于失败比率实时指标实现滑动窗口滑动窗口(基于 RxJava)规则配置支持多种数据源支持多种数据源扩展性多个扩展点插件的形式基于注解的支持支持支持限流。
2023-05-19 21:19:00
194
原创 链路追踪及配置中心
在大型系统的微服务化构建中,一个系统被拆分成了很多微服务。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种架构中,一次请求往往需要涉及到多个服务。
2023-05-16 20:46:52
703
原创 gateway 网关
它的目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控和限流。所谓的API网关,就是指系统的统一入口,它封装了应用程序的内部结构,为客户端提供统一服务,一些与业务本身功能无关的公共逻辑可以在这里实现,如认证,鉴权,监控(黑白明白),路由转发等等。下面的我们自定义一个GlobalFilter,去校验所有请求的请求参数中是否包含“token”,如何不包含请求参数“token”则不转发路由,否则执行正常的逻辑。
2023-05-15 22:00:08
192
原创 服务治理nacos
在SpringCloud中,nacos一般配置Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从nacos中读取到的服务信息,在调用服务节点提供的服务时,会合理(策略)的进行负载。在SpringCloud中可以将注册中心和Ribbon配合使用,Ribbon自动的从注册中心中获取提供者的列表信息,并基于内置的负载均衡算法,请求服务。上面的负载均衡,是自己写的代码。的方式去检测清单中的服务是否可用,如果不可用,需要在服务清单中剔除不可用的服务。用于实现各个微服务的自动注册与发现。
2023-05-14 14:07:25
152
原创 docker 自定义镜像
作为开发:我们需要把自己的项目 --- 通过dockerfile变成一个镜像 --- 上传到远程仓库 【hub.docker 或者阿里云镜像仓库】步骤:把现有的镜像 -- 运行成一个容器 ---修改容器中的内容 -- 变成镜像--把镜像压缩文件 --交给其他人 --- 变成本地镜像。docker save -o 压缩文件名 镜像名:版本号 [把指定的镜像压缩为一个压缩文件]docker commit 容器id 镜像名:版本号 [把指定的容器变成镜像]作为运维:从远程仓库下载镜像 --- 通过镜像运行容器。
2023-05-12 22:08:54
408
原创 微服务架构
微服务详解在过去几年中,“微服务架构”这一术语如雨后春笋般涌现出来,它描述了一种将软件应用程序设计为一组可独立部署的服务的特定方式。虽然这种架构风格没有明确的定义,但在组织、业务能力上有一些共同的特征:自动化部署,端点智能化,语言和数据的去中心化控制。简单来说,微服务架构风格[1]是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。
2023-05-12 20:24:26
73
原创 数据卷 及 docker安装软件
将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。数据卷:它就是宿主机中一个普通的文件或目录,只是该文件或目录被挂载到相应容器中的某个目录或文件上。在宿主机中webapps目录下创建test目录,并在test目录下创建一个网页index.html。:将主机当前目录下的data目录挂载到容器的 /var/lib/mysql。# 在/root目录下创建nginx目录用于存储nginx数据信息。1.创建目录: mkdir -p /root/tomcat。
2023-05-11 13:45:25
50
原创 docker
2、安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的。# 1、yum包更新到最新---因为现在的docker更新比较快,而现在我们使用的centos不是最新。比如:安装mysql ====》下载mysql的镜像【类】 ---》根据镜像可以创建XQ【对象】查看docker服务的状态: systemctl status docker。1.根据镜像创建容器:第一种:这种方式如果退出容器时,会关闭容器。) 上下载docker镜像,太慢。
2023-05-10 21:01:05
53
原创 jenkins自动化部署
如果这时项目也部署到jenkins所在的服务器,势必会导入项目在后期运行时由于资源不够,而导致无法运行。思考:jenkins打包好的项目jar,在自己所在的服务器,而项目运行需要在其他服务器。我们在远程复制时需要输入另一台服务器47的密码。修改idea中的代码并提交到gitee上,会自动触发jenkins -- 拉取 -- 编译 -- 打包。当git仓库更新 jenkins就会自动化拉取 --- 翻译 --- 打包 ---- 部署 ---查看自动拉取 -- 翻译 -- 打包到哪个目录下。
2023-04-27 19:53:58
2960
原创 redis分布式锁
每隔10s检测当前线程是否还持有锁资源,如果持有则为当前线程延迟。-- 可以自己设置watchDog机制, --- 可以使用Redission第三方组件完美的解决分布式锁超时问题。上面的synchronized或Lock锁不适合集群模式|分布式系统。但是会出现超时问题:如果你的业务代码的执行时间超过30s,当前线程删除的是其他线程的锁资源。可以使用锁解决: ---synchronized和Lock锁。解决超时问题使用 -- watchDog机制。分布式锁可以解决集群重卖问题。(2)配置redisson类。
2023-04-27 11:03:00
54
原创 Jenkins
而jenkins所能实现的功能是,待开发人员将代理提交到源码管理工作中,通过提交设计好的Jenkins构建策略等,可以实现一键测试、部署等等。Jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行。很多项目都是maven的项目架构,所以我们jenkins从远程仓库拉取的代码必须有maven管理依赖的jar包。(3)修改maven的配置文件 --- 镜像 --- 本地仓库地址。(2)jenkins集成安装的git。
2023-04-27 11:02:51
61
原创 java连接redis及springboot连接redis
springboot在整合reids时提供两个模板类,StringRedisTemplate和RedisTemplate,以后对redis的操作都在该模板类中。是StringRedisTemplate的父类,类可以存储任意数据类型,但是任意类型必须序列化,默认采用的是jdk的序列化方式。有请求先查询缓存是否缓存命中 如果命中直接返回响应 如果未命中查询数据库 拿到结果后把查到数据存入缓存中并把数据返回响应。第一种:jedis --- 传统的项目 --- ssm。--- 提高系统的性能。
2023-04-27 10:21:48
728
原创 redis2
1.热点数据的缓存由于redis访问速度快、支持的数据类型比较丰富,所以redis很适合存储热点数据,另外结合expire,我们可以设置过期时间然后进行缓存更新操作,这个功能最为常见。2.限时业务的运用redis中可以使用expire命令设置一个key的生存时间,到时间后redis会删除它。利用这一特性可以运用在限时的优惠活动信息、手机验证等业务场景。3 计数器相关问题什么是计数器,如电商网站商品的浏览量、网站视频的播放数等。
2023-04-24 11:20:16
79
原创 nginx的核心功能
准确的说就是把一些经常变的资源跟不变的资源分离开 对于静态资源比如图片,js,css等文件,我们则在反向代理服务器nginx中进行缓存。在真实开发时可能服务的配置不同,服务器配置高的并发能力强,配置低的并发能力弱。//(1)安装jdk (2) 连接的数据所在的服务器必须允许远程访问 (3)linux中必须关闭防火墙。反向代理:代理的是服务器端,对应的客户端不知道真实的服务器的信息。(2)修改nginx的配置文件 --代理springboot服务器。(3)客户访问nginx --响应真实的服务器资源。
2023-04-22 16:27:29
88
原创 安装mysql及反向代理服务器:nginx
(8条消息) linux-centos7_小王s的博客-CSDN博客点击链接后找到远程连接mysql服务器时 无法连接 ===防火墙是否把3306端口放行。1.查看防火墙放行的端口号:firewall-cmd --list-port2.添加放行的端口号:firewall-cmd --add-port=3306/tcp --zone=public --permanent添加放行端口后需重启防火墙3.重启防火墙 :systemctl restart firewalld。
2023-04-19 21:24:07
550
原创 linux-centos7
vi 文件名 ------> 命令行模式 ----- i ----->编辑模式 -----> esc键 输入命令模式 : wq 退出并保存。usr:用户安装软件的目录----等价于window中program files。--只需要解压就可以。安装的是图形化centos ---默认安装了jdk需要把原来默认的jdk卸载。---而该防火墙没有把8080这个端口号放行。无法安装依赖的文件。etc:配置目录--可以配置很多参数--IP地址,环境变量配置。编译 --->打包 --->安装。
2023-04-18 20:29:07
569
原创 使用vue工程 及创建linux系统
---我们为了模拟服务器 --所以需要安装虚拟机 --然后再虚拟机中安装服务器 --centos7。因为我们未来开发的项目需要部署到服务器上,而现在使用的服务器大多数都是linux系统。但是现在在vue组件中无法引入script. 而且我们在创建vue工程时已经安装了axios的依赖插件。跳转:根据你输入的路径找到对应的组件(页面),从而渲染该组件。centos7: ---企业使用最多的是该系统。ifconfig ====>查看当前服务器的ip。redhat:红帽系统 --- 收费。
2023-04-17 20:02:57
188
原创 elementui-vue实现curd 及安装nodejs服务器 , 安装vue脚手架--vue-cli
element-ui + axios后台获取数据写好的vue工程 --- 把我们的工程部署到该服务器上。== 注意:不要安装到中文目录下或者空格目录下==node服务器安装验证是否成功创建好vue工程后进入如下界面。
2023-04-16 14:13:06
274
原创 element-ui
什么是跨域:从一个服务器请求另一个服务器。这种请求必须ajax请求。学习vue 用于dom和vue数据之间的交互。element-ui可以帮你完成优美的网页布局。Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。方式一:使用@CrossOrigin ------ 需要在每个接口类上添加。上面写的死数据,现在需要从数据库中获取数据。(2)vue中created() 页面加载完毕后执行该函数。== 上面两种跨域方式使用一种即可 ==[2] 后端解决 -----
2023-04-15 10:28:09
200
原创 Vue介绍和指令使用
(8)v-model:常用于表单组件的绑定,例如input,select等。(4)v-show:通过判断自定义值为true或false进行隐藏显示,原理是修改元素 的display。(1)v-text:它会替代显示对应的数据对象上的值。(2)v-html:它会替代显示对应的数据对象上的值。(5)v-if:通过判断自定义值为true或false进行隐藏显示,原理是创建和去除元素。(6)v-bind:绑定元素的属性,如src,title等,元素的属性在标签内部。@CrossOrigin //开启跨越请求。
2023-04-14 10:08:49
84
原创 springboot整合swagger2
目前的项目基本都是前后端分离,后端为前端提供接口的同时,还需同时提供接口的说明文档。@ApiModelProperty ==== 用来对相关实体类中的参数添加额外的描述信息。@ApiOperation =====用在请求的方法上,说明方法的用途,作用。@ApiModel ===== 用来对使用该注解的实体类添加额外的描述信息。@ApiParam ===== 给接口中的参数定义相关参数说明。@Api ===== 用在请求的类上,表示类的说明。三十分钟未支付 ===>取消订单。(2)配置定时器任务。
2023-04-13 20:50:18
90
1
原创 springboot
主函数在运行时会加载一个使用@SpringBootApplication标记的类,而该类注解是一个复合注解,包含@EnableAutoConfiguration,这个注解开启了自动配置功能。主函数在运行会执行一个使用@SpringbootApplication注解的类,该注解是一个复合注解,包含@EnableAutoConfiguration,该注解开启自动配置功能,该注解也是一个复合注解,包含@Import()该注解需要导入AutoConfigurationImportSelector类。
2023-04-12 11:06:45
93
原创 springboot框架
2.2 如果上面两个配置文件同时存在,而且里面有相同配置 则properties优先级要高于yml优先级,如果两个配置文件里面的配置不相同 则都有效。accessKeyId,accessKeySecret,druid配置等,这些内容能写在java源文件中。springboot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过过程。他们的区别就是格式不同。问题:硬编码,不利于维护,所以我们需要把信息写入配置文件。6.开箱即用,没有代码生成,也无需xml配置。
2023-04-11 11:29:28
139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人