自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(439)
  • 资源 (5)
  • 收藏
  • 关注

原创 面试官非得跟我抬杠,说MQ挂了怎么办?

原创:猿天地(微信公众号ID:cxytiandi),欢迎分享,转载请保留出处。一位读者跟我说,最近去某个公司面试,面试官非得问他MQ挂了如何处理?这位读者说当时也比较懵,因为在日常工作中也没去想过这样的问题,就回答:挂了就报错了呗**,**马上重启呗,还能咋处理。其实这个问题也并不是说这位面试官是一种抬杠的行为,因为MQ确实有可能挂掉,是一种正常现象。只不过是说这个挂的概率非常小,毕竟都是集群模式。如果是平时跟朋友,同事聊这个问题,怎么回答都没问题。如果是在面试过程中,还是得仔细想想如何去回答比较.

2021-09-06 23:25:03 2892 1

原创 面试高频题:讲讲项目中的技术难点?

原创:猿天地(微信公众号 ID:cxytiandi),欢迎分享,转载请保留出处。相信很多人都有类似的经历,在面试快要结束的时候经常会被问到一个问题:讲讲项目中的技术难点?这是一个比较开放的问题,首先它没有固定的答案,因为每个人做过的项目不同,使用的框架不同,对应的架构不同,自然遇到的技术难点也不同。1. 一定要真实在回答这个问题的时候,一定要仔细想想之前真实遇到的问题,不要随便编一个,这样很容易出问题,因为面试官会顺着细节一层层的问下去,如果你是编出来的,到最后就圆不回去了。举个例子:求职者.

2021-07-17 14:26:55 2973

原创 宝,我今天CR了,C的什么R? 走过场的CR

原创:猿天地(微信公众号ID:cxytiandi),欢迎分享,转载请保留出处。CodeReview我相信目前很多公司都会有这么一个流程,关键是这个流程有没有用就很难讲。主要还是取决于你对CR的理解以及有没有真正的去落地CR,去重视CR带来的隐藏价值点。正好最近也是有人在问我CR相关的问题,他们也要开始做CR了,想了解下有没有最佳实践之类的。所以今天跟大家聊聊CR这个话题,我说的也不一定都是对的,仅供参考哈。其实说实话,我觉得CR不存在什么最佳实践。因为每个公司或者说每个团队所进行的方式都会不一样,.

2021-06-26 14:54:58 322

原创 被监控轰炸了,不得不使出绝招

原创:猿天地(微信公众号ID:cxytiandi),欢迎分享,转载请保留出处。监控这个话题永远都不会过时,之前也有跟大家聊过监控的内容,以及如何快速实现监控满足日常需求。比如基于日志告警,基于全局异常处理器告警,基于Cat,Prometheus,Sentry等告警。无论公司是什么规模,创业小公司,稳定大公司,你都需要做监控的呀。特别是大公司的监控做的更全,也更在意监控这件事情。小公司相对来说会好点,因为业务可能还不是很稳定,用户少,出故障就出呗,能修复就行。监控的痛点有监控总比没监控要强吧,但是.

2021-06-19 14:31:34 343

原创 解决甩锅的一大难题,就是留个凭证

原创:猿天地(微信公众号ID:cxytiandi),欢迎分享,转载请保留出处。在多个团队之间的一些业务关联上,内部可以Rpc的方式进行交互。某些业务其实不需要强关联,这个时候就会用消息队列进行解耦操作。比如下单后加积分,发短信通知的这类操作。在用消息队列的时候,我们最需要关注的一个问题就是消息会不会丢失?这里的丢失指的就是要么你程序有问题,没有发送出去。要么发送出去了,但是在某个节点上消息丢掉了,导致消费方没有收到你发送的消息,从而引发业务问题。对于消息丢失,有很多的解决方案。本文不聊怎么在技术.

2021-06-05 20:28:52 280 2

原创 后期数据库主从架构的痛点,真的痛

