Fork me on GitHub

如何使用Feign构造多参数的请求

TIPS 本文基于Spring Cloud Greenwich SR1,理论上支持Finchley及更高版本。 本节来探讨如何使用Feign构造多参数的请求。笔者以GET及POST请求为例讲解,其他方式(例如DELETE、PUT等)的请求原理相通,读者可自行研究。 GET请求多参数的URL假设需请求的URL包含多个参数,例如http://microservice-provider-user/get?id=1&username=张三 ,该如何使用Feign构造...

扩展Ribbon支持Nacos集群配置

在Nacos上,支持集群配置。集群是对指定微服务的一种虚拟分类。集群还是比较有用的,例如: 为了容灾,把指定微服务同时部署在两个机房(例如同城多活【其中1个机房崩溃另一个机房还能顶】、异地多活【防止自然灾害,例如地震什么的】),比如南京机房和北京机房。 调用时,可优先调用同机房的实例,如果同机房没有实例,再跨机房调用。 当然cluster还有很多其他作用,请各位看客自行脑补,本文将围绕上面描述的场景展开。 虽然Spring Cloud Alibaba支持集群配置...

扩展Ribbon支持Nacos权重的三种方式

Nacos支持权重配置,这是个比较实用的功能,例如: 把性能差的机器权重设低,性能好的机器权重设高,让请求优先打到性能高的机器上去; 某个实例出现异常时,把权重设低,排查问题,问题排查完再把权重恢复; 想要下线某个实例时,可先将该实例的权重设为0,这样流量就不会打到该实例上了——此时再去关停该实例,这样就能实现优雅下线啦。当然这是为Nacos量身定制的优雅下线方案——Spring Cloud中,要想实现优雅下线还有很多姿势,详见:《实用技巧:Spring Cloud中...

搭建生产可用的Nacos集群

搭建生产可用的Nacos集群

注:本文使用Nacos 1.0.1 前面部署的是单机版的Nacos Server,这一般不适用于生产。 本节详细探讨如何搭建一个生产可用的Nacos集群。讨论的内容主要包括:使用MySQL作为存储持久化数据,以及如何搭建Nacos集群。 一、部署架构图部署架构图如下: 二、安装MySQL数据库生产环境需使用MySQL作为后端存储,因此需要搭建MySQL。生产中,MySQL建议至少主备模式,高可用MySQL更佳。 高可用MySQL搭建方案有很多(例如MMM、MHA...

Intellij IDEA中Mybatis Mapper自动注入警告的6种解决方案

Intellij IDEA中Mybatis Mapper自动注入警告的6种解决方案

相信使用Mybaits的小伙伴们一定会经常编写类似如下的代码: 可以看到 userMapper 下有个红色警告。虽然代码本身并没有问题,能正常运行,但有个警告总归有点恶心。本文分析原因,并列出解决该警告的几种方案。 原因众所周知,IDEA是非常智能的,它可以理解Spring的上下文。然而 UserMapper 这个接口是Mybatis的,IDEA理解不了。 而 @Autowired 注解,默认情况下要求依赖对象(也就是 userMapper )必须存在。而IDEA认为...

Spring Cloud Alibaba系列教程-05-Sentinel入门与整合

TIPS 本文基于: Spring Boot 2.1.5 Spring Cloud Greenwich.SR1 Spring Cloud Alibaba 0.9.0 Nacos 1.0.0 Sentinel 是什么?随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 简单来说,Sentinel是一个轻量级的流量控制、熔断降级 Java 库。 Sentinel 具...

推荐10款笔者一直在使用的Chrome提效插件

推荐10款笔者一直在使用的Chrome提效插件

本文推荐的10款插件笔者一直在用,部分插件可能有点冷门,但绝壁是提升效率的好帮手,在我眼里是必备插件。笔者已创建 GitHub仓库 ,欢迎分享、讨论。一起打造最强Chrome插件集。 1. CrxMouse Chrome™ Gestures作用:高度可自定义的鼠标手势、超级拖拽、鼠标滚轮手势、遥感手势,提升工作效率。 官方网站:https://crxmouse.com/ 插件主页:https://chrome.google.com/webstore/detail/crx...

MongoDB自动备份全过程实录

前段时间,个人小程序 IT牧场 因服务器磁盘空间被占满,导致MongoDB挂了。清理了一些无用的数据后,重启MongoDB,竟然无法启动,一番折腾(20分钟)后,总算修复了。这让我意识到:虽然是个人小项目,但也必须定期备份啊,否则数据丢了很尴尬的说。 碎碎念 我不是MongoDB高手,之所以选择MongoDB,是因为需求不明确——MongoDB很适合不明确需求场景的开发。 个人对Elasticsearch更熟悉,Elasticsearch也很适合不定需求的业务开发;...

技术讨论

技术讨论

有童鞋反馈博客没有讨论平台,其实笔者有技术讨论微信群。请加我微信,技术交流,一起进步。暗号:加群。目前已有1000人+。 本群为技术讨论群,旨在提供良好的技术讨论平台,协助解决大家的技术问题。请自觉遵守群规,严重违规者赠送飞机票: 禁止非技术无关的内容营销(例如:抢票、公众号营销等) 禁止广告(包括招聘广告) 禁止灌水、色情、暴力、政治等敏感话题

Spring Boot系列教程

Spring Boot 技术讨论微信群:加群导航 本文列出笔者所有Spring Boot相关的文章。目前还比较少,大家可以加我微信 jumping_me 给我提需求。 Spring Boot 2.x监控数据可视化(Actuator + Prometheus + Grafana手把手) Spring Boot Banner自定义 Spring Boot 2动态修改日志级别 Spring Boot 2实现分布式锁——这才是实现分布式锁的正确姿势! Spring Boo...