挨踢部落是为核心开发者提供深度技术交流,解决开发需求,资源共享的服务社群。基于此社群,我们邀请了业界技术大咖对开发需求进行一对一突破,解除开发过程中的绊脚石。以最专业、最高效的答复为开发者解决开发难题。
消息队列
话题关键词:消息队列、索引、App、路由、接口
部落阵容:51CTO管理团队;
面向对象:移动开发者、IT运维、数据分析师
参与方式:加入51CTO开发者QQ交流群(群号370892523(已满)、请加312724475),有任何技术问题,在群里提问,或发给群主小官。
活动详情:
重庆-小包-Android:我一运行就报这个错,等待程序接入,这是什么问题?
成都-恩威-云计算:看一下防火墙或者安全规则是否拦截了?打开AndroidManifest.xml代码文件,注释掉或者删除掉这行:
<uses-sdk android:minSdkVersion="8" /> 即可。
吉林-初见-SE:创建的索引,查询确实变快了,不过1.6G的数据涨了1G多,"变为2.6G了!这涨了一半的量对劲吗?我是插入完数据再添加的索引,很慢。表只有两个列,只给一个列添加了索引,下次试试创建表的时候添加索引有什么区别。
广州-大数据-益达:肯定不一样。建表加索引,是结构已经固定,比如采用B-tree,当数据来的时候,才添加索引到索引树里面了。你整体数据导入后再建索引,数据量越大,B-tree的构建时间越长。只是构建花时间,索引构建时机不同。一般设计在建表的时候就要建索引。设计合理,索引本身就会增加空间。可以理解成是以空间换时间的方式。不合理的索引设计,会导致索引成本增加。你这只有2列。索引主要是为了where条件里面的查询,可以了。
深圳-圳-Java:请求大神一个问题,Java消息队列主要用于什么场景?在程序中又起到了什么作用?
1>北京-阳阳-安卓:很明显,队列的长度有限,所以不适用于大数据量的,消息如果一直在队列中,得不到处理,也会有问题。发送消息的时候太多,处理不过来,就放到队列里,一个个处理。
2>广州-大数据-益达:最明显的一个作用,就是防止雪崩。某一时刻数据量突然增大,起到一个缓冲。
3>北京-arige-Android:一般都是异步的,不要求立即响应。打个比喻,你同时只能做一件事,但是你有一个ToDoList,每做完一个,在ToDoList中划掉一个,有新的分给你的任务,就放到ToDoList后面,这个ToDoList差不多就是一个队列了,队列就是一种数据结构,减轻的不止是数据库的压力。
4>成都-刘声杰-后端:消息队列可以用来实现一些懒操作,很多懒操作,我们都可以用消息队列来实现,当然还可以用来实现不同语言之间的通讯。懒操作是指一些不及时的操作,耗时的操作,比如发送邮件、图片处理、数据统计等等。这些不需要立即返回结果的,都可以先用消息队列保存起来,然后一个个的处理。比如发送邮件的操作,一种是多线程来处理,因为发送邮件需要时间, 如果有了消息队列,我们仅仅需要将发送邮件所需要的数据放在消息队列里面,然后另一个专门发送邮件的程序从消息队列里面一个个的获取,然后发送。而这时发送邮件的前端,仅仅只需要将数据保存到消息队列就返回了,不需要等邮件真正的发送出去才返回。你可以发邮件,但是有一个阻塞,如果你不用单独的线程,就像你要远程计算一张图片的大小一样,还是需要等图片下载完了,才能够获取大小,而这个图片下载需要时间,是对中间等待时间的优化。
深圳-圳-Java:有谁知道H5如何实现手机录音?
安徽-Coeus-PHP:需要第三方支持,要是微信开发简单点,直接调用微信的API就可以了,之前github上有record.js处理这个问题,可以搜一下。https://github.com/mattdiamond/Recorderjs看看行不行 。
安徽-Coeus-PHP:话说关于JAVA学习我有一个疑问,Android是属于Java WEB前端的范畴吗?
北京-arige-Android:不属于吧,Java只是一个语言而已,Android是一个系统,能写win应用的语言有很多,但是不能说WIN是哪个语言的一部分。
郑州-白杨-返校学习:曹老师,视觉分辨人脸技术和验证码图形自动填充属于一个理念吗?人脸检测使用什么框架的?
北京-曹洪伟-半吊子全栈工匠 :不一样。人脸检测 用的是 OpenCV3,计算机视觉领域著名的开源库。
上海-小杰-学生:请教下,我这个问题怎么调整?
1>安徽-coeus-PHP:是不是安装固态硬盘?要把BIOS的硬盘模式修改一下。
2>江苏-麦克-大数:是不是新的机器,BIOS有个模式改为传统就行了,目前应该是UEFI模式。
3>南昌-小草-设计/前端:不需要装固态,这种进PE修改一下硬盘分区,你只需要一个分区助手。应该是重装系统激活时候提示的吧,一般重新分区就好了。
郑州-哎呀-php:接口使用HTTPS时,App应用访问接口加上Token,是否需要再使用签名?对于一些不需要登录就能浏览的接口安全应该怎么限制呢?也就是不需要权限验证就能浏览,为了防止一些数据抓取,恶心行为,大神们谁给普及下。
1>北京-崔一凡-架构师:一般来说,有Token就可以了。看你的目的了,你的接口设计如果只能让你的App访问的话,你和App协商好交互协议就行了,后台和App约定秘钥,报文加密传。每次版本换一个,报文中约定版本号,根据版本号再做点手段。或者你可以设计的复杂点,比如App安装初始化的时候自动生成秘钥,发到后台保存起来,设备标记是不变的。反正无论你怎么考虑安全,都是能被破解的,我也没有万无一失的手段,只能多加几层验证机制,增加别人破解的成本。
2>安徽-Coeus-PHP:基本上这么做,分配app_key和app_secret,客户端通过app_key和app_secret去服务端验证并且换来具有失效性的token_code,然后客户端在通过token_code为凭证去取数据。
理论上可以给每个客户端都生成一个appid和secret。北京-晶晶-lT:我问下,公司网络,必须在这里配置一下才能上网,不配置的话不能上网,这里面怎么配置?比如现在我有20台电脑不想让他们上网,然后要是需要网络呢,就在这里配置一下就可以上网了。
1>云南-小元素-VBA:其实告诉你一个简单办法。MAC封锁就可以了,路由器有MAC封锁功能。可以制作网络IP冲突,找到局域网内能上网的某个IP,修改你计算机MAC,填写对方MAC就可以了,可以ping下你们LAN中哪个地址可ping通,然后arp -a 就能解析到对方的macle。也可以批量ping下你们公司的IP,写个bat脚本,或者直接下载MAC工具直接扫,这三个方法都可以。
2>北京-军阀-嵌入式:把你的IP地址改成他的,然后去路由器表里绑定MAC,如果对方是自动获取地址就不管用了。
北京-晶晶-lT:红线的这个路由器端口是不是要配置下?现在红线的这个我按照绿线那台配置的,不通,不知道哪里出错了。
1>北京-RK-Java:你用的是 Cisco Packet Tracer 吧,可以去51CTO看韩立刚老师的关于Packet Tracer的视频。
2>北京-小虫-安全:看看你的接口弄错了没,华为的模拟器和思科的模拟器配置都不一样,命令和思科的也不一样,都是相同的网络技术做基础,只是命令上会有一些区别,想学这个,要不就学思科,要不就学华为,命令没有必要死记硬背,用到的时候打个问号就都出来了。
问号出来的就是在当前地方可以输入那些命令,后面还有命令的解释,我记得华为的还有中文的解释。你输show ?就会出来show这个后面可以跟那些命令,比如你输入show和输入sh效果是一样的。
每个模式都有自己的命令,带#号的是进入特权模式,你找本CCNA的书看看,51CTO下载频道多的是。也可以看HCNA和HCNP,HCNA和HCNP是华为的,CCNA是思科的。敲命令没啥难度,先把理论看看,然后在敲命令做相关的实验,这样会比较好学,给个很简单的Cisco PT的实例教程,跟着上面敲一遍理解交换和路由理论。最后你也可以看看IE。
武汉-华子-运维:Dynamips,Boson NetSim,GNS3,Cisco设备模拟哪家强?有没有可以同时模拟Cisco和华为多厂家的?
广州-狄钦dQ-PHP:没有一个模拟器可以模拟所有的,掌握理论才是最重要的。PT是思科官方模拟器,图形化前端,简单易用,目前比较流行的有GNS, Dynamips。
您对这些解答方案是否仍有疑问?欢迎加51CTO开发者QQ交流群 312724475 讨论。
下期活动预告:5月9日
关键词:智能客服、深度学习、移动、云平台
活动回顾:挨踢部落第一期:Spark离线分析维度
转载于:https://blog.51cto.com/51ctoeditor/1934598