原创:猿天地(微信公众号ID:cxytiandi),欢迎分享,转载请保留出处。读写分离是什么?读写分离的作用就不讲了,如果有不了解的同学可以自己去搜索资料进行了解。或者查看我之前的文章读写分离。一开始的场景肯定都基于主库去做增删改查的操作,等后面压力慢慢上来后才会考虑加数据库的从节点,通过读写分离的方式来提高查询的性能。首先读写分离默认查询都是走从节点的。从我们的使用习惯或者业务的场景来说,查询的场景是大于增删改的。所以我们会在需要走主库进行数据操作的业务场景下,手动去控制这条Sql要去主库.

2021-05-22 17:42:28 187 1

原创 不看源码,怎么卷的过小年轻

原创:猿天地(微信公众号ID:cxytiandi),欢迎分享,转载请保留出处。在工作中,我相信很多人都有下面这样的感受:这谁的代码呀,看不下去了这破代码,一行注释也没有这代码,还没我写的好这代码,有bug吧这代码,。。。。。。。是不是很真实,我们往往在看别人代码的时候就会有上面这些想法。我认为主要的原因还是大部分看的都是业务代码,而且很多是多年积累下来的,也没有重构,然后一年年的堆逻辑,最后就变成shi山了。当然也有不少的人代码写的确实很好,简洁易懂,我们在看别人代码的时候要抱着学习.

2021-05-09 13:08:20 240 1

原创 太强大了,Feign对接YAPI实现自动Mock

原创:猿天地(微信公众号ID:cxytiandi),欢迎分享,转载请保留出处。前面我们介绍了在微服务架构下如何解决单测时 Mock 的问题,通过 Mock 可以在单测时不依赖其他服务的实现。在文章最后我也给大家提供了一个思考题:是不是可以模拟前端对后端的处理方式,走 Yapi 的 Mock 功能? 这样就不用自己手动的对每个接口去 Mock 了。首先我们需要定义一个 Mock 的配置类,用于配置哪些远程调用需要进行 Mock。@Data@Configuration@ConfigurationP.

2021-05-09 13:07:12 758 1

原创 微服务接口单测依赖问题一次性搞定

在微服务架构中,服务之间的依赖是很常见的事情。在开发过程中都是并行开发的,前端会依赖后端的接口,后端也有可能会依赖其他后端服务的接口。项目整体提测后是没有问题的,因为大家都开发完了,也会同时部署到测试环境中。但是在开发过程中需要进行单测,单测的时候会依赖其他的服务,这个时候就需要解决这个依赖问题。前端依赖后端接口前端依赖后端接口,一般会提前将接口定义好,然后拉上前端同学一起评审。如果没有问题就各自去开发,那么前端同学在自测的时候是需要数据的,这个时候可以采用 Mock 的方式提供数据。关于 Mock

2021-04-18 22:05:05 401 1

原创 monkey-api-encrypt又增强了一个实用功能

框架主页:https://github.com/yinjihuan/monkey-api-encrypt背景有阵子没更新 monkey-api-encrypt 这个框架了,然后看了下 Github 上一些用户提的问题,挑了一个比较实用的进行了修复。说问题之前先简单的讲下 monkey-api-encrypt 的原理,目前 monkey-api-encrypt 中核心部分就是用了 javax.servlet.Filter 来对数据进行加解密的处理,实现也比较简单。唯一要注意的就是在 Filter 中如

2021-04-10 15:49:12 517

原创 慌了,老大让我将线上的服务器升配,咋搞?

在业务高速发展的时候,后端的压力慢慢变大,服务器扩容在所难免。今天就聊聊扩容相关的问题。首先我们看数据库的扩容,到底是加实例还是直接升配?在创业初期,基本上都是单库的形式。比如最开始是4C8G的配置,到了某天数据库扛不住了,但是数据量其实没那么大,只是请求量上来了而已,或者由于研发写了很多复杂的Sql导致数据库性能下降了。数据库加实例这个时候最快的解决方式就是扩容了,首先我们来看加实例的方式,比如我们可以加N个从节点来提高查询的性能,可以对库进行垂直拆分或者水平拆分。以上这些都是提高性能的方式,但

2021-04-01 12:57:34 8609 4

原创 面试官再问你 ThreadLocal,就这样狠狠 “怼” 回去!

