XRouter 一种基于Arouter的使用封装方案,实现对ARouter的Retrofit式使用. ARouter是阿里巴巴开源的Android平台中对页面.服务提供路由功能的中间件,没用过的务必点击传送门 基础功能 1. 依赖配置 android { defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments = [ moduleName : project.getName() ] } } }…
大家好,我是不才陈某~ 数据同步一直是一个令人头疼的问题.在业务量小,场景不多,数据量不大的情况下我们可能会选择在项目中直接写一些定时任务手动处理数据,例如从多个表将数据查出来,再汇总处理,再插入到相应的地方. 但是随着业务量增大,数据量变多以及各种复杂场景下的分库分表的实现,使数据同步变得越来越困难. 今天这篇文章使用阿里开源的中间件Canal解决数据增量同步的痛点. 文章目录如下: Canal是什么? canal译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量…
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680 背景 当项目的业务越来越复杂,业务线越来越多的时候,就需要按照业务线去分不同的模块去开发,这样专门的人负责专门的业务模块,最终上线由壳工程去负责进行组合打包各个module,完成业务的快速迭代.整个过程会涉及到各个模块间进行通信,比如订单模块和个人中心模块,可能会需要频繁的传递数据和页面跳转,这个时候怎么去处理呢?我们能想到的方案就是采用类名反射,来动态创建需要…
本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍),并准确定位系统瓶颈:我们应用里静态对象不是太多.有大量的业务线程在频繁创建一些生命周期很长的临时对象,代码里有问题.那么问题来了,如何在海量业务代码里边准确定位这些性能代码?本文将介绍如何使用阿里开源工具 TProfiler 来定位这些性能代码,成功解决掉了 GC 过于频繁的性能瓶颈,并最终在上次优化的基础…
阿里巴巴推出的AndFix框架 首次给出大家这个框架的地址:https://github.com/alibaba/AndFix 对源码比较感兴趣的同学们可以自行研究代码 AndFix原理介绍 AndFix,全称是Android hot-fix.是阿里开源的一个热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug.支持Android 2.3 到 6.0,并且支持arm 与 X86系统架构的设备.完美支持Dalvik与ART的Runtime,补丁文件是以 .apatch 结尾的文件 原理…
如何找到fastjson.jar这个阿里开源的jar包 转载 https://blog.csdn.net/AngelLover2017/article/details/84261261 Java编程中有时候会遇到JavaBean对象.json字符串.json对象之间互相转换的问题,网上找发现都是说用fastjson很方便,一大堆教程说如何使用fastjson,但是却找不到从哪里下载这个阿里的开源项目的jar包,搜索fastjson下载发现全是CSDN下载里的资源,必须吐槽一个5分的下载资源竟然要…
1.1 基本介绍 我们先去github上面了解它https://github.com/alibaba/AndFix 这里就有一个概念那就AndFix.apatch补丁用来修复方法,接下来我们看看到底是怎么实现的. 1.2 生成apatch包 假如我们收到了用户上传的崩溃信息,我们改完需要修复的Bug,这个时候就会有一个新的的apk我们就叫它为new.apk,原来的那个有Bug的apk你也有我们就叫它old.apk.这个时候我们就可以利用阿里github上面提供的工具生成一个xxxx.apatch…
上个月,阿里开源了一个名为Arthas的监控工具.恰逢近期自己在写多线程处理业务,由此想到了一个问题. 如果在本机开发调试,IDE可以看到当前的活动线程,例如IntelliJ IDEA,线程是运行还是休眠,在Debugger→Threads可以看到.倘若代码写完提交,到测试环境上构建,要怎样才能看到测试服务器上的线程运行情况呢? 前面客套完了,教程GitHub上面也有,这里主要讲下个人在部署的过程和踩到的坑.仅供参考. GitHub: https://github.com/alibaba/art…
技术交流群:233513714 本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍),并准确定位系统瓶颈:我们应用里静态对象不是太多.有大量的业务线程在频繁创建一些生命周期很长的临时对象,代码里有问题.那么问题来了,如何在海量业务代码里边准确定位这些性能代码?本文将介绍如何使用阿里开源工具 TProfiler 来定位这些性能代码,成功解决掉了 GC 过于频繁的…
原文地址:https://yq.aliyun.com/articles/694603 本文作者:阿里开源  本文来自云栖社区合作伙伴"阿里系统软件技术",了解相关信息可以关注" 阿里系统软件技术". 3 月 21 日北京阿里云峰会,阿里巴巴正式宣布对外开源 OpenJDK 长期支持版本 Alibaba Dragonwell.作为 Java 全球管理组织 Java Community Process (JCP) 的最高执行委员会的唯一中国代表,以及 Oracle 之外…
日有消息显示,阿里将于 21 日重磅发布其 OpenJDK 发行版 Alibaba Dragonwell. 我们知道 OpenJDK 是基于 GPL v2/Classpath Exception 的 JDK 开源版本,有许多公司都在 OpenJDK 的基础上提供了自己的发行版,比如 Oracle.AdoptOpenJDK.Azul.IBM 与 Red Hat,一般这些供应商会将自行衍生的 OpenJDK 版本加入一些商业/非商业支持选项. 去年 AWS 也推出了自己的 OpenJDK 发行版 C…
转载自:https://www.cnblogs.com/linhui0705/p/9795417.html 上个月,阿里开源了一个名为Arthas的监控工具.恰逢近期自己在写多线程处理业务,由此想到了一个问题. 如果在本机开发调试,IDE可以看到当前的活动线程,例如IntelliJ IDEA,线程是运行还是休眠,在Debugger→Threads可以看到.倘若代码写完提交,到测试环境上构建,要怎样才能看到测试服务器上的线程运行情况呢? 前面客套完了,教程GitHub上面也有,这里主要讲下个人在部…
阿里开源自用 OpenJDK 版本,Java 社区迎来中国力量 3 月 21 日,阿里巴巴将宣布开源 Alibaba Dragonwell.届时,开发者可通过阿里云开发者中心及 Github 社区下载使用.InfoQ 记者独家专访了阿里云智能基础产品事业部资深技术专家李三红.阿里云智能基础产品事业部研究员 Kingsum Chow (周经森),听他们如何看待 Alibaba Dragonwell 与 Java 归途. 作者 | 赵钰莹受访嘉宾 | 阿里云智能基础产品事业部资深技术专家 李三红阿里…
最炫的技术新知.最热门的大咖公开课.最有趣的开发者活动.最实用的工具干货,就在<开发者必读>! 每日集成开发者社区精品内容,你身边的技术资讯管家. 每日头条 阿里开源新一代 AI 算法模型,由达摩院90后科学家研发 近日,阿里 AI 开源了新一代人机对话模型 ESIM.该算法模型提出两年多,已被包括谷歌.facebook 在内的国际学术界在200多篇论文中引用,更曾在国际顶级对话系统评测大赛(DSTC7)上获得双料冠军,将人机对话准确率的世界纪录提升至94.1%. 最强干货 淘宝 TypeSc…
本文适合有 Java 基础知识的人群. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一款阿里开源的 Java 诊断利器 Arthas 项目-- Arthas 项目源码地址:https://github.com/alibaba/arthas 一.简介 为什么要用 Arthas?好多 Java 开发的小伙伴可能有遇到下面这些问题: 项目中导入了一个 jar 包的不同版本,那么这个类从哪个 jar 包加载的?线上环境为什么会报各种异常?…
前言 这是<Spring Cloud 进阶>专栏的第六篇文章,往期文章如下: 五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强? openFeign夺命连环9问,这谁受得了? 阿里面试这样问:Nacos.Apollo.Config配置中心如何选型?这10个维度告诉你! 阿里面试败北:5种微服务注册中心如何选型?这几个维度告诉你! 阿里限流神器Sentinel夺命连环 17 问? 这篇文章主要介绍一些目前主流的几种分布式解决方案以及阿里开源的一站式分布式解决方案Seata. 文章有点长,耐…
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://pan.baidu.com/s/1eQCc69G 前言:上一章<WCFHosting服务主机的利用WCF服务通讯和实现思路 >中我们详细讲解了WCF服务主机的通讯功能,实现了客户端与服务端的通讯.光实现通讯功能还不够,中间件一定还要适合复杂的网络环境,这样增加了路由功能,还有系统性能问题那么中间件必须分布式部署,…
开源数据库中间件-MyCat产生的背景 如今随着互联网的发展,数据的量级也是成指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系型数据库已经无法满足快速查询与插入数据的需求.这个时候NoSQL的出现暂时解决了这一危机.它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升. 但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的.这个时候NoSQL肯定是无法满足的,所以还是需要使用关系型数据库.如何…
目录 概述 gin.Logger() 自定义 Logger() 源码地址 go-gin-api 系列文章 概述 首先同步下项目概况: 上篇文章分享了,规划项目目录和参数验证,其中参数验证使用的是 validator.v8 版本,现已更新到 validator.v9 版本,最新代码查看 github 即可. 这篇文章咱们分享:路由中间件 - 日志记录. 日志是特别重要的一个东西,方便我们对问题进行排查,这篇文章我们实现将日志记录到文本文件中. 这是我规划的,需要记录的参数: - request 请…
概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - 日志记录,这篇文章咱们分享:路由中间件 - 捕获异常.当系统发生异常时,提示 "系统异常,请联系管理员!",同时并发送 panic 告警邮件. 什么是异常? 在 Go 中异常就是 panic,它是在程序运行的时候抛出的,当 panic 抛出之后,如果在程序里没有添加任何保护措施的话,控制台就会在打印出 panic 的详细情况,然后终止运行. 我们可以将 panic 分为两种: 一种是有意抛出的,比如, panic("…
概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - 捕获异常,这篇文章咱们分享:路由中间件 - Jaeger 链路追踪. 啥是链路追踪? 我理解链路追踪其实是为微服务架构提供服务的,当一个请求中,请求了多个服务单元,如果请求出现了错误或异常,很难去定位是哪个服务出了问题,这时就需要链路追踪. 咱们先看一张图: 这张图的调用链还比较清晰,咱们想象一下,随着服务的越来越多,服务与服务之间调用关系也越来越多,可能就会发展成下图的情况. 这调用关系真的是... 看到这,我的内心是崩溃的. 那么问…
概述 首先同步下项目概况: 上篇文章分享了,规划项目目录和参数验证,其中参数验证使用的是 validator.v8 版本,现已更新到 validator.v9 版本,最新代码查看 github 即可. 这篇文章咱们分享:路由中间件 - 日志记录. 日志是特别重要的一个东西,方便我们对问题进行排查,这篇文章我们实现将日志记录到文本文件中. 这是我规划的,需要记录的参数: - request 请求数据 - request_time - request_method - request_uri - r…
概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - 日志记录,这篇文章咱们分享:路由中间件 - 捕获异常. 当系统发生异常时,提示 “系统异常,请联系管理员!”,并发送 panic 告警邮件.什么是异常? 在 Go 中异常就是 panic,它是在程序运行的时候抛出的,当 panic 抛出之后,如果在程序里没有添加任何保护措施的话,控制台就会在打印出 panic 的详细情况,然后终止运行. 我们可以将 panic 分为两种: 一种是有意抛出的,比如, panic("自定义的 panic 信…
前言 注意:旧文章转成markdown格式. 跟大家聊一个中间件,叫做路由中间件,它并非是connect中内置的中间件,而是在express中集成进去的. 显而易见,该中间件的用途就是 ------ 路由分发 ,表面上看它的路由机制有点像Backbone.Router,实际上它的实现要比Backbone.Router复杂的多,功能也相应地要强很多. 它可以做到: 根据http采用不同的请求方法来采用不同的路由(如:get,post等) 根据请求的url与path生成的正则表达式进行匹配的结果进行…
路由中间件必须通过app挂载到对应的路由上,如: var express = require('express'); var router = express.Router(); var app = express(); app.use('/test',router); //将router路由挂载到/test路径上 //将router中间件栈挂载到/test/xxx路径上,所有匹配该路径的都会执行这个中间件栈 router.use('/:id',function(req,res,next){ c…
express4.x 中一个路由中间件可以挂载到多个路由上,一个路由也可以绑定多个路由中间件,如: //多个路由匹配一个路由中间件 app.use(['/gre+t', '/hel{2}o'], greet); var greet = express.Router(); greet.get('/jp', function (req, res) { console.log(req.baseUrl); // /greet res.send('Konichiwa!'); }); app.use('/g…
[DOC] 概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - Jaeger 链路追踪(理论篇),这篇文章咱们接着分享:路由中间件 - Jaeger 链路追踪(实战篇). 这篇文章,确实让大家久等了,主要是里面有一些技术点都是刚刚研究的,没有存货. 先看下咱们要实现的东西: API 调用了 5 个服务,其中 4 个 gRPC 服务,1 个 HTTP 服务,服务与服务之间又相互调用: Speak 服务,又调用了 Listen 服务 和 Sing 服务. Read 服务,又调用了 Liste…
目录 概览 MD5 组合 AES 对称加密 RSA 非对称加密 如何调用? 性能测试 PHP 与 Go 加密方法如何互通? 源码地址 go-gin-api 系列文章 概览 首先同步下项目概况: 上篇文章分享了,路由中间件 - Jaeger 链路追踪(实战篇),文章反响真是出乎意料, 「Go中国」 公众号也转发了,有很多朋友加我好友交流,直呼我大神,其实我哪是什么大神,只不过在本地实践了而已,对于 Go 语言的使用,我还是个新人,在这里感谢大家的厚爱! 这篇文章咱们分享:路由中间件 - 签名验证.…
概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - Jaeger 链路追踪(理论篇). 这篇文章咱们分享:路由中间件 - Jaeger 链路追踪(实战篇). 说实话,这篇文章确实让大家久等了,主要是里面有一些技术点都是刚刚研究的,没有存货. 先看下咱们要实现的东西: API 调用了 5 个服务,其中 4 个 gRPC 服务,1 个 HTTP 服务,服务与服务之间又相互调用: Speak 服务,又调用了 Listen 服务 和 Sing 服务. Read 服务,又调用了 Listen 服务…
概览 首先同步下项目概况: 上篇文章分享了,路由中间件 - Jaeger 链路追踪(实战篇),文章反响真是出乎意料, 「Go中国」 公众号也转发了,有很多朋友加我好友交流,直呼我大神,其实我哪是什么大神,只不过在本地实践了而已,对于 Go 语言的使用,我还是个新人,在这里感谢大家的厚爱!这篇文章咱们分享:路由中间件 - 签名验证. 为什么使用签名验证? 这个就不用多说了吧,主要是为了保证接口安全和识别调用方身份,基于这两点,咱们一起设计下签名. 调用方需要申请 App Key 和 App Sec…