自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 SpringAMQP——TopicExchange

在publisher服务发送消息到TopicExchange。在consumer服务声明Exchange、Queue。服务中,编写两个消费者方法,分别监听。服务中,编写两个消费者方法,分别监听。必须是多个单词的列表,并且以。

2023-07-07 14:53:16 227

原创 SpringAMQP——DirectExchange(发布订阅)

在publisher服务发送消息到DirectExchange。在consumer服务声明Exchange、Queue。交换机将消息路由给每一个与之绑定的队列。会将接收到的消息根据规则路由到指定的。服务中,编写两个消费者方法,分别监听。服务中,编写两个消费者方法,分别监听。发布者发送消息时,指定消息的。注解声明队列和交换机常见注解。如果多个队列具有相同的。,因此称为路由模式(

2023-07-07 14:34:52 192

原创 Docker实现容器开机自启

如果创建时未指定 --restart=always ,可通过update 命令设置。创建容器时,设置自动启动容器, 添加--restart=always。的时候,同时也把docker里面的容器也设置成自动启动。服务器停机后,再次启动容器。

2023-07-07 14:11:32 1237

原创 SpringAMQP——FanoutExchange(发布订阅)

服务中,利用代码声明队列、交换机,并将两者绑定。会将接收到的消息广播到每一个跟其绑定的。服务中,编写两个消费者方法,分别监听。将消息按照规则路由到与之绑定的队列。不能缓存消息,路由失败,消息丢失。的会将消息路由到每个绑定的队列。声明队列、交换机、绑定关系的。交换机的作用是什么?

2023-07-07 00:01:46 153

原创 SpringAMQP——WorkQueue(工作队列)

启动ConsumerApplication后,在执行publisher服务中刚刚编写的发送测试方法testWorkQueue,可以看到消费者1很快完成了自己的25条消息。消费者2却在缓慢的处理自己的25条消息。也就是说消息是平均分配给每个消费者,并没有考虑到消费者的处理能力。在spring中有一个简单的配置,可以解决这个问题。多个消费者绑定到一个队列,同一条消息只会被一个消费者处理。服务中定义两个消息监听者,都监听。,实现一个队列绑定多个消费者。服务中定义测试方法,每秒产生。来控制消费者预取的消息数量。

2023-07-06 23:27:35 198

原创 SpringAMQP——消息发送与接收(入门)

3.在publisher服务中利用RabbitTemplate发送消息到simple.queue这个队列。host: 192.168.200.130 # 主机名。host: 192.168.200.130 # 主机名。案例:利用SpringAMQP实现消息发送与接收功能。virtual-host: / # 虚拟主机。username: itcast # 用户名。virtual-host: / # 虚拟主机。port: 5672 # 端口。2.配置RabbitMQ地址。2.配置RabbitMQ地址。

2023-07-06 21:52:38 312

原创 RabbitMQ入门——常见消息模型

1.publish:消息发布者,将消息发送到队列queue。3.consumer:订阅队列,处理队列中的消息。2.queue:消息队列,负责接收并缓存消息。5.利用channel将消息消费者与队列绑定。1.Fanout Exchange:广播。基本消息队列(BasicQueue)4.利用channel向队列发送消息。工作消息队列(WorkQueue)3.利用channel声明队列。3.利用channel声明队列。1.建立connection。1.建立connection。

2023-07-06 15:52:01 96

原创 初识MQ(消息队列)

4.级联失败:如果服务提供者出现问题,所有调用方都会出问题,如同多米诺骨牌一样,迅速导致整个微服务群故障。3.资源浪费:调用链中的每个服务在等待响应过程中,不能释放请求占用资源,高并发场景下会极度浪费系统资源。2.性能下降:调用者需要等待服务提供者响应,如果调用过长则响应时间等于每次调用的时间之和。异步调用优点:耦合度低、吞吐量提升(性能提升)、故障隔离(能防止级联失败)、流量削峰。1.耦合度高:每次加入新的需求,都要修改原来的代码。同步调用优点:时效性较强,可以立即得到结果。同步调用和异步调用优缺点。

2023-07-05 23:43:41 143

原创 Docker-Compose

Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!② 修改自己的cloud-demo项目,将数据库、nacos地址都命名为docker-compose中的服务名。⑤ 将cloud-demo上传至虚拟机,利用 docker-compose up -d 来部署。④ 将打包好的app.jar拷贝到cloud-demo中的每一个对应的子目录中。③ 使用maven打包工具,将项目中的每个微服务都打包为app.jar。

2023-07-05 17:26:59 79

原创 Docker基本操作——挂载数据卷

需求说明:上个案例中,我们进入nginx容器内部,已经知道nginx的html目录所在位置/usr/share/nginx/html,我们需要把这个目录挂载到html这个数据卷上,方便操作其中的内容。案例一:创建一个nginx容器,修改容器内的html目录内的index.html内容。我们在创建容器时,可以通过-v参数来挂载一个数据卷到某个容器目录。案例二:创建并运行一个MySQL容器,将宿主机目录直接挂载到容器。1.创建容器并挂载数据卷到容器内的HTML目录。提示:运行容器时使用-v参数挂载数据卷。

2023-07-05 15:43:43 555

原创 Docker基本操作——数据卷

查看数据卷详细信息卷:docker volume inspect html。创建数据卷:docker volume create html。将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全。数据卷:是一个虚拟目录,指向宿主机文件系统中的某个目录。案例:创建一个数据卷,并查看数据卷在宿主机的目录位置。inspect:显示一个或多个volume的信息。查看所有数据:docker volume ls。prune:删除未使用的volume。ls:列出所有的volume。容器与数据耦合的问题。

2023-07-04 22:35:54 234

原创 Docker基本操作——容器命令

步骤一:去dockerhub查看Nginx的容器运行命令。docker logs(添加-f参数可以持续查看日志)案例一:创建运行一个Nginx容器。

2023-07-04 20:53:18 128

原创 Docker基本操作——镜像相关命令

镜像名称一般分为两部分组成:[repository]:[tag]docker save:保存镜像为一个压缩包。docker pull:从服务拉取镜像。docker push:推送镜像到服务。docker load:加载压缩包镜像。docker build:构建镜像。dicker image:查看镜像。docker rmi:删除镜像。

2023-07-04 20:10:08 96

原创 初识Docker——安装Docker

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。这里采用CE版本。Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。

2023-07-04 15:52:52 152

原创 初识Docker——镜像和容器

DockerHub:DockerHub是一个Docker镜像托管平台,这样的平台称为Docker Registry。客户端(client):通过命令或RestAPI向Docker服务端发送命令,可以在本地或远程向服务端发送指令。容器:镜像中应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。镜像:Docker将应用程序及其所需依赖、函数库、环境、配置等文件打包在一起,称为镜像。服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等。

2023-07-04 14:29:43 403

原创 初始Docker——Docker与虚拟机

docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般。docker是一个系统进程;虚拟机是在操作系统中的操作系统。

2023-07-04 14:04:18 76

原创 初识Docker——入门介绍

2.Docker运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行。1.将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包,形成可移植镜像。1.Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包。1. 可以将程序及其依赖、运行环境一起打包为一个镜像,2. 运行时利用沙箱机制形成隔离容器,各个应用互不干扰。2.将每个应用放到一个隔离容器去运行,避免互相干扰。Docker如何解决不同系统环境的问题?2.开发、测试、生产环境有差异。

2023-07-04 13:52:28 124

原创 统一网关Gateway——路由过滤器GatewayFilter

当前过滤器写在userservice路由下,因此仅仅对访问userservice的请求有效,如果需要对所有路由请求都生效,则采用default-filters。:给所有进入userservice的请求添加一个请求头:Truth=itcast is freaking awesome!Spring提供了31种不同的路由过滤器工厂。

2023-07-03 21:48:02 368 1

原创 统一网关Gateway——路由断言工厂

Spring提供了11种基本Predicate工厂:

2023-07-03 21:05:57 106 1

原创 统一网关Gateway——搭建网关

1.创建新的module,引入SpringCloudGateway的依赖和nacos的服务发现依赖。,lb是负载均衡,根据服务名拉取服务列表,实现负载均衡。2.编写路由配置以及nacos地址。规则的一切请求,都代理到。

2023-07-03 20:49:00 239 1

原创 统一网关Gateway——认识

Zuul是基于Servlet的实现,属于阻塞式编程。而SpringCloudGateway则是基于Spring5中提供的WebFlux,属于响应式编程的实现,具备更好的性能。:一切请求都必须先经过gateway,但网关不处理业务,而是根据某种规则,把请求转发到某个微服务,这个过程叫做路由。当然路由的目标服务有多个时,还需要做负载均衡。:当请求流量过高时,在网关中按照下流的微服务能够接受的速度来放行请求,避免服务压力过大。:网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截。

2023-07-03 20:41:15 150 1

原创 http客户端Feign——性能优化

【代码】http客户端Feign——性能优化。

2023-07-02 16:10:48 334 1

原创 http客户端Feign——日志配置

HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息。FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。BASIC:仅记录请求的方法,URL以及响应状态码和执行时间。NONE:不记录任何日志信息,这是默认值。配置Feign日志有两种方式;方式二:java代码实现。注解中声明则代表某服务。方式一:配置文件方式。

2023-07-02 15:06:07 616 1

原创 Http客户端Feign-快速入门

4.使用FeignClient中定义的方法代替RestTemplate。2.添加@EnableFeignClients注解;3.编写FeignClient接口(服务名称:userservice。请求路径:/user/{id}请求参数:Long id。返回值类型:User。

2023-07-02 14:41:29 144 1

原创 Nacos多服务共享配置

服务名-profile.yaml>服务名称.yaml>本地配置(前两个属于nacos中的配置文件,其中第一个属于当前环境配置,第二个属于共享配置)微服务会从nacos读取的配置文件:1.服务名-profile.yaml,环境配置;2.服务名.yaml,默认配置,多环境共享。

2023-07-02 14:09:45 563 1

原创 编号:R20221202000001,格式:R+日期(20221202)+六位数(从000001开始累加)

这个是我做第一个需求遇到的一个难题,开始生成编号肯定简单,但是为了不至于重复,我就需要查询数据库,开始想法很简单我直接查最后一条数据的编号,但是如果这个编号是一条脏数据,那我就需要进行判断,这样我就需要查询所有的数据,并且从后到前依次判断,但是又提了一条,每天新生成的编号要从000001开始,这样我就需要进行时间和编号的双重判断,导致数据库进行了大量的查询操作。编号判断(需要判断第一个字符是否为R,判断日期是否是正常的日期,判断后六位数字是否正常)

2023-02-16 14:35:14 141

原创 带你了解Stream

个人总结Stream,如有不对希望指出

2023-02-01 16:25:10 94

原创 带你了解Stream

(7)flatMap:使用flatMap方法的效果是,各个数组并不是分别映射成一个流,而是映射成流的内容。(9)anyMatch:检查是否至少匹配一个元素,返回boolean。(10)allMatch:检查是否匹配所有元素,返回boolean。(3)distinct:返回一个元素各异的流(去重)(5)limit:会返回一个不超过给定长度的流。(4)findAny:将返回当前流中的任意元素。(6)skip:返回一个扔掉了前n个元素的流。(5)count:返回流中元素的总数。(2)forEach:遍历流。

2023-02-01 16:22:33 76

原创 HashMap的扩容机制原理

hashmap的扩容机制浅谈

2022-12-19 16:10:52 206

原创 考研倒计时html页面

倒计时Html页面+3D特效

2022-12-06 13:59:43 412

转载 java设计模式——23种设计模式(一、单例模式)

设计模式分为三大类:1.创建型型模式、2.结构性模式、3.行为型模式。

2022-12-01 10:56:21 177

原创 Compilation failed: internal java compiler error解决方法

idea编译项目时出现java: Compilation failed: internal java compiler error。两个原因:1.jdk错误2.进程堆太小。改大一点,默认700,1500就够了。java:编译失败:内部。

2022-11-24 14:01:57 11326 4

空空如也

空空如也

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

TA关注的人

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