本文大纲用过ThreadLocal吗?在什么场景下会使用ThreadLocal讲讲ThreadLocal的原理吧!使用ThreadLocal有什么需要注意的吗?有什么方式能提高ThreadLocal的性能吗?如何将ThreadLocal的数据传递到子线程中?线程池中如何实现ThreadLocal的数据传递?用过ThreadLocal吗?在什么场景下会使用ThreadLocal。这个回答一定要足够自信:必须用过啊,无论是在平时的业务开发过程中会用到,其他很多三方框架中也都用到了Thread

2021-03-25 12:52:23 375

原创 Spring Cloud 2020: Hystrix不生效怪我咯

好像没写相关的文章了,正好最近有朋友问我一些关于新版本中遇到的问题。2020.0.1这个版本是目前最新的版本,也是变动最大的一个版本。最大的变动莫过于将Netflix OSS的组件进行了移除操作。今天的问题也是跟这个有关系,大家通过标题就可以知道。虽然移除了Netflix的组件,但是对于初学者来说,市面上大部分书籍或者文章都是老的版本,也都是用的Netflix里面的组件。在学习的时候自然的选择了最新的版本,但是没有仔细的去看官方文档,也不知道最新版已经进行了移除,在用的时候还是按照老版本的方式去使用这些

2021-03-19 14:04:20 1302 2

原创 主动做了业务监控,产品经理对我竖起大拇指

监控,一直是个可以聊很久的话题。除了系统监控,还有一个往往容易被忽略,今天我们就来聊聊这个容易忽略的业务监控。监控什么?作为开发人员,不仅仅是把功能开发出来就行了,对于你负责的产品或者模块,你需要对它有足够的了解,时时刻刻需要关注着,要有初恋的那种感觉才行。以电商最常见的下单功能来说,比如我想知道下单的成功率多少,下单的平均耗时,下单失败中有多少是因为库存不足下单失败的等等这类相关的信息。有了这些业务指标信息,你就能知道你负责的产品现状是什么样的,以及你需要做哪些改进。至于要监控哪些指标,得跟着你

2021-03-04 15:12:58 2014 9

原创 用了很多年Dubbo,连Dubbo线程池监控都不知道,觉得自己很厉害?

前言micrometer中自带了很多其他框架的指标信息,可以很方便的通过prometheus进行采集和监控,常用的有JVM的信息,Http请求的信息,Tomcat线程的信息等。对于一些比较活跃的框架,有些还是不支持的,比如Dubbo。如果想监控Dubbo的一些指标,比如线程池的状况,我们需要手动去扩展,输出对应的线程池指标才行。在这种情况下,肯定是没什么思路的,因为你不知道怎么去扩展,下面给大家介绍去做一件事情之前的思考,方式方法很重要。Dubbo有没有现成的实现?参考micrometer中指标

2021-02-07 19:01:27 668

原创 Prometheus为你的SpringBoot应用保驾护航

前面我们介绍了Prometheus的作用和整体的架构,相信大家对Prometheus有了一定的了解。具体可以查看这篇文章:https://mp.weixin.qq.com/s/QoAs0-AYy8krWTa3HbmJZA今天着重介绍下如何在项目中将Prometheus用起来,结合漂亮的图表做数据展示,真的非常帅气。使用之前先介绍一个Micrometer,Micrometer 是一款监控指标的度量类库,提供了对各种指标的监控。比如JVM, 线程池,数据库连接池等。官方网站:https://microm

2021-02-01 14:00:53 318

原创 在冷风中我凌乱了半小时,只因健康码刷不出来

聊聊小背景前几天的早晨我早写字楼门口干等了半小时,背后的原因竟然是健康码的二维码刷不出来,保安小哥还一直跟我讲,支付宝出不来你用微信啊,用微信啊。。他们用的相同的接口,我用微信有卵用啊,冷风中我甩了甩仅有的几根秀发,扬长而去。。。作为程序员的我就开始了内心的吐槽大会:这咋做的啊,不行呀,这就打不开了,肯定没做优化,肯定没用缓存,肯定没做压力测试。。。。。下面作为技术的视角来分析下这个场景的实现,以及可以怎么去优化。这只是我YY哈,真实场景别人是怎么实现的我也不清楚哈。需求剖析每个人都有一个对应的

