- 博客(469)
- 资源 (19)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 Spark RDD 详细介绍
RDD(Resilent Distributed Datasets)俗称弹性分布式数据集,是Spark 底层的分布式存储的数据结构,可以说是 Spark 的核心, Spark API 的所有操作都是基于 RDD 的. 有容错机制并可以被并行操作的元素集合,具有只读、分区、容错、高效、无需物化、可以缓存、RDD依赖等特征。RDD只是数据集的抽象,分区内部并不会存储具体的数据。 R...
2018-09-13 17:47:58
1117
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java多线程--局部变量(threadlocal)
ThreadLocal是什么 ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是thread local variable(线程局部变量)。线程局部变量(ThreadLocal)的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量。 ThreadLocal的接口: Ob
2010-11-26 10:08:00
1224
原创 FreeSwitch通过WebRTC实现语音通话
FreeSwitch使用WebRTC 实现网页通话,本文主要使用JSSIP库,开发编写网页软电话的呼叫和接听实现。本文主要包括:FS的WebRTC配置和前端代码实现。
2024-08-27 16:39:27
261
原创 FreeSwitch使用HTTP服务接受话单
FreeSwitch 通过mod_format_cdr模块,把话单cdr通过http方式传递给后台服务器。后台服务根据话单和预设的短信模版实时触发短信(SMS)信息。本章主要介绍FreeSwitch+SMS系统实现批量外呼下的,挂机短信功能。
2024-08-27 15:20:00
282
原创 Freeswitch动态配置方案XML_CURL
mod_xml_curl模块主要实现一个集中管理配置的配置中心,统一管理所有fs的配置,并可以实现动态的修改。它由一台WEB 服务器提供服务,当有用户注册(或 INVITE)请求时,FreeSWITCH 向你的WEB服务器发送请求,通过一些类的业务逻辑,生成一个标准的XML文件。2,configuration每次要添加新的配置的时候,调用frees witch的一下命令,就会请求接口,把新的配置刷新到内存中:sofia profile external rescan。4,phrases,语音短语管理。
2024-08-15 23:05:20
645
原创 JavaESL实现FS的按键监听播放音频
以上方案只是简单的实现按键监听,主要还是通过命令主动外呼实现,一般的呼叫中心是通过客户的主动拨通座机号,然后实现实现按键的接听,现在实现通用版拨号接通以及监听用户相关按键事件。首先在deafult.xml或public.xml中增加拨号计划,本文主要监听1234拨号(客服机器人),实现不同按键下的音乐播放。有的小伙伴说,这种代码方式实现比较麻烦,也不够灵活,最好都能在配置中心实现。Jave ESl 通过内联接通FreeSwitch,订阅FS的相关事件,通过监听不同的按键实现不同音频的播放。
2024-08-13 12:32:53
191
原创 FS+Lua+TTS实现IVR(互动式语音应答)
IVR(Interactive Voice Response)即交互式语音应答,也就是我们说的电话语音菜单,可以使用预先录制的语音或者TTS进行自动应答,提供菜单导航,主要用于呼叫中心系统。我们主要介绍FreeSWITCH提供的IVR功能。
2024-08-13 07:46:58
295
原创 Java ESL连接FreeSwitch
主要通过Java ESL链接FreeSWITCH的简单例子,通过异步发送呼叫相关指令和监听FS的相关事件,为今后搭建呼叫中心或智能外呼做准备。
2024-08-12 13:46:08
442
原创 ESL介绍
ESL(Event Socket Layer)是一个用于连接FreeSWITCH的接口。它允许你订阅各种事件并在事件发生时接收通知。ESL的连接模式有多种,可以根据需求选择适合的方式进行连接。
2024-08-10 20:42:46
621
转载 Hystrix 使用指南(1):基本使用
一、前言现在分布式系统的规模不断增加,对可用性的要求也越来越高。在各种高可用设计模式中,熔断、隔离、降级是经常被使用的。而相关的技术,如 Hystrix,便成为最近的热点。从16年初开始,我所在的团队便开始应用 Hystrix。为了进一步推动系统可用性升级,普及 Hystrix 在团队内的使用,我便有了写一系列 Hystrix 相关的文章的想法。虽然 Hystrix 有着很详细的官方文...
2018-11-28 17:42:59
827
转载 redis基础知识
什么叫缓存 在开发网站的时候,如果有一些数据在短时间之内不会发生变化,而他们还要被频繁访问,为了提高用户的请求速度和降低网站的负载,就把这些数据放到一个读取速度更快的介质上(或者是通过较少的计算量就可以获得该数据),该行为就称作对数据的缓存。该介质可以是文件、数据库、内存。内存经常用于数据缓存。 缓存的两种形式 页面缓存:经常用在CMS内存管理系统里边,如新闻页面,内容主体单一集...
2018-11-27 17:26:05
484
转载 Redis在项目中的运用总结
1 概述Redis作为一款性能优异的内存数据库,在互联网公司有着多种应用场景,本文介绍笔者在项目中使用Redis的场景。主要从以下几个方面介绍:分布式锁接口限流器订单缓存Redis和DB数据一致性处理防止缓存穿透和雪崩分布式session共享2 分布式锁Redis实现分布式锁3 接口限流器Redis实现限流器4 订单缓存整个订单的存储结构如下:使用Redis...
2018-11-27 15:56:45
1559
转载 Redis生成主键的优点及与其他生成主键方式的对比
使用Redis生成主键的优点及与其他生成主键方式的对比Redis生成ID当使用数据库来生成ID性能不够要求的时候,我们可以尝试使用Redis来生成ID。这主要依赖于Redis是单线程的,所以也可以用生成全局唯一的ID。可以用Redis的原子操作 INCR和INCRBY来实现。可以使用Redis集群来获取更高的吞吐量。假如一个集群中有5台Redis。可以初始化每台Redis的值分别是1,2,3...
2018-11-27 14:27:33
2787
2
转载 【Http认证方式】——Basic认证
今天在访问请求:http://192.168.2.113:8080/geoserver/rest/workspaces时,浏览器弹出窗口需要输入用户名和密码 ,并且,如果不输入或者输入错误,浏览器返回 可以在火狐浏览器的网络监控这里看到请求的详细信息, 服务器会返回一个401 Unauthozied给客户端,并且在Response 的 header “WWW-Authentica...
2018-11-21 16:11:25
1328
转载 java中的302和sendRedirect的区别
java中有一个sendRedirect函数这个用于跳转到另外一个页面,这个实际上是一个302跳转,但是不完全等同于302跳转 点击(此处)折叠或打开response.sendRedirect("login.jsp"); 不等于 response.addHeader("location", "login.jsp"); response.setStatus(302);1.比...
2018-10-29 09:12:03
859
转载 SpringBoot项目如何进行打包部署
springboot的打包方式有很多种。有打成war的,有打成jar的,也有直接提交到github,通过jekins进行打包部署的。这里主要介绍如何打成jar进行部署。不推荐用war,因为springboot适合前后端分离,打成jar进行部署更合适。 首先需要在application.properties当中配置端口 server.port=8080# http://lo...
2018-10-28 16:02:14
423
转载 Memcached集群/分布式/高可用 及 Magent缓存代理搭建过程 详解
当网站访问量达到一定时,如何做Memcached集群,又如何高可用,是接下来要讨论的问题。有这么一段文字来描述“Memcached集群”Memcached如何处理容错的?不处理!:) 在memcached节点失效的情况下,集群没有必要做任何容错处理。如果发生了节点失效,应对的措施完全取决于用户。节点失效时,下面列出几种方案供您选择:* 忽略它! 在失效节点被恢复或替换之前,还有很...
2018-09-17 17:34:29
270
转载 memcached分布式实现原理
Memcache是该系统的项目名称,Memcached是该系统的主程序文件(字母d可以理解为daemon),以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,使用共享内存存取数据。正文 在高并发环境下,大量的读、写请求涌向数据库,此时磁盘IO将成为瓶颈,从而导致过高的响应延迟,因此缓存应运而生。无论是单机缓存还是分布式缓存都有其适应场景和优缺点,当今存在的缓存产品也是数不...
2018-09-17 17:11:09
330
转载 Memcached
数据库的前端缓存区文件系统内核缓冲区,位于物理内存的内核地址空间,所有对磁盘文件的读写操作都要经过它,也可以把它看作是磁盘的前端设备。 这块内核缓冲区实际上包括2个部分:读缓存区、写缓存区。读缓存区中保存着最近系统从磁盘上读取的数据,一旦下次需要读取这些数据的时候,内核将直接从这里获得,而不需访问磁盘。 写缓存区的目的主要是为了减少磁盘的物理写操作,内核缓区可以将多次写操作指令累计起来,...
2018-09-17 16:55:42
445
转载 Spark基础之shuffle原理分析
一 概述Shuffle是对数据重新组合和分配Shuffle就是对数据进行重组,由于分布式计算的特性和要求,在实现细节上更加繁琐和复杂在MapReduce框架,Shuffle是连接Map和Reduce之间的桥梁,Map阶段通过shuffle读取数据并输出到对应的Reduce;而Reduce阶段负责从Map端拉取数据并进行计算。在整个shuffle过程中,往往伴随着大量的磁盘和网络I/O。...
2018-09-14 16:40:18
239
转载 hadoop Map-Reduce入门讲解
Mapper和Reduce,则需要生成一个Map-Reduce得任务(Job),其基本包括以下三部分:输入的数据,也即需要处理的数据 Map-Reduce程序,也即上面实现的Mapper和Reducer 此任务的配置项JobConf欲配置JobConf,需要大致了解Hadoop运行job的基本原理:Hadoop将Job分成task进行处理,共两种task:map task和reduc...
2018-09-14 15:44:07
445
转载 SPARK资源参数调优
资源参数调优了解完了Spark作业运行的基本原理之后,对资源相关的参数就容易理解了。所谓的Spark资源参数调优,其实主要就是对Spark运行过程中各个使用资源的地方,通过调节各种参数,来优化资源使用的效率,从而提升Spark作业的执行性能。以下参数就是Spark中主要的资源参数,每个参数都对应着作业运行原理中的某个部分,我们同时也给出了一个调优的参考值。num-executors参数...
2018-09-14 15:43:01
309
转载 Spark Stage的划分
RDD之间有一系列的依赖关系,依赖关系又分为窄依赖和宽依赖。Spark中的Stage其实就是一组并行的任务,任务是一个个的task 。窄依赖父RDD和子RDD partition之间的关系是一对一的。或者父RDD一个partition只对应一个子RDD的partition情况下的父RDD和子RDD partition关系是多对一的。不会有shuffle的产生。父RDD的一个分区去到子RDD的...
2018-09-14 15:38:10
20804
5
原创 Spark宽窄依赖
Spark中RDD的高效与DAG图有着莫大的关系,在DAG调度中需要对计算过程划分stage,而划分依据就是RDD之间的依赖关系。针对不同的转换函数,RDD之间的依赖关系分类窄依赖(narrow dependency)和宽依赖(wide dependency, 也称 shuffle dependency).宽依赖与窄依赖窄依赖是指父RDD的每个分区只被子RDD的一个分区所使用,...
2018-09-13 18:49:02
464
原创 Spark Shuffle FetchFailedException
spark大规模数据处理中,有个比较常见的错误:org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 0ERROR shuffle.RetryingBlockFetcher: Failed to fetch block shuffle_0_1300_10...
2018-09-13 16:10:43
2940
转载 Sqoop学习之路
一、概述 二、工作机制 三、安装 1、前提概述 2、软件下载 3、安装步骤 四、Sqoop的基本命令 基本操作 示例 五、Sqoop的数据导入 1、从RDBMS导入到HDFS中 2、把MySQL数据库中的表数据导入到Hive中 3、把MySQL数据库中的表数据导入到hbase 正文回到顶部一、概述sqoop 是 apache 旗下一款...
2018-09-03 15:55:05
398
转载 Hive学习之路 (二十一)Hive 优化策略
目录一、Hadoop 框架计算特性 二、优化常用手段 三、排序选择 四、怎样做笛卡尔积 五、怎样写 in/exists 语句 六、设置合理的 maptask 数量 七、小文件合并 八、设置合理的 reduceTask 的数量 九、合并 MapReduce 操作 十、合理利用分桶:Bucketing 和 Sampling 十一、合理利用分区:Partition 十二、Jo...
2018-09-03 15:35:49
217
2
转载 Uber开源JVM Profiler,用以跟踪分布式Java虚拟机
6月下旬,Uber开源了一个分布式性能分析器,名为JVM Profiler。Uber搭建这一工具的目的是解决他们在使用Apache Spark框架过程中的资源配置问题。Apache Spark是一个非常流行的框架,主要用于处理大型数据流问题,这正是Uber所需要的。JVM Profiler是为Spark而建的,但它也可以被应用于任何基于JVM的服务或应用。Uber的需求是在运行在数以千计的机器...
2018-08-30 15:26:17
531
转载 MongoDB + Spark: 完整的大数据解决方案
时间 2016-09-02 17:57:23 MongoDB中文社区原文 http://www.mongoing.com/tj/mongodb_shanghai_spark主题 MongoDB Spark 大数据MongoDB上海的活动已经结束快1个月了,我们再来回顾一下TJ在大会上进行的精彩分享吧~ MongoDB + Spark: 完整的大数据计算解决方案。Spark介绍...
2018-08-30 15:11:11
265
转载 ETL讲解
https://www.cnblogs.com/yjd_hycf_space/p/7772722.htmlETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。...
2018-08-30 12:46:03
253
转载 AndroidHook机制——浅谈
前言在测试android过程中,能对函数进行hook能帮助更加深入的进行测试,本文简单介绍了hook框架xposed和frida,从简单的小例子做了简单的演示,算是自己的学习的过程,是个入门的过程。 xposed框架 xposed,主页:http://repo.xposed.info/module/de.robv.android.xposed.installer是个开源的框架,...
2018-08-16 09:04:05
1476
转载 AndroidHook机制——YAHFA
在Android Dalvik时代,最流行的Hook框架非Xposed莫属了。各种功能强大的Xposed插件极大地丰富了Android的可玩性,而对于安全研究人员来说,hook则是应用逆向工作中的一项非常有效的手段。但是,进入到ART时代后,情况逐渐发生了变化。Xposed框架对系统进行了较大的改动,因此其安装适配难度显著提高;另一方面,随着近年来热修复技术的兴起,各大国内厂商也纷纷推出了自己...
2018-08-16 09:03:52
4645
转载 AndroidHook机制——ART
0x00 前言之前一直都是在Dalvik 虚拟机上在折腾,从Android 4.4开始开始引入ART,到5.0已经成为默认选择。而且最近看到阿里开源的 Dexposed 框架,已经提供了对于android art 模式下的 hook 支持,所以对照着android art 部分的源码和之前 liang 大牛放出了hook代码研究了一下ART模式下的hook原理,做个简单的整理。关于androi...
2018-08-15 22:01:35
1135
转载 AndroidHook机制——应用换肤
Android系统使用了ClassLoader机制来进行Activity等组件的加载;apk被安装之后,APK文件的代码以及资源会被系统存放在固定的目录(比如/data/app/package_name/1.apk)系统在进行类加载的时候,会自动去这一个或者几个特定的路径来寻找这个类;但是系统并不知道存在于插件中的Activity组件的信息,插件可以是任意位置,甚至是网络,系统无法提前预知,因此正...
2018-08-15 21:56:57
1203
转载 AndroidHook机制——Activity的启动过程的入侵拦截
这篇文章主要讲解如何利用动态代理技术Hook掉系统的AMS服务,来实现拦截Activity的启动流程。代码量不是很多,为了更容易的理解,需要掌握JAVA的反射,动态代理技术,以及Activity的启动流程。 如果对上面的知识点有些遗忘,建议按需扫读下面三篇文章,否则跳过。Java 反射 Java 动态代理机制分析及扩展,第 1 部分 深入理解Activity启动流程(三)–Activit...
2018-08-15 21:52:39
912
转载 AndroidHook机制——入侵监听器ClickListener
背景需求如下,在不侵入业务代码的情况下监听所有的点击事件,并记录所有的点击数,用于统计热点页面和其他一些分析工作。仔细分析了下,主要涉及到2个问题:如何获取所有的带点击事件的View对象 不改动原来的业务代码,但是在原来点击事件的业务逻辑中加入新的逻辑,如点击数上传等最大的难点是怎么在不改变onclickListener->onclick(){}内部的代码块的同时,又能插入一段新...
2018-08-15 21:48:06
1698
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人