自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (2)
  • 收藏
  • 关注

原创 科大讯飞语音识别技术实(yuan)战(ma)小结

1.准备工作1.1 开通讯飞开放平台账号https://www.xfyun.cn/可以领取免费套餐:https://www.xfyun.cn/free1.2 下载语音处理类库TarsosDSPhttps://0110.be/releases/TarsosDSP/TarsosDSP-2.4/TarsosDSP-2.4.jar建议发布到maven仓库,便于集成。参考命令(本地安装): mvn install:install-file -Dfile=F:\tarsosds...

2021-04-08 14:40:11 1455

原创 HttpClient通过正向代理访问HTTPS接口攻略

1.问题背景一些HTTPS接口提供方有IP白名单策略,接口调用方必须通过报备过的出口IP访问接口。对于部署在云主机上的接口调用方服务而言,这是比较不友好的。常用的方法是在指定出口IP的服务器上部署正向代理,接口调用方服务通过这个正向代理间接访问HTTPS接口。2.解决方案以HttpClient4.5.3为例。1)定义HttpClientBuilder HttpClientBuilder httpClientBuilder = HttpClientBuilder.create.

2021-03-03 15:30:01 2086 2

原创 HttpClient跳过SSL证书认证攻略

1.问题背景使用HttpClient访问某些Https协议的接口时,会抛出如下异常。javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to

2021-03-02 15:59:38 8539 4

原创 一些Java小技巧

1.jvm配置可信证书keytool -import -alias mycrt1-keystore ${JAVA_HOME}/jre/lib/security/cacerts -file /var/lib/prosody/abc1.crtkeytool -import -alias mycrt2 -keystore ${JAVA_HOME}/jre/lib/security/cacerts -file /var/lib/prosody/auth.abc1.crt

2021-01-27 10:04:19 95

原创 一些MySQL小技巧