2021-01-26 20:40:05 4993 20

原创 ElasticSearch索引升级的小妙招

ElasticSearch在使用的时候最麻烦的一点就是重建索引了,比如你改了数据类型那么就得重建索引。为了不影响当前正在使用的场景,需要有一个方案能够平滑升级。大部分的资料都讲的是用ElasticSearch alias的方式来实现,今天我们讲下结合配置中心来实现。划重点:配置中心需要有2个配置:orderIndexNameQuery:orderorderIndexNameJob: order比如刚开始索引是order, 我们可以为这个索引进行升级,就跟API一样,增加版本的概念。比如在索引名

2021-01-22 12:45:55 351

原创 有了链路日志增强,排查Bug小意思啦!

在工作中,相信大家最怕的一件事就是听到有人在工作群艾特你:某某功能报错啦。。。然后你就得屁颠屁颠的去服务器看日志,日志量少还好点,多的话找起来太麻烦了。不太容易直接定位到关键地方。东找找西找找,好不容易找到了报错的信息,却不知道当时的参数信息是什么,也不太好复现,太难了。。改完还得写故障报告,美好的一天又没了。要解决这类的痛点需要做下面几件事情:日志收集异常告警日志增加链路API响应增加traceId异常时打印当前报错方法的参数支持调试模式日志收集要解决的第一个问题就是日志的集中

2021-01-18 12:55:34 500

原创 写了一个慢接口,年终妥妥的325

一个项目要想抗住越大的压力,那么每个API都得在最短的时间内响应,这样吞吐量才高。在很多时候,开发压根没有去做过优化,等到某天压力上来时,系统就扛不住了。举一个最常见的例子:大家上班都会做地铁(土豪可以开车哈)吧,地铁都有固定的几个入口,每个入口有几个固定的闸机可以扫码进入。如果每个人扫码进站的时间都控制在2秒内,那么一个闸机一分钟可以过30个人。如果有一个人他在那磨蹭半天,花了20秒,也就是这个闸机这一分钟只能过21个人,吞吐量立马就下降了。这种生活中的案例在程序的世界中也是同样适用的,而且是一

2021-01-07 12:36:22 280

原创 让API并行调用变得如丝般顺滑的绝招

当数据量较大的时候,都会通过分库分表来拆分,分担读写的压力。分库分表后比较麻烦的就是查询的问题,如果不是直接根据分片键去查询的话,需要对多个表进行查询。在一些复杂的业务场景下,比如订单搜索,除了订单号,用户,商家 这些常用的搜索条件,可能还有时间,商品等等。目前常见的做法将数据同步到ES这类搜索框架中进行查询,然后通过搜出来的结果,一般是主键ID, 再去具体的数据表中查询完整的数据,组装返回给调用方。比如下面这段代码,首先查询出文章信息,然后根据文章中的用户ID去查询用户的昵称。List<Ar

2020-12-29 12:17:18 11989 30

原创 作为业务开发就不需要懂Prometheus么

前言Prometheus:普罗米修斯,这名就有一种高大上的感觉。那么普罗米修斯到底是干嘛的呢?一句话总结:Prometheus 是一个开源的服务监控系统和时间序列数据库。抓住三个词,即 开源,监控,时间序列数据库。**开源:**意味着我们可以免费使用,有问题可以给社区提Issues寻求帮助,也可以自己提一些新功能或者Bug修复的PR,共建强大的生态圈。**监控:**意味着普罗米修斯可以用于监控场景,监控我们的服务器,监控我们的数据库,监控我们的应用程序,它都用的上。**时间序列数据库:**维基百科

2020-12-21 20:24:36 518

原创 面试官:如果让你写个分布式配置中心,就问你慌不慌

前言一位读者朋友跟我反馈,能不能写一篇比较全的配置中心的文章。自己最近在面试过程中有被面试官问:如何设计一个配置中心? 这个话题,由于自己在工作中也没实际使用过配置中心,所以对于如何去设计是完全没有概念的。今天就给大家写一篇去配置中心需要考虑的点,我也不是什么配置中心开源项目的参与者,所以写出来的仅供大家参考。有必要重复造轮子吗?当面试官问你:如果让你写一个配置中心,说说你的设计思路? 首先我们要有自己的想法,虽然是在面试过程中的问题。我们也可以反问,市面上目前有几款很优秀的开源的配置中心,我们可以

