自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(730)
  • 资源 (1)
  • 收藏
  • 关注

原创 SpringCloud-高级篇(二十二)

前面解决了消息的可靠性、消息的延迟问题,消息的堆积的问题,下面研究mq可用性、并发能力问题,这就需要mq集群来实现了。

2024-02-12 21:03:32 493

原创 SpringCloud-高级篇(二十一)

前面解决了消息的可靠性、消息的延迟问题,下面研究一下消息的堆积的问题: 消息产生堆积,上限后,最早的消息成为死信,有消息被丢弃,这对安全性较高的业务中是不行的,需要去解决消息堆积的问题。前两种是消费者角度,第三种是队列的角度 ,提高队列的容积,可以缓解消息堆积问题开启线程池也是有限制的,如果消息很多,需要开启很多很多线程,开启的线程很多对cpu是一种浪费,cpu需要在多个线程之间做上下文的切换,因此这种方案适合,这个消息处理的业务耗时比价长的情况,可以开多个线程,cpu可以并行处理多个业务我们下面将一下第三

2024-02-12 12:19:37 424

原创 SpringCloud-高级篇(二十)

下面我们研究MQ的延迟性问题。

2024-02-12 11:31:20 346

原创 SpringCloud-高级篇(十九)

我们已经学过使用 SpringAMQP去收和发消息,但是发和收消息是只是MQ最基本的功能了,在收发消息的过程中,会有很多的问题需要去解决,下面需要学习rabbitMQ的高级特性去解决死信交换机:这个可以帮助我们实现消息的延迟的特性惰性队列:可以去解决成百万更高消息堆积的问题MQ集群:解决单点MQ的可用性问题。

2024-02-09 10:47:08 1341

原创 SpringCloud-高级篇(十八)

修改商品的业务不需要修改,来了以后直接写数据库,写完结束,这个时候canal监听数据库的变化发现数据库变了之后,直接通知缓存服务完成更新,做到了代码0侵入。上面我们只是对Redis跟JVM做了修改,nginx本地缓存没有修改,浏览器用户前端页面上不太容易看到,只能查看看接口直接访问。如果openResty也做了集群,nginx也要修改负载均衡的算法,让查询你一个商品,请求的是同一个openResty。这个是直接查询接口,查询tomcat返回的数据,页面进行了修改,这样则可以证明,Redis和tomcat。

2024-01-28 18:07:11 596

原创 SpringCloud-高级篇(十七)

初始化类的时候需要实现一个InitialializingBean,需要实现里面的一个方法,afterPropertiesSet方法,会在这个类创建之后,成员变量初始化之后@Autowire注入以后去执行,需要在这个方法的内部初始化缓存的业务逻辑,就能实现项目已启动就能做初始化。在nginx里有一个master进程,多个worker进程,多个worker进程可以处理用户请求,他们可以共享,相等于共享内存了,这只限于nginx内部做共享,如果部署多态openResty,他们之间是无法共享的。

2024-01-28 15:53:08 749

原创 SpringCloud-高级篇(十六)

前面学习了Lua的语法,就可以在nginx去做编程,去实现nginx类里面的业务,查询Redis,查询tomcat等 ,业务逻辑的编写依赖于其他组件,这些组件会用到OpenResty的工具去实现。

2024-01-28 12:49:54 1110

原创 SpringCloud-高级篇(十五)

下面要做的是Nginx的业务集群 ,在里面实现本地缓存,本地缓存未命中查Redis,Redis未命中查tomcat,这样的业务,在nginx集群中实现的,通过nginx来做业务编码,不在是用tomcat做编码了前面利用tomcat做编码,其实是用java语言去写业务逻辑,nginx中用一种新的语言去写业务逻辑Luanginx和tomcat都是Web服务,java和Lua是开发的语言。

2024-01-21 14:36:12 596

原创 SpringCloud-高级篇(十四)

