自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

持续学习,持续更新

专注于后台的学习

  • 博客(147)
  • 问答 (1)
  • 收藏
  • 关注

原创 Spring中最简单的过滤器和监听器

采用三步走策略使用filter开发后台资源 静态资源(html,css … …)或者动态资源(Servlet,Jsp)开发Filter在web.xml中配置Filter拦截哪些资源开发Servlet定义两个servletSystem . out . println("myServlet1 执行了sevice方法");resp . getWriter() . print("myServlet1响应的数据");} }

2023-07-28 15:12:16 1251 30

原创 走进Linux世界【九、Linux的软件安装】

RPM(RedHat Package Manager)安装管理​ 这个机制最早是由Red Hat开发出来,后来实在很好用,因此很多 distributions(发行版)就使用这个机制来作为软件安装的管理方式。包括Fedora,CentOS,SuSE等等知名的开发商。RPM的优点RPM内含已经编译过的程序与配置文件等数据,可以让用户免除重 新编译的困扰RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可 避免文件被错误安装。

2023-07-26 16:52:43 320 12

原创 走进Linux世界【八、Linux shell命令】

​ Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。​ Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。​ Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。shell 脚本​ 是一种为 shell 编写的脚本程序。

2023-07-26 16:51:12 988 21

原创 走进Linux世界【七、Linux网络及快照和克隆】

说明: 1.自动获取IP的条件是:必须在局域网内存在DHCP服务器。2.相同UUID网络配置的计算机会导致互相不能上网。这一项,设置的是域名服务器的地址,多个域名服务器,则在后续添加空格继续补充域名服务器的地址,或者另起一行做类似的。

2023-07-25 08:45:11 157

原创 走进Linux世界【六、Linux编辑器vim】

​ 在Linux下,绝大部分的配置文件都是以ASCII码的纯文本形式存在的,可以利用一些简单的编辑软件修改配置。​ 在Linux命令行界面下的文本编辑器有很多,比如nano,Emacs,vim等。但是所有的UNIX Like系统都会内置vi文本编辑器,而其他的文本编辑器则不一定存在。很多软件的编辑接口都会主动调用vi,而且它的编辑速度相当快。因为有太多的Linux命令都默认使用vi座位数据编辑的接口,所以我们必须学会vi,否则很多的命令无法操作。

2023-07-21 14:09:32 93

原创 走进Linux世界【五、Linux基本命令二】