2020-11-27 13:06:47 585

原创 天天说要做性能优化,到底在优化什么?

面试过程中经常被问到:你做过性能优化吗?优化了哪些方面?怎么做优化的?优化的效果如何?连环炮问下来,对于有做过优化的老司机来说,肯定能抗住。对于没有真正做过优化的小白来说,肯定扛不住这一系列的追问,最后只能以面试失败而告终。那么性能优化到底在优化什么呢?我们来盘点下一些常用的优化手段。SQL 优化当你开发的接口响应时间超过了 200ms 的时候就得优化了,当然 200ms 不是绝对值,具体还是看应用场景。以 App 举例,进一个页面调用 5 个接口(题外话:也可以做聚合),那么总共就是

2020-11-02 14:03:10 701 4

原创 想要做读写分离,送你一些小经验

读写分离是应用中提升数据访问性能最常见的一种技术,当用户量越来越多,访问量越来越大,单节点数据库难免会遇到性能瓶颈。很多场景基本上都是读多写少,所以增加多个从节点来分担主节点的压力自然是水到渠成的事情。在应用接入读写分离后,难免会有一些我们意料之外的问题,这篇文章主要给大家介绍下一些经常会遇到的问题,有其他的问题欢迎留言补充。分库分表之前的文章可以查看:http://mp.weixin.qq.com/mp/homepage?__biz=MzIwMDY0Nzk2Mw==&hid=4&sn=

2020-10-27 13:28:46 593

原创 通用的底层埋点都是怎么做的?

想要在程序里监控数据库的操作耗时,想要在底层框架中自动传递链路跟踪信息,这些需求经常会碰到,特别是在构建基础框架的时候。核心目标只有一个,那就是在底层封装好,不用上层使用人员关心。今天跟大家聊聊常用的底层扩展埋点方式是怎么处理的。框架自带扩展点如果你使用的框架在设计的时候,就预留了扩展点就很方便了。比如 Mybatis 的拦截器,我们可以在拦截器中对 Sql 进行监控,改写。比如阿里的 Sentinel 框架,可以通过 SPI 来扩展 Slot,调整编排顺序,新增自定义的 Slot 来实现限流告警等

2020-10-21 12:30:58 9198 4

原创 草率了,又一个Maven打包的问题

经常遇到 Maven 相关的问题,这是之前的文章:这个 Maven 依赖的问题,你敢说你没遇到过:https://mp.weixin.qq.com/s/SzBbDtyRUrk_7LH8SUbGXQMaven 快照版本要这样用才真的香!:https://mp.weixin.qq.com/s/S0X1qY4uRsAeaqiC80fyNA今天再来一个,首先看下错误信息,一看就很熟悉,都是老朋友了,还是曾经那个味道。Caused by: java.lang.ClassNotFoundException:

2020-10-12 12:43:58 856

原创 被产品经理怼了,线上出Bug为啥你不知道

前言前几天跟读者聊天,他说被产品经理给怼了。原因是线上出 Bug 了,最后是客户反馈才知道的。我就问他:你们是不是没做监控?读者:我们是刚成立的创业团队,目前最重要的就是堆功能,很多基础设施都没时间做。正所谓有多大的碗吃多少的饭,不要盲目追求规模大,很牛的那种方案,合适的就可以。监控亦是如此,小方案只要够用,能解决问题,也是非常不错的选择。下面给大家介绍一些常用的异常监控方式:最小成本化如果是刚成立的创业团队,可以用最小的实现成本来对系统的异常进行实时监控。所谓最小的实现成本,就是可以不用依赖

2020-09-23 13:03:56 724 2

原创 大写的服,看完这篇你还不懂RocketMQ算我输

目录RocketMQ介绍RocketMQ概念为什么要用RocketMQ?异步解耦削峰填谷分布式事务最终一致性数据分发RocketMQ架构RocketMQ消息类型普通消息顺序消息定时消息事务消息最佳实践消息重试消息过滤消费模式消费幂等本地事务消息封装参考代码RocketMQ 介绍Apache RocketMQ 是一款 低延迟、高并发、高可用、高可靠的分布式消息中间件。消息队列 RocketMQ 可为分布式应用系统提供异步解耦和削峰填谷的能力,同