1.彻底清理(慎用)rm -rf /var/lib/mysql/*vi /etc/my.cnf[mysqld]skip_grant_tables # 免密登录systemctl restart mysqld# 清除root密码>mysqlmysql> update mysql.user set authentication_string='' where user='root';mysql> update mysql.user set host = '%' ...

2021-01-27 10:01:43 79

原创 nginx配置跨域的简单方法

server { ... add_header Access-Control-Allow-Origin ${http_origin}; # 允许所有来源请求 add_header Access-Control-Allow-Methods *; # 允许所有方法跨域 add_header Access-Control-Allow-Headers ${http_access_control_request_headers}; # 允许所...

2020-06-02 15:32:38 306

原创 浅析如何做架构设计

系统高性能设计1)缓存使用缓存存储频繁访问的数据,以降低访问数据库、文件系统带来的延迟。其中,应用服务器本地缓存访问速度最快,但容量有限;分布式缓存(如Redis)访问速度次之,容量较大。为避免滥用缓存资源,可根据业务特性使用以下缓存过期策略:缓存自动过期 缓存触发过期(例如在用户登出系统时删除缓存的用户信息)2)负载均衡应用服务器部署多个节点(集群化),并利用负载均衡服务器(如Nginx)对外提供服务。3)读写分离、分库分表数...

2020-04-23 17:19:30 396

原创 记一次HttpClient SocketTimeoutException调查始末

1. 背景有两个服务,A和B。其中B部署了Nginx网关,A通过HttpClient调用B的接口。2. 问题现象1)A调用B的接口时偶尔抛出如下异常:java.net.SocketTimeoutException: Read timed out2)发生异常时,A的线程总是阻塞30秒3)A如果连续调用B的接口,比较稳定;隔一段时间调用一次,则容易发生异常3. 调查过程...

2020-03-12 17:31:19 1827

原创 自研半监督学习算法在短信分类中的实践

1. 背景本文仅探讨自然语言分类算法。1)有监督机器学习所谓有监督,是指给定一组人工标注好的样本(打好分类标签的文本),通过机器学习算法训练模型(比如朴素贝叶斯分类器),然后用训练好的模型对未知的文本进行分类。有监督机器学习的准确率受人工标注样本的数量和质量影响很大。在待分类实体总量较少(比如百万以下),且边界较为清晰(不同分类的实体间相似特征较少)时,可以达到很好的效果(90%+...

2019-11-29 16:27:49 394

原创 Apache Kylin踩坑记

1.Apache Kylin简介Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。这款软件目前广泛用于ebay、思科、雅虎、三星、百度、京东、网易、腾讯等大厂。其核心能力在于通过预先计算维表、事实表的各种组合...

2019-09-27 17:17:49 1637

原创 RPC参数校验框架实战:Dubbo + HibernateValidator

1.前言用过SpringMVC的参数校验框架的同学都知道,通过注解的方式,可以优雅的实现Restful接口的参数校验。例如: @NotBlank(message = "parameter appId required") String appId; 具体可以参考这篇文章:springmvc的数据校验的实现。那么基于Dubbo框架的RPC接口是否...

2019-08-14 16:58:05 1757

原创 微服务链路跟踪之SkyWalking实战小结

1.关于链路跟踪概念、原理可参考这两篇博文:各大厂分布式链路跟踪系统架构对比技术分析:搞懂链路追踪2.关于SkyWalking可参考这篇博文:skywalking 5.X 分布式链路跟踪 使用笔记3.SkyWalking下载地址http://skywalking.apache.org/downloads/4.SkyWalking服务端部署1)将SkyW...

2019-08-02 16:13:38 8695 1

原创 海量数据去重神器——布隆过滤器

1.前言大数据处理过程中,常常遇到去重的需求。例如,头条推荐系统要求对每个用户都不会出现重复推荐。传统的做法是,将所有的记录都采用类似HashSet的结构缓存起来,当需要判断新的数据是否重复时,通过集合的contains方法判断。当数据量达到亿级时,这种方法消耗的内存,以及计算的速度都是不可接受的。比如,对于头条推荐系统,假设注册用户为100万,平均每个用户每月推荐1000篇文...

2019-06-27 18:29:12 3312

原创 基于朴素贝叶斯的问题分类模型实战小结

1. 背景智能客服系统通过分析用户的自然语言,识别出问题分类,以及问题中的关键信息,自动对接后台的业务系统寻找答案,然后将答案反馈给用户。问题分类模型是其中至关重要的部分,问题分类的准确率直接影响到用户体验。2. 算法逻辑3. 关键技术点3.1 样本数据采集与格式化我们选择JSON作为样本数据的载体,一方面具备较好的可读性,另一方面相关的解析框架较为成熟。另外JS...

2019-06-06 16:04:52 712

原创 SpringBoot + Spark on Yan踩坑记

终极目标 采用SpringBoot集成SparkStreaming+Kafka+Redis+HDFS等组件,打包成jar(下文将之简称为“应用”),运行在Spark on Yan环境,实现离线+实时分布式计算。 本文中采用Spark on Yan Client模式发布应用。 参考文献:https://www.cnblogs.com/langfanyun/p/8040136.html ...

2019-05-31 13:53:09 4323 13

原创 定制python基础镜像的方法

前言 一些开源软件依赖于许多python库,如果采用容器化技术,事先配置好一个安装了所有依赖组件的基础容器镜像,这样在软件部署过程中,就不需要再为依赖的库发愁了。 制作基础镜像的步骤 1) 登陆到容器管理机器上,切换root账户 2) 在容器管理机器上创建工作目录,例如 my_work 3) 将依赖的python库制作成清单文件requirements.txt(具体语法参考pip命...

2019-04-26 17:03:58 1396

原创 SparkStreaming踩坑之Kafka偏移超出范围

1.问题描述由于程序宕机、误操作等原因,SparkStreaming保存的Kafka offset可能过期,超出有效范围,会导致连接Kafka失败,无法正常消费数据。2.对策通过Kafka低阶API获取最新的分区信息。3.具体步骤1)定义Kafka工具类 packagexxx.util; importjava.util.ArrayList;...

2019-03-21 16:52:15 1738

原创 SparkStreaming整合Redis

需求:希望在Spark RDD算子中访问Redis。思路:通过Broadcast变量将Redis配置信息广播到所有计算节点;通过lazy关键字实现Redis连接的延迟创建。具体步骤:1.定义Redis客户端包装类 packagexxx importredis.clients.jedis.{Jedis, JedisPool, JedisPoolConfi...

2019-03-21 16:01:34 2596

原创 SparkStreaming实战小结

1.Scala入门想用好Spark生态,必须学习Scala语言。想学习一门语言,必须先学会写hello world。传送门:Scala菜鸟教程2.Scala整合Maven1)下载一个支持Scala、Maven的IDE(如:Scala IDE for Eclipse)2)创建一个Maven工程3)选择合适的Scala版本,并在pom文件中定义scala.version属性4)...

2019-03-21 15:43:28 337

原创 SparkStreaming踩坑之各种异常的处理方法

1.运行时异常:找不到类,例如org.antlr.v4.runtime.xxx【原因】antlr是Spark依赖的开源语法解析器,其jar默认情况下并未加入classpath,因此运行时刻会找不到对应的类;另外还有janino,开源java编译器。【对策】方法1:将antlr等组件的jar加入系统classpath方法2:POM文件引入对应jar依赖,随微服务一起打包发布...

2019-02-14 11:29:43 2697

原创 SparkStreaming集合增量更新方法

1.背景描述我们有一个数据集合,需要定期进行大数据处理。从Kafka会不定期获取新的数据,需要补充到该集合中;每一条数据都有过期时间,过期后需要从集合中删除。2.思路1)整个数据集合采用RDD保存在Spark集群的内存中。2)在服务启动时从MongoDB获取初始数据集合。3)通过Kafka拉取的数据,生成小的RDD,与大的数据集合进行Union操作4)Union完成后根...

2019-02-14 11:28:58 871

原创 Scala + logback代码模板

1.POM文件模板 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org...

2019-01-30 11:12:48 1003 3

原创 SparkStreaming踩坑之Kafka重复消费

1.问题描述使用SparkStreaming连接Kafka的demo程序每次重启,都会从Kafka队列里第一条数据开始消费。修改enable.auto.commit相关参数都无效。2.原因分析demo程序使用"KafkaUtils.createDirectStream"创建Kafka输入流,此API内部使用了Kafka客户端低阶API,不支持offset自动提交(提交到zookee...

2019-01-30 11:03:05 3463 1

原创 解决Kafka重复消费问题

1.问题背景某服务(用了SpringBoot + spring-kafka)处理Kafka消息时,发现每条消息处理时间长达60+秒。几百条消息处理完后,又重新从第一条开始重复消费。2.原因分析Kafka消费者有两个配置参数:max.poll.interval.ms两次poll操作允许的最大时间间隔。单位毫秒。默认值300000(5分钟)。两次poll超过此时间间隔,Kafk...

2019-01-14 15:20:42 23444

原创 打印程序执行时间的小工具

/*note: This program is used to run a child program and caculate the time.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ date what to do

2016-04-12 16:09:58 398

原创 使用jar命令搜索jar中的class文件(shell)

#!/bin/bash#set -xfor FILE in `find $1 -name *.jar`  do  /root/jdkxxx/bin/jar -tf $FILE |grep $2  done

2016-04-12 16:03:20 1554

原创 使用7zip搜索jar中的class文件

for %i in (dir/b/s *.jar) do "C:\Program Files\7-Zip\7z.exe" l %i | findstr ABC.class

2016-04-12 15:58:56 696

原创 eclipse插件之plugin.xml

plugin.xml是什么?略去不提……1. "org.eclipse.ui.perspectives"写法: <perspective class="a.b.c.MyPerspective" icon="icon/myperspective.gif" id="a.b.c.MyPerspe

2016-04-12 13:38:22 1621

原创 Unsupported major.minor version 原理

常常看到这样的消息: Unsupported major.minor version 51.0原因:class文件编译时的jdk版本高于运行时的jdk版本。jdk向下兼容,向上不兼容,因此需要使用大于等于编译时版本的jdk才能正常运行。各版本信息如下:J2SE 8 = 52,J2SE 7 = 51,J2SE 6.0 = 50,J2SE 5.0 = 49,JDK 1.4

2016-04-12 11:14:57 230

原创 shell小技巧

1. 批量修改文件名for i in `find abc -name def.log`; do mv $i ${i}_bak201412111543; done

2016-04-12 11:12:09 228

原创 Solaris进程信息获取等技巧

1)要想知道某个端口被那个进程所使用,可以使用下面的方面得知:-bash-3.00# cd /proc-bash-3.00# for i in *doecho ------ process $i ---------pfiles $i | grep -i "port: 12345"done2)猜测是什么进程:pfiles $PID3)测试一

2016-04-12 11:10:05 496

原创 Win8安装.NET 3.5

Win8下默认不安装.NET Framework3.5。对应方法:1) “\sources\sxs”拷贝到本地路径(例:E:\sxs)2) 管理员身份启动cmd.exe,执行如下命令   dism.exe /online /enable-feature /featurename:NetFX3 /Source:E:\sxs

2016-04-12 11:06:29 232

原创 自动化测试之CYGWIN

前言跨平台的中间件往往需要分别为Linux/Solaris/Windows三个平台制作自动化测试集,以满足削减测试工数的需求。Linux/Solaris的差异性不是非常大,往往可以使用同一个测试集进行少量修改后适应不同的OS。Windows和Unix系列差异太大,以至于测试人员往往需要学习两种不同的脚本语言:shell和bat。对于已经拥有成熟的Unix平台测试集的产品,使用CYG

2016-04-12 11:03:51 540

原创 cygwin执行wmic时无响应的解决方法

在windows 2003下通过cygwin执行 wmic命令时,什么也不输出,一直等待的解决办法如下:给wmic一个输入就可以了:举例wmic ntevent where "(LogFile='Application' and TimeGenerated >= '20150408072259.0+540')" GET Message,SourceName,Ti

2016-04-12 10:59:29 973

原创 Shell脚本实现文件的互斥访问

1.前言Shell中似乎不存在通用的文件互斥访问机制。Linux下有flock命令,但Solaris没有。通过一番调查,笔者找到了一个简单易行的方法来弥补Shell的这一不足。 2.原理原理比较简单。主要是以下两个命令的配合使用:命令A:set -o noclobber命令B:echo XXX > filename

2016-04-12 10:56:07 2265

原创 eclipse插件的文件更新事件执行流程

org.eclipse.core.internal.events.NotificationManager.getDelta(ElementTree, int)      14step->ElementTree.hasChanges()    22step->org.eclipse.core.internal.events.ResourceDeltaFactory.computeDelta(

2016-04-12 10:43:25 294

原创 eclipse性能调查工具tptp的使用方法

1) tptp.runtime-TPTP-4.5.0  和  agntctrl.win_ia32-TPTP-4.5.0 拷贝到  eclipse\dropins2) cd  eclipse\dropins\agntctrl.win_ia32-TPTP-4.5.0\bin3) SetConfig.bat4) 按照画面提示进行设置5) ACServer.exe

2016-04-12 10:40:44 1190

原创 Linux下多线程实例

mydef.h#include #include #ifdef Solaris#include #include #endif#ifdef Linux#include #endif#define MY_ERROR(thread,func) \{\ printf("Error in thread\"%s\",func=\"%s\",errno=%d\n",thread

2016-04-11 13:51:18 237

原创 Linux下pipe通信实例

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int main(int argc,

2016-04-11 13:46:17 413

原创 基于神经网络和遗传算法的【手写数字识别】机器人的实现

写在前面这是又一次尝试与造物主沟通……结果虽然成功了,却似乎离造物主更遥远。咳咳……不管怎么说,凭着这个性能拙劣的程序,造出了一个能识别1到10这几个数字的机器人,还是有些许成就感的。什么是神经网络和遗传算法博主很懒,请各位看官自行查阅典籍……下面进入正题。基本框架

2016-01-06 17:51:25 1786

jdk-8u172-windows-x64

jdk-8u172-windows-x64

2021-01-11

C语言简单子集编译器(第一版)发布包

C语言简单子集编译器(第一版)发布包,使用方法:解压后见README。 关于C语言简单子集编译器的介绍、源码,传送门: http://blog.csdn.net/xianyuxiaoqiang/article/category/945346 注:Tools目录下需要拷贝MS-DOS的两个工具:masm.exe(Microsoft (R) Macro Assembler Version 5.00)和link.exe(Microsoft (R) Overlay Linker Version 3.60)

2011-12-05

空空如也

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

TA关注的人

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