缓存的作用是其实就是为了减轻对数据库的压力,缩短服务响应的时间,从而提高整个服务的并发能力,Redis单节点并发其实已经很高了,但是它依然有自己的上限,随着互联网的发展,用户低量越来越大,想淘宝、京东、12306这样的网站,它们的并发量,往往能达到亿级一上的并发量,这个时候仅仅使用Redis是不能够满足高的并发需求的。下面学习的多级缓存正是为了应对亿级流量的并发。

2024-01-20 18:03:02 900

原创 SpringCloud-高级篇(十三)

前面的主从集群可以应对Redis高并发读的问题,Redis主从之间可以做同步,为了提高主从同步时的性能,单节点Redis的内存不要设置太高,如果内存占用过多,做RDB的持久化,或者做全量同步的时候,导致大量的IO性能会有一定的下降, 如果单节点Redis的内存降低了,比如说只能存10g,20g,那么有海量的数据要存储的时候改怎么办?这个问题解决不了,虽然应对高并发读的问题,如果我写的问题高并发也挺高,该怎么办,这就需要Redis的分片集群来解决。

2024-01-07 18:27:03 1078

原创 SpringCloud-高级篇(十二)

在主从集群中slave节点发生了宕机,不用担心,只要它重启就能从master节点上完成数据的同步,恢复数据,如果宕机的不是slave而是master,是不是master重启就可以呢?如果你做了master节点的数据持久化,如果你重启,数据也不会丢失,但是在master宕机这一段时间,重启数据恢复分过程当中,用户是无法执行写操作的,因为master挂了,整个集群的可用性就下降了,不能做写,只能做读了,这是我们不想看到的,我们要的是整个集群是一直可用的。

2024-01-07 12:40:35 468

原创 SpringCloud-高级篇(十一)

前面我们实现了Redis的持久化,解决了数据安全问题,但是还有需要解决的问题,下面学习Redis的主从集群,解决Redis的并发能力的问题Redis的集群往往是主从集群,Redsi为什么做成主从的集群,而不做成传统负载均衡的集群呢?因为Redis应用当中往往都是读多写少的场景,查询比较多,增删改比较少,我们更多应对的是读的压力,做读写分离,一主多从,多个从节点共同承担读的请求,并发能力能够做到很大的提升,这就是为啥搭建主从集群需要保证客户端无论访问那个从节点都要拿到相同的结果修改每个配置文件。

2024-01-06 21:58:31 1084

原创 SpringCloud-高级篇(十)

缓存大家都不陌生,在企业里面只要做缓存都会用到Redis,我们在使用的时候都是做的单节点部署,单节点部署是存在一些问题的,分布式缓存正是Redis的集群,正是为了解决单节点部署的问题的单节点Redis存在的问题:Redis是基于内存存储,并发能力非常强但是毕竟单节点,到了618等节日电商场景,还是无法满足高并发场景。

2024-01-01 15:46:09 1073

原创 SpringCloud-高级篇(九)

我们不仅要实现高可用,还要实现异地容灾:如果你弄了好几个节点部署起来,放在一个机房里面,如果这个机房出现了故障,整个集群也就完了,对于大型的集群来讲,往往都会把这些服务异地多机房部署,如果一个机房出现问题,还有另外一个机房可用,这就叫做异地多机房,起到容灾的效果。Seata服务通过事务组,找事务组对应的映射关系,确定了集群,我们做异地容灾,我们不修改配置文件,通过配置的热更新,通过nacos的配置管理:当集群出现故障,实现动态切换。做配置的热更新:把配置文件中的事务组配置到nacos中。

2024-01-01 13:07:38 569

原创 SpringCloud-高级篇(八)

前面学了XA和AT模式,这两种模式最终都能实现一致性,和隔离性,XA是强一致,AT是最终一致,隔离性呢XA是在第一阶段不提交,基于事务本身的特性来完成隔离,AT则是加了全局锁,锁定资源去隔离事务,本质上来看这两种都是加锁来实现的,只要加了锁都会有性能的损耗,如果追求的是极致的性能,就需要使用其他的办法,TCC 模式就是性能的体现,他不需要去加锁,