2020-09-15 12:56:35 1372

原创 写一个通用的幂等组件,我觉得很有必要

本文目录背景简单幂等实现2.1 数据库记录判断2.2 并发问题解决通用幂等实现3.1 设计方案3.1.1 通用存储3.1.2 使用简单3.1.3 支持注解3.1.4 多级存储3.1.5 并发读写3.1.6 执行流程3.2 幂等接口3.3 幂等注解3.4 自动区分重复请求3.5 存储结构3.6 源码地址背景回答群友的问题:幂等有没有什么通用的方案和实践?关于什么是幂等,本文就不再阐述了。相信大家都知道,并且也都遇到过类似的问题以及有自己的一套解决方案。

2020-09-09 12:21:35 665 1

原创 如何将分布式锁封装的更优雅

分布式锁通常有很多选择,基于 Redis 的,基于 Zookeeper 的,基于数据库等等方案。Redis 用于缓存数据,在项目中都有使用,所以使用 Redis 来做分布式锁的会稍微多些。如果用 Redis 来做锁,可以直接用开源的方案,比如redisson。最常见的使用方式如下所示:RLock lock = redisson.getLock("anyLock");lock.lock();run();lock.unlock();获取锁对象,调用 lock()加锁,执行业务逻辑,调用 unl

2020-09-01 12:46:11 590

原创 哇,ElasticSearch多字段权重排序居然可以这么玩

