我们知道,RabbitMQ是没有延时列队的,要实现延时列队需要用迂回的方式: 使用2个列队 给第一个列队设置一个ttl(Time-To-Live消息存活时间),且让列队不消费,等待这个ttl的时间后,列队消息死亡,进入死信exchange到死信列队 设置死信列队可以再次路由到其他队列中,进行消息,从而实现延时的功能 流程图如下: 这个方式有个问题就是流程有点复杂, 会产生很多列队和交换机(尤其是当业务较多,有较多类型的消息要实现延迟的情况下,会成倍的增加这些列队)容易出错。 RabbitMQ是支持插件的,好在有专门…

2022-06-04 0条评论 1065点热度 0人点赞 admin 阅读全文

Docker里面的容器暴露出来的端口默认是可以让外部随意访问的,Linux下(CentOS7以上)如果是firewalld防火墙,就算开着,并设置了黑白名单也是无效 那是因为Docker启动容器会默认使用iptables防火墙设置容器暴露出来,并全部允许访问,本省firewalld也是底层调用的iptables。 如果想要控制特定的端口给特定的IP访问,可以这样做(我亲测有效,每次添加新的自定义规则,都要1-3步骤都跑一次,需要添加的规则放在第二步的中间加注释的地方): 第一步 准备工作(包括清理规则、建立DOCK…

2022-05-24 0条评论 2204点热度 0人点赞 admin 阅读全文

最近要使用RabbitMQ,为了快速安装和测试,我选择了使用Docker,在此记录下,确实很方便。 首先,先决条件是安装docker-ce,详见:https://blog.terrynow.com/2021/12/15/centos-install-latest-docker-ce-simple-steps/ 然后找官方镜像:https://hub.docker.com/_/rabbitmq,我们需要找一个带管理界面的镜像,如图,最新稳定版本带管理功能(management) 我选择的是红色框的那个,拉取镜像: d…

2022-04-30 0条评论 1590点热度 0人点赞 admin 阅读全文

需要在容器里修改一些配置文件,例如进入命令行,用vi命令修改,但是提示没有vi(command not found) 例如mysql镜像下,需要修改/etc/my.cnf,所以进入docker镜像: docker exec -it [contanerId] bash 进入后,发现无论是使用 vim vi nano emacs 都提示command not found 把文件copy到宿主机(使用dokcer copy命令),然后在宿主机编辑修改后,再复制到容器里 # 复制容器里的需要修改的文件到宿主机 docker…

2022-04-26 0条评论 1267点热度 0人点赞 admin 阅读全文

如果只是为了测试或者开发,需要一个MySQL环境,我觉得使用Docker安装是比较方便的,一个是快速,第二个是干净。 备忘记录下我Docker安装MySQL的步骤。 首先,先决条件是安装docker-ce,详见:https://blog.terrynow.com/2021/12/15/centos-install-latest-docker-ce-simple-steps/ 我放在宿主机上,防止容器删除后,重新部署数据丢失 # data目录自己定义 sudo mkdir -p /storage/docker/mys…

2022-04-19 0条评论 563点热度 0人点赞 admin 阅读全文

使用docker搭建的数据库,是开发测试用的,最近多个同时一起调试使用,经常出现客户端连接报错: [1040][08004] Too Many Connections 错误的意思是客户端的连接已超过最大连接数,来查看下最大连接数,进入MySQL的命令提示行: bash-4.4# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 192…

2022-04-18 0条评论 804点热度 0人点赞 admin 阅读全文

MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序。 拉取mongo镜像 # 搜到docker镜像,一般来说是第一个 docker search mongo # 拉取镜像,默认是最新版本 docker pull docker # 如果需要拉取特定的版本,例如4 docker pull docker:4 # 查看本地镜像 docker images docker run --name mongo --restart=always -p 27017:27017 -v /storage/docker…

2022-03-31 0条评论 2492点热度 0人点赞 admin 阅读全文

Docker中例如Dockerfile设置环境变量或者docker指令-e后面的参数里带有特殊字符的时候,默认就会出现问题,例如 docker run -d \ -e MODE=standalone \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=172.17.0.4 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=nacos \ -e MYSQL_SERVICE_PASSWORD=…

2022-03-19 0条评论 4850点热度 0人点赞 admin 阅读全文

希望把SpringCloudAlibaba的Nacos安装到docker里,然后能把数据存放到MySQL作为持久化方案。 默认拉取最近的镜像(2.0.x) docker pull nacos/nacos-server # 或者指定版本 docker pull nacos/nacos-server:v2.0.4 https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql 或者:https://…

2022-03-18 0条评论 1072点热度 0人点赞 admin 阅读全文

之前有介绍过用iptables限制其他IP访问Docker里的服务,详见:https://blog.terrynow.com/2022/01/03/docker-container-port-iptables-firewall-settings/ 本次的需求是要限制Docker里的容器访问外网,比较简单,关键的一句,插入DOCKER-USER链,如下: iptables -I DOCKER-USER -d 0.0.0.0/0 -o docker0 -j REJECT 查看防火墙规则: iptables -S DOC…

2022-01-25 0条评论 3253点热度 0人点赞 admin 阅读全文