周其仁:停止改革,我们将面临三大麻烦

抛开立场观点不谈,且看周小平写一句话能犯多少语病

罗马尼亚的声明:小事件隐藏着大趋势——黑暗中的风:坚持做对的事相信未来的结果

布林肯突访乌克兰,为何选择去吃麦当劳?

中国不再是美国第一大进口国,贸易战殃及纺织业? 美国进一步延长352项中国商品的关税豁免期

自由微信安卓APP发布,立即下载! | 提交文章网址

码猿技术专栏

微服务中使用阿里开源的TTL,优雅的实现身份信息的线程间复用

大家好,我是不才陈某~前面在介绍分布式链路追踪时讲过异步调用会丢失链路信息,最终的解决方案是使用对应的包装类重新包装一下,如下:RunnableWrapperCallableWrapperSupplierWrapper还有openFeign异步请求丢失上文的问题,这些问题追根究底都是ThreadLocal惹得祸。由于ThreadLocal只能保存当前线程的信息,不能实现父子线程的继承。说到这,很多人想到了InheritableThreadLocal,确实InheritableThreadLocal能够实现父子线程间传递本地变量,但是.....但是你的程序如果采用线程池,则存在着线程复用的情况,这时就不一定能够实现父子线程间传递了,因为在线程在线程池中的存在不是每次使用都会进行创建,InheritableThreadlocal是在线程初始化时intertableThreadLocals=true才会进行拷贝传递。所以若本次使用的子线程是已经被池化的线程,从线程池中取出线下进行使用,是没有经过初始化的过程,也就不会进行父子线程的本地变量拷贝。由于在日常应用场景中,绝大多数都是会采用线程池的方式进行资源的有效管理。今天就来聊一聊阿里的ThansmittableThreadLocal是如何解决线程池中父子线程本地变量传递。B站链接:https://b23.tv/RI06iZl下方是本篇文章视频教程,讲解更加详细!“帅气的人都点赞了~”InheritableThreadLocal
2022年6月2日

陈某的 Spring Cloud Alibaba 实战 视频专栏 开放订阅~

进阶》这个专栏,很多读者反应知识点太杂了,组件太多,不能融会贯通,于是陈某花费了两个月的时间录制了《Spring
2022年5月10日

实战!openFeign如何实现全链路JWT令牌信息不丢失?

实现分布式统一认证授权!字节面试这样问:跨库多表存在大量数据依赖问题有哪些解决方案?实战!退出登录时如何借助外力使JWT令牌失效?实战!Spring
2022年1月18日

实战!阿里神器 Seata 实现 TCC模式 解决分布式事务,真香!

分布式事务解决方案只适用于对最终一致性时间敏感度较低的一些被动型业务(从业务服务的处理结果不影响主业务服务的决策,只被动的接收主业务服务的决策结果)。比如会员注册服务和邮件发送服务:3、补偿型
2022年1月12日

实战!Spring Cloud Gateway集成 RBAC 权限模型实现动态权限控制!

获取!”4、总结关键代码就是上述三处,另外关于一些DAO层的相关代码就不再贴出来了,自己下载源码看看!“案例源码已经上传GitHub,关注公众号:码猿技术专栏,回复关键词:9529
2022年1月7日

实战!退出登录时如何借助外力使JWT令牌失效?

一次说明白!OAuth2.0实战!使用JWT令牌认证!OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!实战干货!Spring
2021年12月30日

实战!Spring Boot 整合 阿里开源中间件 Canal 实现数据增量同步!

大家好,我是不才陈某~数据同步一直是一个令人头疼的问题。在业务量小,场景不多,数据量不大的情况下我们可能会选择在项目中直接写一些定时任务手动处理数据,例如从多个表将数据查出来,再汇总处理,再插入到相应的地方。但是随着业务量增大,数据量变多以及各种复杂场景下的分库分表的实现,使数据同步变得越来越困难。今天这篇文章使用阿里开源的中间件Canal解决数据增量同步的痛点。文章目录如下:Canal是什么?canal译意为水道/管道/沟渠,主要用途是基于
2021年12月27日

字节面试这样问:跨库多表存在大量数据依赖问题有哪些解决方案?

Bifrost,原因如下:它的界面管理不错;它的架构比较简单,出现问题后,我们可以自行调查,之后就算作者不维护了也可以自我维护,相对比较可控。作者更新活跃;自带监控报警功能。因此,最终我们使用了
2021年12月22日

实战干货!Spring Cloud Gateway 整合 OAuth2.0 实现分布式统一认证授权!

一次说明白!OAuth2.0实战!使用JWT令牌认证!OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!今天这篇文章介绍一下Spring
2021年12月21日

OAuth2.0实战!玩转认证、资源服务异常自定义这些骚操作!

/oauth/token,这个接口定义在TokenEndpoint#postAccessToken()(POST请求)方法中,如下图:我们先不看其中的逻辑,平时我们写接口的异常怎么处理?一般都是通过
2021年12月9日

OAuth2.0实战!使用JWT令牌认证!

一次说明白!的代码,在其之上做些修改,目录如下:2、令牌配置令牌相关的配置都放在了AccessTokenConfig这个配置类中,代码如下:1、
2021年12月6日

