
微服务
文章平均质量分 86
记录微服务的学习,分享开源使用的笔记记录。
兰舟千帆
分享开源实用的it技术
展开
-
dubbo 服务拆分和调用
我们需要在实现类上对外暴露dubbo服务,在上面的yml中我们需要去配置扫描scan,也就是需要扫描到这个注解。服务提供者需要注册nacos,所以需要配置注册中心的地址。案例采用的注册中心是nacos,服务提供者用于向注册中心注册自己提供的服务,消费者用户向注册中心订阅服务。第二个步骤是需要配置nacos注册中心的地址的,因为我们的dubbo-admin需要去监控注册中心的服务,所以需要有这个配置。maven中的依赖一些需要重复使用的我们可以放在父模块中,作为公共依赖,然后在子模块中引入。原创 2023-06-16 09:53:40 · 873 阅读 · 3 评论 -
SpringACK对RabbitMQ消息的确认(消费)
我们这里出现异常,第二个参数为true,代表不确认,第三个代表重新让它回到队列,设置为true该行消息重新回到队列,但是我们这里会持续接收进行接收消费,于是来来回回就形成了死循环。basic.nack方法为不确认deliveryTag对应的消息,第二个参数是否应用于多消息,第三个参数是否requeue,与basic.reject区别就是同时支持多个消息,可以nack该消费者先前接收未ack的所有消息。现在我们去面板看,可以看到这里就自动创建出来队列和生产了一条消息,当然交换机的创建和队列的绑定也是执行了。.原创 2022-08-09 18:15:10 · 913 阅读 · 0 评论 -
nginx反向代理与负载均衡
早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现。其实按照这个说明来说的话,其实负载均衡就是对服务压力的一个分担,在微服务里面我们一定会用到负载均衡,一个服务应用的资源部署在多台服务器,这样在访问应用资源的时候就可以按照相应的负载均衡的规则去访问相应的服务器,这样其实减少了单台服务器的压力。主要是下面两个部分。..原创 2022-08-04 20:19:10 · 1022 阅读 · 0 评论 -
nginx的安装与配置启动(linux)
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。然后我们的nginx可以重新加载,你可以在外面的目录直接用这个命令,看看能不能使用。执行一些基本的命令的时候我们就需要进去到这个文件,不过我们可以配置环境变量。可见nginx的用处还是非常大的。......原创 2022-08-03 23:33:51 · 1152 阅读 · 0 评论 -
docker mysql 容器中执行mysql脚本文件解决远程访问权限问题并解决乱码
注意mysql在docker容器中,如果你只导入到宿主机,然后进入容器去执行sql文件的话,一定会告诉你是打不开的,因为宿主机外部和容器内部是相对隔离的,不可能在容器内部去找宿主机的路径。cp后面是你宿主机sql文件所在的路径,容器id后面一个是容器home文件夹,一个是我拷贝后命名的sql文件。我把sql文件放置到了这里,这里是我曾经做的和dockersql文件挂载的普通目录,当然,你现在放在哪里都行。因此,我们要做的就是将宿主机的sql文件拷贝到容器内部,然后再让它去执行,这样就好了。...原创 2022-08-02 12:18:44 · 1476 阅读 · 3 评论 -
SpringAMQP对RabbitMQ消息的确认(发送)
此文的案例基础在上文基础上改造。上文本篇主要实现一个对生产者发送消息的确认。也就是当我们的生产者发送消息后,消费者这里是否有正确的接收等等,以及对于消息的反馈。简单的说就是一个对消息的处理方案。下面我们介绍两个方案。......原创 2022-07-26 22:28:02 · 2141 阅读 · 0 评论 -
SpringBoot整合RabbitMQ
然后启动类就不说了,一定要注意它的放置位置,涉及一个自动扫描的问题,我们尽量去把它扫描的范围放大,但是如果你再建立一个包把它放到里面可能就扫描不到相关的配置了,那么你就需要自己指定注解去扫描了。在这之前,我们还需要写一个配置类,主要配置队列啊,绑定,以及路由工作模式等等这些。这个配置类主要做了交换机和队列的创建以及绑定,具体的路由规则我们也指定了。之前我们生产者不是把消息存储到消息队列了们,我们消费者启动,就会把这些消息消费掉。我们后面的生产者主要采用了单元测试区启动,所以后面也引入流量单元测试的依赖。..原创 2022-07-26 16:54:58 · 1442 阅读 · 0 评论 -
RabbitMQ Routing(路由)工作模式
作为一种分发的规则。这里指定了交换机和路由,这是一个info级别的日志,所以不会发送到单独绑定error的队列。说明一次处理逻辑,我们这回的交换机需要指定为DIRECT,也就是一种定向的模式,很明显我们是定向分配的,如果你要是广播的模式的话,那么路由就不能做成定向的。运行出现的日志info,error,warning会路由到一个队列,然后单独的error也会路由到一个队列。然后呢,然后来看消费者的代码,我们只说明一个,另一个是一样的道理。获取到消息的做出响应的逻辑处理,没获取到消息的则不会进行处理。....原创 2022-07-18 21:42:46 · 714 阅读 · 0 评论 -
RabbitMQ Pub/Sub(发布订阅)模式
交换机一方面等待接收生产者的发送的消息,一方面可以进行一个指定的处理,比如是广播的模式还是适配或者是指定。首先是必要的生产者和消费者,中间的X代表交换机,这里我们会用到交换机,然后这里有两个队列,然后在分发给两个消费者。因为这种模式引入了交换机,所以必然存在一个交换机和队列绑定的逻辑,不然交换机怎么知道有哪些队列。然后呢,生产者就到这里,然后我们来看消费者,注意,这里的消费者不会竞争同一个队列,是不同队列的。另外交换机啊,它是不存储消息的,交换交换就是只有转发逻辑的功能,并不会存储消息。......原创 2022-07-18 18:15:04 · 858 阅读 · 0 评论 -
阿里云服务器Docker安装和配置nginx服务(一)
我真没想到我会被搞半天,真的是很简单的操作。这个还是和本地安装一个虚拟机再部署的话还是有点区别的。主要的是什么,几个命令,和你需要注意的几个地方。都是十分细节的问题。有时候你真的需要自己亲自动手做一遍,才会知道什么叫做眼高手低。今天不会先写docker的原理介绍了,简单记录这个过程。首先打开你的服务器,我的是阿里云轻量级服务器。我们访问的时候需要从公网这里去访问。我用了一个FinalShell进行连接,一次创建好连接信息以后就直接点开就行。自己安装过旧版本的docker最好卸载掉。这些命令还记个,直接复制原创 2022-07-13 19:02:11 · 1669 阅读 · 0 评论 -
Docker配置mysql以及宿主机容器目录挂载
mysql,默认的监听端口是3306,如果你不修改这里默认的话,那么这里的第二个端口一定是3306,如果你这里随便写一个,是无法正确映射到的。将来我们在我们主机连接远程服务器,我们的远程服务器的注解地址加上这个端口就是我们这个mysql容器的访问链接。创建的命令就不说了。需要注意的是如果你的原来的系统本来就有一个mysql的版本并且占用了你的3306端口,那么我的建议是杀死是比较明智简单的操作。然后测试后我们去看我们之前挂载的目录文件有没有新的数据出现,你看这里记录了一些非常详细的信息。...原创 2022-07-15 13:11:01 · 3060 阅读 · 1 评论 -
RabbitMQ WorkQueues(工作队列模式)
工作队列模式就是一个生产者,两个消费者。在初步入门的Hello World简单模式里面我们了解到。简单模式就是一个生产者一个消费者,中间通过中间件进行消息通信。相比较这下这个工作队列的模式就是一个生产者通过中间件给两个消费者进行通信传递。...原创 2022-07-18 17:09:32 · 720 阅读 · 0 评论 -
Docker之Dockerfile镜像自定义
镜像的结构是什么?首先是基础镜像,也叫BaseImage。基础镜像提供了镜像所需要的函数库,环境配置等等。然后就是各种层,也叫Layer,这个层啊是在我们的基础镜像上添加的一些配置然后就是我们的入口,可以是java项目的启动命令。......原创 2022-07-15 19:36:15 · 805 阅读 · 0 评论 -
Docker 数据卷操作以及挂载nginx
当我们需要修改我们的运行着的容器的时候,我们需要进到容器里去修改容器中的文件。数据卷可供一个多个容器去使用,它有一些特性,可以实现在容器之间的共享和复用,还有,我们修改了数据卷后,这个数据卷会立马生效。你可以不对比容器id来找到是哪个容器在使用到数据卷,注意这里你不要比对id的全部字符串,因为字符串太长,他这里是显示不完整的,你只要比对出现的这几位即可。在我们没有使用数据卷的时候我们是直接运行容器然后指定数据卷的,现在可以进行一个对数据卷的挂载,也就是叫数据卷挂载到我们容器中。你甚至可以用你本机的编辑器。.原创 2022-07-15 08:14:31 · 1683 阅读 · 2 评论 -
RabbitMQ初识以及简单模式初步
这里需要建立一个连接,连接这里有若干通道,或者说渠道也成,然后Broker,它是用来接收和分发消息的,可以看到里面有很多组件,有交换机,不过这个案例我们并没有使用到,然后不使用的话其实就是直接队列了,可以看到队列也可以有多个,然后呢!消费者也会需要建立连接,连接中也有通道,当然啊这个连接和通道和消费者是不一样的,但是去消息的话我们是需要来自同一队列,所以必然有一个指定。看图说话,就是这么简单。......原创 2022-07-17 22:47:17 · 789 阅读 · 0 评论 -
SpringCloud之Gateway统一网关
Gateway网关可以帮助处理一些校验的问题。并不是所有的请求都可以请求到资源路径,以及做一些身份验证等等。断言我们可以认为它是一种判断规则,根据断言来分配到相应规则的路由目标地址。这里面的路由规则绝不是只有路径的匹配,还有相关的过滤规则等等。分配搭配相应的目标地址后我们会调用相关的微服务,这里微服务会有一个负载均衡的过程,因为一个服务可能会纯在多个实例,这里会进行负载均衡。我们请求到对应的微服务实例后就可以访问或者说请求到数据。...原创 2022-07-12 17:52:38 · 713 阅读 · 0 评论 -
SpringCloud之http客户端Feign
但是其实我们可以把FeifnClient抽取为独立的模块,将功能模块独立化的好处就是我们的解耦化更高,当然这个必须要考虑到整体项目环境的合理性。原创 2022-07-11 17:46:50 · 649 阅读 · 0 评论 -
SpringCloud之Eureka注册中心
说明一下这个是干嘛用的它的原理就是基于服务提供者和服务消费者。像我们的orderservice需要去访问userservice,那么userservice就是服务提供者,orderservice就是。服务消费者。我们可以对服务创建多个节点,如果有的节点挂掉以后,就可以去启用另外可用的服务。当然这个是基于springcloud的。所以我们需要导入相关的依赖。在这之前啊,我们需要将eureka服务端创建出来我们再创建一个模块打开这个pom文件添加必要依赖然后创建启动类一定要注意启动类要放在java目录原创 2022-07-12 20:48:52 · 590 阅读 · 0 评论 -
SpringCloud之Nacos注册中心
Nacos是阿里巴巴的一个产品,说实话,这个注册中心是真的好用。下面我们开始介绍。首先我们需要安装这个服务,服务区官网下载就可以了。官网 可以选择点进去github下载服务。目录结构然后进去bin目录里面,进行执行开启服务如何开启服务,打开手册。在快速开始这里,我们可以进行执行命令。将这个命令执行后就可以开启这个服务了然后我们去idea里面配置相关的东西然后在里面配置相关的依赖,配置依赖的话就需要注释掉eureka的依赖。如果没有在父工程添加阿里巴巴的依赖的话,我们需要进行添加依赖。将这原创 2022-07-12 20:45:53 · 2338 阅读 · 6 评论 -
SpringCloud 分布式微服务架构
在这之前我们所有的开发都是按照单体架构开发的。什么是单体架构,其实就是所有的功能都放在一个项目中。然后部署的时候吗,就去打包为整体的一个包进行部署。原创 2022-07-08 15:10:29 · 2809 阅读 · 11 评论 -
RabbitMQ Topic(通配符)工作模式
黄色Queue绑定的是#.news,因此凡是以.news结尾的routingkey都会被匹配,红色Queue绑定的是usa.#,因此凡是以usa.开头的routingkey都会被匹配到。上文我们介绍了它的路由工作模式,接下来介绍一个通配符的模式。我们还是把这个中间件的比较详细的原理图放在这里。这样的话其实只有第二个消费者可以接收到消息。#(哈希)可以代替零个或多个单词。*(星号)可以正好代替一个词。下面我们编写代码进行举例。就按照这个图的人原理编写。...原创 2022-07-25 20:19:24 · 1004 阅读 · 1 评论