欢迎大家关注我公众号“从零开始的it转行生”

摘要: 上一篇文章后端多环境治理的实践(一)我们介绍了什么是后端多环境治理,而且用springcloud实现了微服务调用的多环境治理。 实现了之后,我们微服务的流量调度如下图: 但是mq的消费怎么办,mq的消费是没有办法做自定义的负载均衡,消费逻辑是由mq来决定的,经过mq之后,流量调度就会失效。 defa 阅读全文
posted @ 2021-08-16 23:26 大佬健 阅读(333) 评论(0) 推荐(0) 编辑
摘要: #背景 最近有个业务场景,需要做一个新旧数据的兼容。大致可以理解为之前保存到数据库的数据是一个字符串,由于业务调整,该字符串要变为一个json。 新的代码需要判断该字段是否为json,如果是json则序列化为json,如果不是json,则该字符串为json的某个字段。 逻辑简单,我发布给测试后,测试 阅读全文
posted @ 2021-08-12 08:45 大佬健 阅读(419) 评论(0) 推荐(0) 编辑
摘要: #一、redis的缓存淘汰策略 ##1、redis的缓存淘汰策略回收策略 noeviction:返回错误当内存限制达到并且客户端尝试执行会让更多内存被使用的命令(大部分的写入指令,但DEL和几个例外) allkeys-lru: 尝试回收最少使用的键(LRU),使得新添加的数据有空间存放。 volat 阅读全文
posted @ 2020-12-12 23:16 大佬健 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 使用KEYS 命令去删除redis的数据会阻塞线程; keys命令是一个在正式环境禁止的命令。 那如何优雅地删除redis匹配的数据呢? 例如我要把 符合*red*规则的KEY删掉? redis-cli -h redishost -a 'password' --scan --pattern "*re 阅读全文
posted @ 2020-12-02 21:54 大佬健 阅读(589) 评论(0) 推荐(0) 编辑
摘要: #rabbitmq 交换机有4种 direct-它会把消息路由到那些 BindingKey RoutingKey完全匹配的队列中。 fanout-它会把所有发送到该交换器的消息路由到所有与该交换器绑定的队列中。 topic-将消息路由到 BindingKey RoutingKey 相匹配的队列中。 阅读全文
posted @ 2020-11-18 18:44 大佬健 阅读(394) 评论(0) 推荐(0) 编辑
摘要: #rabbitmq 概念介绍 ##上一篇文章rabbitmq(一)-基础入门介绍了如何快速使用rabbitmq,这一篇主要对rabbitmq做一些概念和介绍,和管理后台的使用。 主要涉及的概念有: broker product consumer queue exchange binding conn 阅读全文
posted @ 2020-11-18 18:43 大佬健 阅读(149) 评论(0) 推荐(0) 编辑
摘要: #rabbitmq的联邦交换机federation ##一、为什么要使用联邦交互机federation 有些时候,我们的rabbitmq为了容灾,会部署到不同的城市。 例如北京部署一台rabbitmq,广州部署一台rabbitmq。 其中广州rabbitmq有exchangeA。 当北京的应用要发消 阅读全文
posted @ 2020-11-12 15:24 大佬健 阅读(1633) 评论(0) 推荐(0) 编辑
摘要: 原文地址:https://www.jianshu.com/p/4b8cc505a69b #rabbitmq的shovel功能 很多时候线上rabbitmq的队列会出现消息堆积,消息堆积的时候可以通过后期优化代码逻辑或者增加消费者的实例数去解决。 但是后期的代码优化在面临紧急情况时总归是“远水解不了近 阅读全文
posted @ 2020-11-09 11:18 大佬健 阅读(2021) 评论(0) 推荐(0) 编辑
摘要: 原文地址:https://www.jianshu.com/writer#/notebooks/48316575/notes/79639038 #rabbitmq的优先消费者 有些时候我们会开发调试本地连接开发环境的数据库。 这个时候有关mq的调试就很麻烦,因为dev环境的消费者也会消费rabbitm 阅读全文
posted @ 2020-11-09 10:34 大佬健 阅读(427) 评论(0) 推荐(0) 编辑
摘要: ###rabbitmq的拉模式 在rabbitmq(一)-基本入门我们已经展示了rabbitmq的推模式(mq主动推送,消费者监听) 其实rabbitmq还提供了一种拉模式; ##1、直接上示例代码: rabbitmq(一)-基本入门的基础上 我们把DemoLister注释掉 同时增加主动获取消息的 阅读全文
posted @ 2020-11-08 13:02 大佬健 阅读(649) 评论(2) 推荐(0) 编辑
摘要: 原文地址:https://www.jianshu.com/p/e186a7fce8cc #在学东西之前,我们先有一个方法论,知道如何学习。学习一个东西一般都遵循以下几个环节: xxx是什么,诞生的原因,能解决什么问题。 如何安装,如何使用(快起启动一个demo)。 涉及到的一些基础概念介绍和基础入 阅读全文
posted @ 2020-11-08 12:48 大佬健 阅读(169) 评论(0) 推荐(0) 编辑
摘要: ##1、redsi的bitmap数据结构介绍 bitmap本质上是一个string类型,只是他操作的是string的某个位是0还是1。 setbit和getbit 两条命令是对字符串的位操作。每个位只能是0/1,然后用Bitcount命令计算这个key有多少个1。 例如执行 setbit 'a' 1 阅读全文
posted @ 2020-11-06 18:31 大佬健 阅读(727) 评论(0) 推荐(0) 编辑
摘要: #如何在事务提交后才执行某个方法 开发过程中经常出现如下场景; 新增一篇文章,然后发一个广播mq出去; 广播监听者监听到消息然后根据文章id回查文章内容; 但是此时新增文章的方法的事务还没有提交,根据id回查数据库的时候查到数据为空。 代码如下: @Transactional public void 阅读全文
posted @ 2020-11-06 17:44 大佬健 阅读(1046) 评论(0) 推荐(0) 编辑
摘要: #idea 远程debug springboot ##1、新建一个springboot工程。 新建一个controller接口 @RestController @RequestMapping public class Controller { @GetMapping("/demo") public 阅读全文
posted @ 2020-10-27 13:44 大佬健 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 原文地址: IO读写的基础原理 大家知道,用户程序进行IO的读写,依赖于底层的IO读写,基本上会用到底层的read&write两大系统调用。在不同的操作系统中,IO读写的系统调用的名称可能不完全一样,但是基本功能是一样的。 这里涉及一个基础的知识:read系统调用,并不是直接从物理设备把数据读取到内 阅读全文
posted @ 2020-09-30 14:53 大佬健 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 原文地址: https://www.jianshu.com/p/dfec934b737f ###很多时候我们需要feign的时候添加headers 1、把当前登录用户的token传到下一个服务 2、在自己的token里面传入参数,来表名自己是哪个服务去调用feign。以便让feign提供者识别请求者 阅读全文
posted @ 2020-08-19 14:24 大佬健 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 原文地址:https://www.jianshu.com/p/ec5b8cccd87d ###java和spring都提供了线程池的框架 java提供的是Executors; spring提供的是ThreadPoolTaskExecutor; ##一、基本使用 Executors提供了4个线程池, 阅读全文
posted @ 2020-08-04 16:17 大佬健 阅读(580) 评论(0) 推荐(0) 编辑
摘要: #springboot自动装配原理 第一次使用springboot的时候,都感觉很神奇。只要加入一个maven的依赖,写几行配置,就能注入redisTemple,rabbitmqTemple等对象。 这一切要从spring的的@bean和@Configuration注解说起 如果spring扫描到一 阅读全文
posted @ 2020-07-28 14:22 大佬健 阅读(1267) 评论(0) 推荐(0) 编辑
摘要: #使用docker 部署codis 原文地址:https://www.jianshu.com/p/85e72ae6fec3 ##codis的架构图 1、zookeeeper,用于存放统一配置信息和集群状态 2、codis-fe,codis管理后台的前端页面。(可以看到是vue的地位) 3、codis 阅读全文
posted @ 2020-07-17 10:03 大佬健 阅读(828) 评论(0) 推荐(0) 编辑
摘要: #如题,很多时候,我们都需要在springboot项目启动后初始化化一些自己的数据 原文地址:https://www.jianshu.com/p/f80f833ab8f6 实现方法有2个。 一、ApplicationRunner 实现ApplicationRunner接口 打上@Component+ 阅读全文
posted @ 2020-07-15 16:36 大佬健 阅读(2727) 评论(0) 推荐(0) 编辑
摘要: #docker部署redis主从和哨兵 原文地址:https://www.jianshu.com/p/72ee9568c8ea 1主2从3哨兵 一、前期准备工作 1、电脑装有docker 2、假设本地ip为192.168.2.139 3、各Redis的ip和端口如下: 主:ip:6379 从:ip: 阅读全文
posted @ 2020-07-13 09:50 大佬健 阅读(1351) 评论(0) 推荐(0) 编辑
摘要: 原文地址:https://www.jianshu.com/p/440b8e1d5339 ###使用Haproxy代理rabbitmq集群 上一篇文章教了rabbitmq集群搭建。但是这样搭建出来的集群是3个IP:port。客户端一般只会填写一个Ip端口,这个时候就需要有个服务器去代理3个rabbit 阅读全文
posted @ 2020-07-04 11:41 大佬健 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 原文地址:https://www.jianshu.com/p/11963564dd3d #教你如何从0开始搭建rabbitmq集群 ##一、准备工作 1、三台centos虚拟机 2、三台虚拟机都安装了docker 3、假设三台虚拟机的ip是192.168.2.128,192.168.2.129,19 阅读全文
posted @ 2020-07-04 11:40 大佬健 阅读(2003) 评论(0) 推荐(0) 编辑
摘要: #实用fork/join框架提成程序效率 原文地址:https://www.jianshu.com/p/9ce243796d4a ##业务场景 最近再做一个接口,我是一个中央的消息接受方,当我接受到消息后要分发消息到其他系统,带其他系统返回结果后,要把结果打包返回给调用方。流程图入下: ###第一版 阅读全文
posted @ 2020-07-01 14:05 大佬健 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 原文地址:https://www.jianshu.com/p/ee02d6125113 需求背景: 有些时候我们再调用一些第三方服务的时候,从第三方那边拉数据。 但是第三方服务不是100%稳定的,有些时候会抽风一下,导致我们的调用失败,整个调用链就失败。整个时候需要触发重试,而且不是一直死循环重试, 阅读全文
posted @ 2020-06-29 11:01 大佬健 阅读(1092) 评论(0) 推荐(0) 编辑

欢迎大家关注我公众号“从零开始的it转行生”