妹子始终没搞懂OAuth2.0,今天整合Spring Cloud Security 一次说明白!

注解代码如下:AuthorizationServerConfigurerAdapter需要实现的三个方法如下:下面便是围绕这三个方法进行OAuth2的详细配置。6、客户端配置在介绍OAuth2.0
2021年12月2日

实战!Spring Boot Security+JWT前后端分离架构登录认证!

filter.setAuthenticationManager(http.getSharedObject(AuthenticationManager.class));
2021年11月29日

3本书了,7万+字,10篇文章,《Spring Cloud 进阶》基础版 PDF

进阶》这个专栏并没有写完,只是把重要的基础部分介绍完了,提前整理成PDF,供小伙伴们下载学习,后续会更新实战、源码部分。PDF获取方式有如下两种:1、关注陈某公众号:码猿技术专栏,回复关键词
2021年11月23日

链路追踪自从用了SkyWalking,睡的真香!

Sleuth夺命连环9问?本篇文章介绍链路追踪的另外一种解决方案Skywalking,文章目录如下:什么是Skywalking?上一篇文章介绍了分布式链路追踪的一种方式:Spring
2021年11月15日

分布式链路追踪之Spring Cloud Sleuth夺命连环9问?

作为链路追踪的一种组件,只提供了日志采集,日志打印的功能,并没有可视化的UI界面zipkin提供了强大的日志追踪分析、可视化、服务依赖分析等相关功能,结合Spring
2021年11月8日

Spring Cloud Gateway 整合阿里 Sentinel网关限流实战!

Gateway集成Sentinel实现很简单,这就是阿里的魅力,提供简单、易操作的工具,让程序员专注于业务。新建项目新建一个gateway-sentinel9026模块,添加如下依赖:
2021年11月4日

Spring Cloud Gateway夺命连环10问?

Gateway几个必知的术语?路由(route):gateway的基本构建模块。它由ID、目标URI、断言集合和过滤器集合组成。如果聚合断言结果为真,则匹配到该路由。断言(Predicate
2021年11月1日

对比7种分布式事务方案,还是偏爱阿里开源的Seata,真香!(原理+实战)

State)柔性状态称为柔性状态,是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统不同节点的数据副本之间进行数据同步的过程存在延时。E(Eventual
2021年10月25日

阿里限流神器Sentinel夺命连环 17 问?

localhost:80804、新建一个测试接口下面新建一个测试接口,用于测试相关规则,如下:@RestController@RequestMapping("/sentinel")public
2021年10月8日

阿里面试败北:5种微服务注册中心如何选型?这几个维度告诉你!

1、前言微服务的注册中心目前主流的有以下五种:ZookeeperEurekaConsulNacosKubernetes那么实际开发中到底如何选择呢?这是一个值得深入研究的事情,别着急,今天陈某就带大家深入了解一下这五种注册中心以及如何选型的问题。这是《Spring
2021年9月26日

阿里面试这样问:Nacos、Apollo、Config配置中心如何选型?这10个维度告诉你!

Service,Portal三个模块可以合并一起部署,MySQL单独安装并创建需要的表结构。在生产环境使用Apollo,Portal可以两个节点单独部署,稳定性要求没那么高的话,Config
2021年9月18日

openFeign夺命连环9问,这谁受得了?

order);}注意:openFeign默认的传参方式就是JSON传参(@RequestBody),因此定义接口的时候可以不用@RequestBody注解标注,不过为了规范,一般都填上。
2021年9月13日

五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强?

Nacos推荐集群模式部署,这样可以避免单点故障,那么如何搭建集群呢?请看官方文档:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
2021年7月28日

如何让Spring Boot 的配置 “动” 起来?

对于微服务而言配置本地化是个很大的鸡肋,不可能每次需要改个配置都要重新把服务重新启动一遍,因此最终的解决方案都是将配置外部化,托管在一个平台上达到不用重启服务即可一次修改多处生效的目的。
2021年6月24日

你的 IDEA 酷不酷?看了这几个插件你就知道了

平时开发中由于频繁用眼的原因,导致许多开发人员视力下降,主题插件虽然不能提高开发效率,但这时候一个舒适的主题可以使开发人员更舒适的开发。
2021年6月9日

让你的代码减少90%,这些Java工具库太强大了!

比较两个对象是否相等当我们用equals比较两个对象是否相等的时候,还需要对左边的对象进行判空,不然可能会报空指针异常,我们可以用java.util包下Objects封装好的比较是否相等的方法
2021年6月3日

熟练掌握 MyBatis-Plus,一篇就够!

而若updateStrategy配置为IGNORED,则不会进行非空判断,会将实体对象中的全部属性如实组装到SQL中,这样,执行UPDATE时,可能就将一些不想更新的字段,设置为了NULL。
2021年6月2日

定时任务的五种创建方式,你都会么?

地址,多个逗号分隔"xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin###
2021年5月31日

别再 kill -9 了,这才是服务上下线的正确姿势!

org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
2021年5月28日

Java8 中的真的 Optional 很强大,你用对了吗?