​ (3)给 file 的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限。​ **语法:**whereis [-bfmsu][-B …​ **作用:**用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。​ **作用:**用于备份文件(tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件)

2023-07-19 22:36:03 123

原创 走进Linux世界【四、Linux基本命令一】

​ **作用:**类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h。​ **语法:**touch [-acfm] [-d] [-r] [-t] [–help] [–version] [文件或目录…若文件不存在,系统会建立一个新的文件。

2023-07-15 00:54:10 1306 9

原创 走进Linux世界【三、Linux文件与路径】

cd ./…3、pwd```bashpwd 命令作用:可立刻得知目前所在的工作目录的绝对路径名称语法:pwd [--help][--version]参数说明:--help 在线帮助。--version 显示版本信息。查看当前所在目录:/home。

2023-07-14 16:43:35 276 5

原创 走进Linux世界【二、VM与Linux安装】

​ 点击Vmnet0---------------→选择桥接---------------→点击应用---------------→点击确定。​ 点击添加网络---------------→选择VMnet0虚拟网卡 点击确定。​ 点击网络图标,点击详细信息,记录信息,IP,子网掩码,默认网关,DNS服务器。​ (注意如果有跳到如图下方这个界面,这里面选择第一个即可,剩下的也是相同的操作)

2023-07-11 16:06:40 279

原创 走进Linux世界【一、Linux概述】

​ 定义:操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序​ 作用:是把计算机系统中对硬件设备的操作封装起来,供应用软件调用,也是提供一个让用户与系统交互的操作界面。​ 在我们的常见的操作系统中有​​​ 1、安卓与苹果​​ 1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘、显示器),连接一台电脑。

2023-07-11 15:45:10 257

原创 RocketMQ 快速入门教程,手把手教教你干代码

消息中间件,英文Message Queue,简称MQ。它没有标准定义,一般认为:消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成。高效:对于消息的处理处理速度快,RocketMQ可以达到单机10万+的并发。可靠:一般消息中间件都会有消息持久化机制和其他的机制确保消息不丢失。异步:指发送完一个请求,不需要等待返回,随时可以再发送下一个请求,既不需要等待。一句话总结:消息中间件不生产消息,只是消息的搬运工。

2023-06-12 08:40:16 1488 9

原创 RabbitMQ 小白教程,从安装到使用

​ RabbitMQ是由Erlang语言编写的基于AMQP的消息中间件。而消息中间件作为分布式系统重要组件之一,可以解决应用耦合,异步消息,流量削峰等问题。

2023-05-22 10:53:45 1373 33

原创 RocketMQ的下载及安装以及历史和发展

2015年,阿里基于RocketMQ开发了阿里云上的Aliware MQ,Aliware MQ(Message Queue)是RocketMQ的商业版本,是阿里云商用的专业消息中间件,是企业级互联网架构的核心产品,基于高可用分布式集群技术,搭建了包括发布订阅、消息轨迹、资源统计、定时(延时)、监控报警等一套完整的消息云服务。目前来说还只是一个预览版,不过RocketMQ5的改动非常大,同时也明确了版本定位,RocketMQ 5.0定义为云原生的消息、事件、流的超融合平台。成功后会弹出提示框,此框勿关闭。

2023-05-06 16:20:59 1600 19

原创 Spring AOP 代码加案例详解

学习AOP就要先学习代理模式,这样AOP的学习就简单了。代理模式是Java常见的设计模式之一,包含:静态代理和动态代理。通过案例感受静态代理:租房子问题。房东需要将房子出租,如果都亲力亲为太麻烦了:房东要自己出去贴广告,带租客看房,讨价还价,签合同,收租金,定期检查房子,定期保洁。这时候就需要中介代理了,房东就是要租房拿钱,额外的功能:签合同,讨价还价,定期检查房子 ,定期保洁都由中介代理去做,所以 代理 简化了 业主的功能,同时对房东的功能做了一个扩展。找中介的好处:(1)保护真实对象 (房东)(2

2023-04-27 14:29:32 2118 44

原创 Spring IOC DI - 整合MyBatis

(1)单纯使用Mybatis框架,业务层代码复杂,需要用大量的代码自行解析mybatis.xml配置文件,压力都给到了业务层代码,如下代码:学习了spring以后,mybaits的使用会更加简单,会简化业务层处理的代码。(2)层与层之间的耦合性太高了。比如在分层思想中,controller层调用service层,service层调用mapper层(dao层),controller层中调用service层的对象的时候,需要构建service层对象,此时如果service改变,那么controller层中所有

2023-04-27 14:22:48 893 22

原创 Spring JDBC和事务控制

​ Spring 框架除了提供 IOC 与 AOP 核心功能外,同样提供了基于JDBC 的数据访问功能,使得访问持久层数据更加方便。想要使用 Spring JDBC 环境,需要将JDBC整合到Spring中。构建项目:普通的java项目即可添加 jdbc 配置文件在src/main/resources目录下新建db.properties配置文件,并设置对应的配置信息放在配置文件的目的:后续修改的时候直接到配置文件中修改即可。以下为可选配置编写 spring 配置文件编写spring配置文件:app

2023-04-27 14:04:39 1362 18

原创 Dubbo面试大全

Dubbo是阿里巴巴开源的分布式,高性能的透明化的RPC服务框架,提供服务自动注册,自动发现等高效服务治理方案,可以和Spring框架可以无缝衔接。

2023-04-27 13:52:29 1219 9

原创 Spring Cloud Sentinel实战(六)-Sentinel流控效果-预热

该方式主要用于系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动",让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮的情况。​ 默认coldFactor为3,当发起请求即请求QPS从(阈值/3)开始,经过多长预热时长才逐步升至设定的QPS阈值,当前阈值设置为10,预热时长设置为5秒。​ 最终的效果,系统初始化时阈值/3约等于3,即阈值在此时为3,经过5秒后阈值才慢慢升高到10。

2023-03-28 23:01:34 425

原创 Spring Cloud Sentinel实战(五)-Sentinel流控规则-链路

​ 比如在一个微服务中,两个接口都调用了同一个Service中的方法,并且该方法用SentinelResource(用于定义资源)注解标注了,然后对该注解标注的资源(方法)进行配置,则可以选择链路模式。​ 链路流控模式指的是,当从某个接口过来的资源达到限流条件时,开启限流,它的功能有点类似于针对来源配置项,区别在于:针对来源是针对上级微服务,而链路流控是针对上级接口,也就是说它的粒度更细。不需要在设置web-context-unify。然后更改接口调用这个Service方法。

2023-03-28 23:01:01 251

原创 Spring Cloud Sentinel实战(四)-流控规则-关联、预热、排队等待

- 资源名:唯一名称,默认请求路径- 针对来源:Sentinel可以针对调用者进行限流,填写微服务名,默认default(不区分来源)- 阈值类型/单机阈值: - QPS(每秒钟的请求数量):当调用该API的QPS达到阈值的时候,进行限流

2023-03-28 22:59:07 420

原创 Spring Cloud Sentinel实战(三)- Sentinel流控规则

Sentinel流量控制规则

2023-03-28 22:51:50 232

原创 Spring Cloud Sentinel实战(二)- Sentinel初始化监控

Sentinel初始化监控,请求接口,页面进行查看请求数据

2023-02-28 08:00:00 301 1

原创 Spring Cloud Sentinel实战(一)- Sentinel介绍

随着微服务的普及,服务调用的稳定性变得越来越重要。以“流量”为切入点,在流量控制、断路、负载保护等多个领域开展工作,保障服务可靠性。特点:1.2.:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。3.:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。4.

2023-02-27 08:00:00 704 2

原创 FastDFS - 分布式文件存储系统

FastDFS对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。FastDFS是一个轻量级的开源分布式文件系统。

2023-02-26 21:52:27 1131 9

原创 Apollo(阿波罗)分布式配置安装详解

Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。application (应用)environment (环境)cluster (集群)namespace (命名空间)同时,Apollo基于开源模式开发,开源地址:https://github.com/ctripcorp/apollo【本节内容仅对应用需要对不同集群应用不同配置才需要,如没有相关需求,可以跳过本节】

2023-02-26 07:00:00 1678 5

原创 Spring Cloud Nacos源码讲解(十)- Nacos服务端服务发现处理

​ 当我们有服务进行注册以后,会写入注册信息同时会触发事件,通过这个事件,就会开始进行Nacos的集群数据同步,当然这其中只有有一个Nacos节点来处理对应的客户端请求,其实这其中还涉及到一个和。

2023-02-25 19:34:56 784

原创 Spring Cloud Nacos源码讲解(九)- Nacos客户端本地缓存及故障转移

​ ServiceInfoHolder类,顾名思义,服务信息的持有者。每次客户端从注册中心获取新的服务信息时都会调用该类,其中processServiceInfo方法来进行本地化处理,包括更新缓存服务、发布事件、更新本地文件等。​ 除了这些核心功能以外,该类在实例化的时候,还做了本地缓存目录初始化、故障转移初始化等操作,下面我们来分析。

2023-02-25 19:34:47 1625 1

原创 Spring Cloud Nacos源码讲解(八)- Nacos客户端服务订阅的事件机制剖析

​ 整体服务订阅的事件机制还是比较复杂的,因为用到了事件的形式,逻辑比较绕,并且其中还有守护线程,死循环,阻塞队列等。​ 需要重点理解NotifyCenter对事件发布者、事件订阅者和事件之间关系的维护,而这一关系的维护的入口就位于NacosNamingService的init方法当中。

2023-02-25 19:33:13 1124

原创 Spring Cloud Nacos源码讲解(七)- Nacos客户端服务订阅机制的核心流程

​ Nacos的订阅机制,如果用一句话来描述就是:Nacos客户端通过一个定时任务,每6秒从注册中心获取实例列表,当发现实例发生变化时,发布变更事件,订阅者进行业务处理(更新实例,更改本地缓存)。​ 以下是订阅方法的主线流程,涉及内容比较多,细节比较复杂,所以这里我们主要学习核心部分。订阅方法的调用,并进行EventListener的注册,后面UpdateTask要用来进行判断;通过委托代理类来处理订阅逻辑,此处与获取实例列表方法使用了同一个方法;

2023-02-25 19:32:55 946

原创 Spring Cloud Nacos源码讲解(五)- Nacos服务端健康检查

概念:长连接,指在一个连接上可以连续发送多个,在连接保持期间,如果没有数据包发送,需要双方发链路检测包注册中心客户端2.0之后使用gRPC代替http,会与服务端建立长连接,但仍然保留了对旧http客户端的支持。接口负责底层通讯,调用服务端接口。以客户端为例,代理了registerService方法。NamingClientProxyDelegate会。​ 临时instance:gRPC​ 持久instance:http。

2023-02-24 08:17:29 735

原创 Spring Cloud Nacos源码讲解(六)- Nacos客户端服务发现

首先我们先通过一个图来直观的看一下,Nacos客户端的服务发现,其实就是封装参数、调用服务接口、获得返回实例列表。​ 但是如果我们要是细化这个流程,会发现不仅包括了通过NamingService获取服务列表,在获取服务列表的过程中还涉及到通信流程协议(Http or gPRC)、订阅流程、故障转移流程等。下面我们来详细的捋一捋。​ 在这里我们主要要关注getAllInstances方法,那我们就需要看一下这个方法的具体操作,当然这其中需要经过一系列的重载方法调用。

2023-02-24 08:16:18 414

原创 Spring Cloud Nacos源码讲解(四)- Nacos服务端服务注册源码分析

负责存储当前客户端的服务注册表,即Service与Instance的关系。

2023-02-23 07:56:43 448 1

原创 Spring Cloud Nacos源码讲解(三)- Nacos客户端实例注册源码分析

流程图:在引入这个依赖以后,我们要找到SpringBoot自动装配文件META-INF/spring.factories文件。

2023-02-23 07:56:21 378 1

原创 Spring Cloud Nacos源码讲解(二)- Nacos客户端服务注册源码分析

​ 我们从Nacos-Client开始说起,那么说到客户端就涉及到服务注册,我们先了解一下Nacos客户端都会将什么信息传递给服务器,我们直接从Nacos Client项目的NamingTest说起​ 其实这就是客户端注册的一个测试类,它模仿了一个真实的服务注册进Nacos的过程,包括NacosServer连接、实例的创建、实例属性的赋值、注册实例,所以在这个其中包含了服务注册的核心代码,仅从此处的代码分析,可以看出,Nacos注册服务实例时,包含了两大类信息:Nacos Server连接信息和实例信息。

2023-02-22 09:20:38 852 1

原创 Spring Cloud Nacos源码讲解(一)- Nacos源码分析开篇

Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地址、端口等信息。Nacos Server接收到注册请求后,就会把这些元数据信息存储在一个双层的内存Map中。:在服务注册后,Nacos Client会维护一个定时心跳来持续通知Nacos Server,说明服务一直处于可用状态,防止被剔除。默认5s发送一次心跳。

2023-02-22 09:19:20 697

原创 Spring Cloud Alibaba从搭建到源码完整进阶教程

文章中包括了微服务中用到的组件使用,以及源码整理,包括Nacos注册中心配置中心, Seata 分布式事务,OpenFeign接口调用,Sentinel 流量控制,GateWay网关等一些组件

2023-02-19 16:15:23 2069 50

原创 Spring Cloud Nacos实战(八) - Nacos集群配置

我们现在知道,想要启动Naocs只需要启动startup.sh命令即可,但是如果启动3个Nacos那?所以如果我们需要启动多个Nacos,其实Nacos本身默认启动就是集群模式。注意点:如果是linux虚拟机,需要分配至少4g以上内存这里的修改和我们之间的在win上的修改是完全一样的,所以我们只要打开这个文件,加上对应的内容即可还要注意一点,这个文件中的两个服务的端口号也要对应修改Linux服务器上Nacos的集群配置cluter.conf这里开始正式配置集群,首先我们要更改clut

2023-02-19 16:08:08 688 1

原创 Spring Cloud Nacos实战(七)- Nacos之Linux版本安装

​ 已经给大家讲解过了Nacos生产环境下需要搭建集群配置,那么这里我们预计需要:1个Nginx+3个Nacos注册中心+1个MySql。

2023-02-19 16:07:36 189 1

原创 Spring Cloud Nacos实战(六)- 集群架构说明与持久化配置切换

重启Nacos服务,此时之前所创建的Namespace+Group+DataID将全部消失,因为这些数据是保存在之前Nacos内嵌的derby数据库中,现在使用的是本地的MySql数据库,此时我们可以添加配置测试,在查看数据库nacos_config中的config_info表,此时就会有新添加的配置内容。​ 到目前为止,我们已经对Nacos的一些基本使用和配置已经掌握,但是这些还不够,我们还需要了解一个非常重要的点,就是Nacos的集群相关的操作,那我们就先从Nacos集群配置的概念说起。

2023-02-19 16:05:29 495

原创 Spring Cloud Nacos实战(五)- 命名空间分组和DataID三者关系

​ 用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。(Group)​ Nacos 中的一组配置集,是组织配置的维度之一。通过一个有意义的字符串(如 Buy 或 Trade )对配置集进行分组,从而区分 Data ID 相同的配置集。

2023-02-19 15:42:41 594

空空如也

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

TA关注的人

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