前言碎语 当企业应用进入分布式微服务时代,应用服务依赖会越来越多,skywalking可以很好的解决服务调用链路追踪的问题,而且基于java探针技术,基本对应用零侵入零耦合。 skywalking是什么,有什么用? Skywalking 是一个APM系统,即应用性能监控系统,为微服务架构和云原生架构系统设计。它通过探针自动收集所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking APM...
分布式任务调度xxl-job
前言碎语 在单机应用时期,任务调度一般都是基于spring schedule和集成quartz来实现的,当系统发展成分布式服务,应用多实例的时候,任务就会出现多次调用的问题,很多时候我们任务并不需要跑多次。解决方案有很多,最最简单粗暴的就是可以设置应用开关。其次就是集中式话任务管理调度。当然,quartz也有集群模式,但是基于api控制并不直观。下面介绍一个集中式的分布式任务调度...
IDEA实用插件推荐系列
前言碎语 IDEA 全称IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。本篇博文主要推荐博主切身使用的实用的插件。 zookeeper节点可视化插件 zookeeper有很多可视化的客户端应用,如zkui,zkweb,node-zk-browser等等,这些应...
记阿里Druid数据连接池引发的线上血案
前言碎语 事件起因:项目使用了activiti工作流,系统是由老的spring mvc项目改造成的spring boot项目,数据库链接池从dbcp切换到druid,新系统上线后,同事多次系统隔一段时间后数据查询就很慢,基本出不来。由此开始了线上bug排查之路。这个问题从一开始就模糊定位到数据库层面的问题,因为只有和数据相关的操作会很慢,其他服务不受影响,并且在中午休息时没有问题,在下午刚上班...
mysql日志binlog消费初体验
前言碎语 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅消费的业务,产出了canal项目。canal的原理很简单,就是如上图片所示 canal模拟mysql slave的交互协议,伪...
nodejs连接java工程dubbo服务
前言碎语 最近公司整体服务架构从MQ迁移到dubbo上,公司有部分项目使用了nodejs服务,故研究了下nodejs的dubbo客户端,以下使用 node-zookeeper-dubbo 客户端为网友提供,因 node-zookeeper-dubbo 本身项目使用的实例描述并不完备,对于非node专业来说,跑一个实例还是有点困难,在博主实践过程中,也遇到很多问题,固有此文,希望可以给同样需求的你一点帮助 开源地为:https://github.com/p412726700/no...
记公司项目架构升级DUBBO
接入前的话: 1.MQ 的好处 项目历史缘故,我们的远程交互除了 http 提供服务外,一直以来大部分的服务都是通过 MQ 的 message 来交互的, mq 性能支撑我们的业务没点问题,而且 mq 本身也支持高可用,横向扩展分布式部署也很方便,而且基于服务端的负载可以去中心化,不需要使用注册中心来提供服务发现。 2. 基于 MQ 服务的不足 但是为什么运行好好的服务需要改造呢?随着业务发展...
mysql查询下划线_需要做转义处理
问题:查询%_1时会把包含12,_12,6541_的数据全查出来 今天处理公司业务id时查询_1结尾的数据like “%_1”,把包含1的数据都查出来了。这是因为下划线也被当作特殊字符,做了任意匹配转换了,所以,要想匹配下划线,那么就需要“转义”一下。 方案:使用转义字符 1.使用使用Escape转义 示例: SELECT * FROM mytable WHERE col LIKE '%A#_B%' ESCAPE '#';SELECT * FROM mytable WHERE col LIKE '%A\_B%'; 其中第一行#...