背景读者提问:ES 的权重排序有没有示列,参考参考?刚好之前也稍微接触过,于是写了这篇文章,可以简单参考下。在很多复杂的业务场景下,排序的规则会比较复杂,单一的降序,升序无法满足日常需求。不过 ES 中提供了给文档加权重的方式来排序,还是挺好用的。首先初始化三条测试数据,方便查看效果:{ id: 1, title: "Java怎么学", type: 3, userId: 1, tags: [ "java" ], textContent: "我要学Java", status: 1

2020-08-27 13:01:18 3276 5

原创 JetCache埋点的骚操作,不服不行啊

阐述背景缓存是应对高并发绝对的利器,在很多业务场景允许的情况下,都可以使用缓存来提供性能。既然用了缓存,那对缓存进行监控必不可少。比如缓存加载耗时,新增耗时等。在 JetCache 中进行埋点操作,对于 Redis 的缓存没有问题,埋点之后的 Key 是完整的,完整的也就是 Cache 的 name+key,如下图:除了对 Redis 的缓存做埋点,还对本地 缓存 Caffeine 也做了埋点操作,然后发现 Caffeine 的埋点有问题,问题在于 Cache 的 name 丢失了,如下图:然

2020-08-17 13:06:48 807

原创 简直骚操作,ThreadLocal还能当缓存用

背景说明有朋友问我一个关于接口优化的问题,他的优化点很清晰,由于接口中调用了内部很多的 service 去组成了一个完成的业务功能。每个 service 中的逻辑都是独立的,这样就导致了很多查询是重复的,看下图你就明白了。上层查询传递下去对于这种场景最好的就是在上层将需要的数据查询出来,然后传递到下层去消费。这样就不用重复查询了。如果开始写代码的时候是这样做的没问题,但很多时候,之前写的时候都是独立的,或者复用的老逻辑,里面就是有独立的查询。如果要做优化就只能将老的方法重载一个,将需要的信息直

2020-08-10 12:59:10 1123

原创 谁说Cat不能做链路跟踪的,给我站出来

背景链路跟踪,我们有很多可选项。常见的有 zipkin,pinpoint,skywalking,jaeger 等。基本上都是根据谷歌的《Dapper 大规模分布式系统的跟踪系统》这篇论文发展出来的。今天讲下 Cat 里的链路跟踪要如何来实现,没用过 Cat 的同学可以查看我的这篇文章 《熬夜之作:一文带你了解 Cat 分布式监控》进行了解。在 Cat 中可以很方便的看到每个请求的总耗时以及业务操作,数据库操作的耗时情况。对于服务之间的调用也可以通过埋点的方式进行监控。如下图,可以看出请求内发起了一

2020-08-03 12:28:27 516

原创 恕我直言,我也是才知道ElasticSearch条件更新是这么玩的

背景ElasticSearch 的使用度越来越普及了,很多公司都在使用。有做日志搜索的,有做商品搜索的,有做订单搜索的。大部分使用场景都是通过程序定期去导入数据到 ElasticSearch 中,或者通过 CDC 的方式来构建索引。在这种场景下,更新数据都是单条更新,比如 ID=1 的数据发生了修改操作,那么就会把 ElasticSearch 中 ID=1 的这条数据更新下。但有些场景下需要根据条件同时更新多条数据,就像 Mysql 中我们使用 Update Table Set Name=XXX wh

2020-07-29 12:59:06 1554

原创 分布式ID生成服务,真的有必要搞一个

目录阐述背景Leaf snowflake 模式介绍Leaf segment 模式介绍Leaf 改造支持RPC阐述背景不吹嘘,不夸张,项目中用到ID生成的场景确实挺多。比如业务要做幂等的时候,如果没有合适的业务字段去做唯一标识,那就需要单独生成一个唯一的标识,这个场景相信大家不陌生。很多时候为了涂方便可能就是写一个简单的ID生成工具类,直接开用。做的好点的可能单独出一个Jar包让其他项目依赖,做的不好的很有可能就是Copy了N份一样的代码。单独搞一个独立的ID生成服务非常有必要,当然我们也

2020-07-22 11:59:48 712

原创 Dubbo测试环境服务调用隔离这么玩对么

背景阐述前几天,有位同学问我一个关于 Dubbo 的问题。他的诉求是这样子的:诉求一第一个诉求是本地开发的时候想自己调用自己的服务,比如自己在改 A 服务,然后出问题了,本地再启动一个 B 服务,A 服务调用 B 服务直接排查问题。目前的问题是用的同一个注册中心,所以会调用到其他的服务实例。还有就是去网上找了一些文章的资料,按照资料上的配置没有效果,也就是在@Reference 配置 url 来指定调用的服务地址。配置如下:@Reference(url="dubbo://localhost:2

2020-07-15 13:07:08 698

原创 Kitty中的动态线程池支持Nacos,Apollo多配置中心了

目录回顾昨日nacos集成Spring Cloud Alibaba 方式Nacos Spring Boot 方式Apollo集成自研配置中心对接无配置中心对接实现源码分析兼容Apollo和Nacos NoClassDefFoundErrorApollo自动刷新问题回顾昨日上篇文章 《一时技痒,撸了个动态线程池,源码放Github了》(https://mp.weixin.qq.com/s/JM9idgFPZGkRAdCpw0NaKw)发出后很多读者私下问我这个能不能用到

2020-07-08 13:31:39 815

原创 嘘!异步事件这样用真的好么?

故事背景今年年初的时候写了一篇文章 《围观:基于事件机制的内部解耦之心路历程》。这篇文章主要讲的是用 ES 数据异构的场景。程序订阅 Mysql Binlog 的变更,然后程序内部使用 Spring Event 来分发具体的事件,因为一个表的数据变更可能会需要更新多个 ES 索引。为了方便大家理解我把之前方案的图片复制过来了,如下:上图的方案存在一个问题,就是我们今天文章要聊的内容。这个问题就是当 MQ Consumer 收到消息后,就直接发布 Event 了,如果是同步的,没有问题。如果某个 E

2020-06-29 13:11:31 572

登陆拦截器

拦截未登录的用户,使用spring mvc的拦截器来实现这个功能

2015-12-05

FreeMarker中文版

FreeMarker是用来生成html页面的模板,和jsp差不多。这个是中文版

2013-11-01

java反编译

能够将编译后的class文件还原为.java文件

2013-06-20

Server2008安装步骤

SQL Server2008安装步骤\SQL_Server_2008安装图解--配置流程-简单使用

2013-06-20

cxf所要用的jar包

这是一个jar包集合,是使用cxf开发所需要的jar包。如果你需要,就下载去用吧!

2013-06-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除