2023-12-17 00:51:51 1034

原创 SpringCloud-高级篇(七)

1.第一阶段不提交,等着第二阶段在提交,在等的时候占用数据库的锁,比如一个事务跨越了四五个更多的事务,每个事务执行完了还得等着别人,如果这个业务耗时较长,四五个分支都执行完耗时很久,整个事务过程中不提交占用系统资源,占用数据库锁,被人都不能访问,是一种资源的浪费,性能比较差,可用性低。2.数据库本身都实现了XA模式,数据库本身已经实现了对应的接口,你调用我我去执行,实现各种各样的功能,它是比较容器去实现分布式的效果的,Seata实现这种XA模式的时候也仅仅是在数据库接口上做了一层简单的封装形成RM,

2023-12-12 22:43:40 1002 2

原创 SpringCloud-高级篇(六)

(1)Seata架构(1)Seata架构(2)部署TC服务修改注册中心:做服务注册,tc服务配置注册中心,tc服务可以做集群,他也是一个服务 ,微服务里面RM 跟TM跟它建立联系肯定是基于注册中心去找,TC服务注册到服务中心config是配置中心:TC是一个服务器,它是有配置文件的,这放到哪里默认是放到本地对于集群来讲,,放到本地,管理起来不方便了,可以放到nacos配置中心将来会有一个seataServer.properties的配置文件。

2023-12-10 14:23:08 474

原创 SpringCloud-高级篇(五)

理论上库存服务报错,前面也应该跟着回滚,但是没有,因为每个服务都是独立的,库存服务抛了异常,账户服务不知道,第二每个服务都是独立的,他们的事务也是独立的,订单服务,账户服务执行完业务之后事务结束了执行提交了,没有办法回滚,最终没有达成事务状态的一致,这个时候就出现了分布式事务的问题。可以让node03等待node02网络的恢复和数据同步,在恢复之前,所有访问的请求都阻塞下去,这么做就可以满足数据的一致性,此时node03就变成。原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

2023-11-27 20:25:28 557

原创 K8S知识点(十)

创建Pod,里面的两个容器都正常运行。(3)Pod详解-端口设置。(1)Pod详解-启动命令。(2)Pod详解-环境变量。(3)Pod详解-端口设置。(4)Pod详解-资源配额。不满足条件是不能正常启动。

2023-11-12 21:35:06 605

原创 K8S知识点(九)

一级属性有下面这些:前两个属性是字符串,上面有定义 kind:Pod version:v1。通过这种形式可以遍历所有属性,我们只要掌握需要经常用的属性就可以了。创建跟查看pod:创建有问题,发现有容器一直在重启。修改拉取镜像策略:本地有使用本地没有进行远端拉取。查看pod的详细,以yaml的形式查看。还可以继续查看子属性:二级属性。(3)Pod详解-镜像拉取策略。(1)Pod详解-结构和定义。(1)Pod详解-结构和定义。可以查看pod创建的详细信息。(2)Pod详解-基本配置。

2023-11-12 12:38:17 377

原创 K8S知识点(八)

k8s中pod是最小的控制单元,但是很少直接的控制pod,比如说创建,销毁等等,一般都是通过pod控制器来完成的,pod控制器就是用于pod的管理,确保pod始终保持在正常的状态,出现问题进行重启或者重建。使用kubectl run nginx(pod控制器名称)...使用这种方式创建的pod底层创建一个nginx的pod控制器 replicas=3指定创建pod的数量,默认创建一个。有一瞬间,一个pod被删除,pod控制器会重新创建一个pod,它的ip地址也会发生改变。查看:pod 和pod控制器。

2023-11-11 12:16:21 393

原创 K8S知识点(七)