它在另一种情况下也并不怎么有用,就是在将其类型用作方法或构建方法的参数时。这样做会让代码变得复杂,完全没有必要:
2021年5月27日

代码对比工具,就用这7个!

这个强大易用的对比/合并工具可以让你通过其直观的可视化界面快速比较和合并文本或源代码文件,同步目录以及比较数据库模式与表格。DiffDog还提供了先进XML的差分和编辑功能。
2021年5月25日

几种技巧,帮你提升接口查询速度

“我”、“可”,“真”….分词匹配到的所有信息,这明显会返回很多信息,也是不符合中文语义的。实际期望的分词效果大概是“我”、“可”、“真是”,“机灵鬼”,之后再按照这种分词结果去匹配查询。
2021年5月21日

免费的XShell替代品,又来一款国产良心工具....

本文介绍一一个可以替代XShell的服务器管理软件,已经充分满足开发和运维需求,值得我们去使用,软件本身是采用Java开发的,所以其跨平台特性也足够强悍,更多使用方面的技巧。
2021年5月19日

SpringBoot中的线程池,你真的会用么?

Boot加载,用来定义如何创建一个ThreadPoolTaskExecutor,要使用@Configuration和@EnableAsync这两个注解,表示这是个配置类,并且是线程池的配置类
2021年5月17日

在 IDEA 中的各种调试技巧,轻松定位 Bug(超级全面)

目前本人一直使用JRebel做热部署工具,效果还算理想,修改Java代码或者xml等配置文件都能热更新。偶尔服务开久了,或更改的文件较多时,热更新没有生效,需要重新启动服务。
2021年5月14日

阿里P6终面:你知道几种延迟队列的实现方案?

Notifications,中文翻译就是键空间机制,就是利用该机制可以在key失效之后,提供一个回调,实际上是redis会给客户端发送一个消息。是需要redis版本2.8以上。
2021年5月12日

某度二面:MySQL 百万级数据,怎么做分页查询?说说思路

来个疯狂的实验,加到100万条,测试性能。加了10倍的数据,马上t表就到了200多M,而且是定长。还是刚才的查询语句,时间是0.1-0.2秒完成!分表性能没问题?
2021年5月11日

SpringBoot 中实现跨域的5种方式

同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)
2021年5月10日

Redis、Kafka 和 Pulsar 消息队列对比

leveldb进行二次开发,实现了支持redis协议的kv存储。这些存储已经不是redis了,但是用起来和redis几乎一样。它们能够保证数据的持久化,但对于上述的其他缺陷也无能为力了。
2021年5月10日

美团终面:分页场景(limit, offset)为什么会慢?

仔细分析一下,会发现通过索引去找很别扭。因为你不知道前100个数在左子树和右子数的分布情况,所以其是无法利用二叉树的查找特性。通过学习,了解到mysql的索引是b+树。
2021年5月8日

用了这么久 IDEA,你竟然不知道有个功能叫自动补全!

前蚂蚁P8,纯粹的技术人,专注于Java后端技术分享,只写外面看不到的干货,你想要的都在这里……
2021年5月6日

Git 这样回退代码,才足够优雅

Gitlab,虽然使用时间挺长,可是也只进行一些常用操作,如推拉代码、提交、合并等,更复杂的操作没有使用过,看过的教程也逐渐淡忘了,有些对不起
2021年4月28日

为什么不推荐使用BeanUtils属性转换工具

自定义了注解处理器,在编译阶段可以读取映射双方的泛型类型,进而进行映射。但是这种映射也很可怕,有时候我们由于粗心等原因定义错了类型,自动帮助我们进行了转换,会带了很多副作用。
2021年4月26日

Mybatis-Plus 深入总结,超详细

@EnableTransactionManagement@MapperScan("com.ly.mapper")@Configuration//配置类public
2021年4月25日

阿里一面:说一说事务注解 @Transactional 失效的几种场景及解决办法

false;}我们可以在上面的方法打断点,一步一步调试跟踪代码,最终上面的代码还会调用如下方法来判断。在下面的方法上断点,回头看看方法调用堆栈也是不错的方式跟踪。推荐:Java面试练题宝典
2021年4月23日

Shiro + JWT + Spring Boot Restful 简易教程

subjectDAO.setSessionStorageEvaluator(defaultSessionStorageEvaluator);
2021年4月20日

你还在用Logback?Log4j2的异步性能已经无敌了,还不快试试

Long.MAX_VALUE);注意,如果想使用String.format的形式,需要使用LogManager.getFormatterLogger而不是LogManager.getLogger
2021年4月16日

在SpringBoot项目中,自定义注解+拦截器优雅的实现敏感数据的加解密!

目标需要加密、解密的字段可能需要灵活变更,此时我们定义一个注解,对需要加密的字段进行注解,那么便可以配合拦截器对需要的数据进行加密与解密操作了。
2021年4月13日

主流微服务全链路监控系统之战

storm抽取trace数据并落到ES,这是为了提供比较复杂的查询。比如通过时间维度查询调用链,可以很快查询出所有符合的traceID,根据这些traceID再去Hbase查数据就快了。
2021年4月12日