kubectl describe pod 可以查看pod的详细信息,最后还可以查看启动过程。查看系统组件的命名空间中的Pod:他们就是master节点上要运行的4个组件。kubernets:系统创建的资源在这个命名空间里 ,集群组件资源。pod的ip地址会随着pod的重新创建而变化,不稳定的。kubrnets组件也是以pod的形式运行的。(1)实战入门-Namespace。通过ip:端口号进行访问:pod。删除Pod控制器:就是删除Pod。通过配置文件创建的就是Pod。(2)入门实战-Pod。

2023-11-08 23:01:34 520

原创 K8S知识点(六)

命令式对象配置可以写很多命令,增删改查都能做,而声明式 对象配置只能写apply,只能做新增和更新。用describe描述容器的详细信息:包括ip啊,镜像啊,端口啊,容器启动经历的历程。再次运行配置文件,它会进行提示有没有更新,更新后发显示重新配置了。查询的时候加上命名空间,默认查询的是default下面的。删除pod:pod控制器它会重新启动一个pod。在master节点上执行 :复制到node节点。(3)资源管理方式3。(1)资源管理方式1。(2)资源管理方式2。(3)资源管理方式3。

2023-11-07 22:54:55 309

原创 K8S知识点(五)

kubernetes中所有东西都是抽象为资源对象的,比如pod,service 等等,我们学习kubernetes的重点就是学习这些资源对象的管理,它提供了这几种方式管理对象。Pod想要让外部访问需要通过Service代理,外部访问Service,就能访问内部的Pod。Pod控制器的作用,就是为了最终产生各种各样的Pod,Pod里面运行容器,容器里面运行程序。程序需要数据持久化,可以用数据存储卷来存储。命令式对象管理:一般用来查看的场景。(2)yaml语言介绍。(3)资源管理方式介绍。

2023-11-06 22:11:40 263

原创 K8S知识点(四)

我们测试以下集群安装是否成功,我们在集群上跑一个nginx程序,看是否能够了跑起来。我们的程序在容器里,容器在Pod里,pod是正常运行的,程序跟容器也应该是正常的。可以看到状态是NotReday,由于网络插件没有安装,各个节点此时还不能通信的。能够正常访问说明nginx在正常工作了,集群也是可以正常访问的,30518是暴露给外边的端口:可以通过ip+端口访问nginx。下载完成之后:查看一下镜像,名字也已经改成了k8s的名字。集群初始化只在master节点上运行,(1)环境搭建-集群安装。

2023-11-05 18:01:03 377

原创 K8S知识点(三)

我们用18.06.3这个版本,因为这个版本比较稳定,在做的时候把一些参数做了初始化,不需要我们二外的配很多参数,如果选择了其他版本可能需要配置其他的参数。Centos的版本是有要求的必须是7.5或以上,否则安装出来的集群是有问题的Node节点可能加入不到集群中来。2.主机名解析,方便节点之间的调用,这里是测试环境中的用法,在企业中真实环境推荐使用内部DNS服务器做解析。注释:/dev/mapper/centos-swap。1.同时连接三台服务器:查看一下版本 是否正确。(2)集群所需组件的安装。

2023-11-05 11:53:39 315

原创 K8S知识点(二)

K8S是通过控制pod来控制容器进而控制程序的。点击创建新的虚拟机:自定义,下一步。点击编辑虚拟机:选择一个镜像去安装。使用虚拟机,来虚拟三台服务器。确定之后,就可以开启虚拟机了。(2)环境搭建-环境规划。(3)环境搭建-主机安装。稍后安装操作系统,下一步。

2023-11-04 15:30:37 290

原创 K8S知识点(一)

容器部署容易出现编排问题,为了解决就出现了大量的编排软件,这里将的是K8S编排问题的解决佼佼者。弹性伸缩:当流量从1000变为1200可以,自动开启一个新的nginx。(1)应用部署方式转变。(1)应用部署方式转变。

2023-11-04 11:40:59 321

原创 项目知识点总结-住房图片信息添加-Excel导出

ServiceDao。

2023-11-01 22:19:07 238

原创 基于SpringBoot的在线笔记系统

注册: 登录:写笔记:保存草稿:草稿:点击编辑:查看全文:搜索:

2023-10-30 22:39:30 389

原创 【毕业设计】基于SSM甜点商城售卖系统

主页面 查看详情:登录:个人中心:点击加入购物车: 点击购物车:点击提交订单:点击微信支付:点击查看我的订单: 后台管理系统:订单管理 点击发货:配送成功后点击完成:客户管理:添加客户:点击修改:重置密码:商品管理:添加商品修改:加入头条,加入热销:类目管理修改:修改密码:

2023-10-26 23:15:55 101

原创 项目总结-新增商品-Pagehelper插件分页查询

工具类: Controller: Service:实现类:Dao:(2)分页查询-Pagehelper插件 Controller:OrderService:实现类 OrderDao: 显示页面:根据条件查询:Controller:OrderService:实现类: OrderDao

2023-10-25 23:47:48 176

原创 【毕业设计】基于SSM酒店后台管理系统

登录页面 住客管理 房间管理: 会员管理: 系统设置:数据库表:

2023-10-25 22:34:44 176

原创 项目总结-商品购买流程

Controller: CartService: 实现类: CartDetail detail=dao.queryByCdid(cid,gds.getId());CartDao: return dao.insertDetail(cd)>0;return dao.updateDetail(detail)>0;(2)查看购物车CartService:实现类:CarDao 购物车详情表 cid购物车id gid商品id num 购买数量商品表:num 商品库存量 (3)删除购

2023-10-22 17:45:08 160

原创 项目知识点总结-过滤器-MD5注册-邮箱登录

使用过滤器验证用户是否登录过滤器的配置:一是通过注解,二是通过web.xml中配置xml方式可以说是和Servlet使用xml配置方式一样FilterConfig和FilterChain这2个对象是由服务器(Tomcat)在创建和调用Filter对象时所传入的FilterConfig对象可以读取我们配置的初始参数,FilterChain可以实现多个Filter之间的连接。xml:第一个filter第二个Filter。

2023-10-21 16:30:35 190

原创 【毕业设计】基于SSM的商城系统

🔥采用技术:Spring+SpringMVC+MyBatis+JSP+Maven🔥开发语言:Java🔥JDK版本:JDK1.8🔥服务器:tomcat🔥数据库:mysql🔥数据库开发工具:Navicat🔥开发软件:IDEA/eclipse/myeclipse🔥浏览器:谷歌浏览器前台主页面:点击一个商品:点击结算:点击提交订单:浏览记录:后天系统页面:用户管理:商品类型管理:商品管理:订单管理需要私信哦!

2023-10-19 22:41:00 242

原创 MBatis-plus:架构使用

Service实现类注意:原来service调用mappe需要把mapper注入到service,但是我们继承了ServiceImpl,里面已经帮助我们完成了注入,直接使用BaseMapper完成调用在MyBatis-Plus不仅在Mapper中给我们封装了方法,在Service也进行了封装,在写代码是会非常的方便,直接通过controller去掉service中的方法,很方便的实现对数据库的操作。

2023-10-17 14:15:05 321

原创 黑马JVM总结(三十七)

重量级锁就是我们前面介绍过的Monitor enter。

2023-10-17 11:26:38 371

原创 黑马JVM总结(三十六)

cas是配合volatile使用的技术 ,对共享变量的安全性要使用synachonized加锁,但是CAS不加锁,它是使用where(true)的死循环,里面compareAndSwap尝试把结果赋值给共享变量,赋值的同时呢,会把旧值跟共享变量当前的值做一个比较,因为他怕在写入结果的时候,有其他线程把已经把共享变量改了,这两个值是一致的就把结果成功的写入共享变量里去,如果不一致,放回false,重新进入where循环。

2023-10-17 10:24:17 346

原创 黑马JVM总结(三十五)

使用maven重新编译:生成两个jar包运行这个jar包:再次执行上述结果:0出现的次数为0了。

2023-10-16 22:03:40 420

简单模拟-学生信息管理系统窗体

面对C#初级学习学习者

2022-04-16

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除