②在做项目需求时候,遇到理解能力欠佳的人,沟通时容易被气到,影响自己的情绪,最后反倒还不能到达需要的效果。后面,每次到这种时候,我一般会借助一些纸质的、更加形象的东西,让双方都认同的、都能明白的一种方式来进行沟通,后面减少了很多不必须的麻烦。大家都知道,对于程序员来说,改需求是一件很痛苦的事情,所以前期的沟通工作很重要。
③还有一件事时,我以前的领导不太懂技术,所以每次出一个新的需求出来,总是要求我们在很短的时间内完成,完不成我们就会被怀疑能力有问题。当然,每个领导都希望自己的员工能够尽快的完成任务,降低成本,提高效率。这时候我会把我们的需求细化,把其中的重点、难点都列出来,做好时间规划,耐心的跟领导沟通,项目每个点的重要性和时间的花费比例,确保在这个规划的时间点内保质保量的完成任务。慢慢的也得到了领导的认可,其实领导也不是一味的不通情理,只要把东西计划好了,以最小的代价换取最高的价值,每个人都是很容易理解得。
70、Memcache缓存机制 以及分布式Memcached是一个高性能的分布式内存对象缓存系统。目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力,通过在内在里维护一个统一的巨大的的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等,简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
传统的查询方法是直接查询数据库,数据库将结果返回给查询语句,而当有Memcache中间缓存层时,查询的是Memcache缓存数据,下面详细了解Memcache各类数据操作原理:
1. 查询数据(select),首先通过指定的Key查询(get)Memcache中间缓存层数据,如果存在相对应数据,则直接获取出数据结果,查询过程完全不需要查询数据库。如果不存在,则查询MySQL数据库,并以key对应value的形式将查询结果存储在Memcache缓存数据中,然后将结果返回给查询语句。
2. 更新数据(update),首先更新数据,然后删除相关的memcache数据(delete)。
3. 增加数据(add),首先删除相关缓存数据,然后增加数据。
4. 删除数据(delete),删除数据,并删除Memcache数据。
memcache的应用场景有:
1.如果是一个小网站,pv值不大,就不考虑使用memcached
2.变化频繁,查询频繁,但是不一定写入数据库(适合memcached)(用户在线状态)
3.变化频繁,一变化就要入库(比如股票,金融)不适合memcached
4.变化不频繁,查询频繁,不管入不入库,都比较适合memcache,(新浪的新闻频道)
分布式是指将不同的业务分布在不同的地方(几台服务器)。 而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。
举例:就比如新浪网,访问的人多了,他可以做一个集群,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就交给哪一台去完成。而分布式,从窄意上理解,也跟集群差不多,但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。memcache的分布式算法取决于客户端,主要用取余算法和一致性哈希算法。
71、 直播是怎么实现的?①直播视频从技术架构角度主要分为三个部分:
直播视频采集SDK=>直播CDN(也即直播流分发加速)=》直播视频播放器SDK
②音视频处理的一般流程:
数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示
1、数据采集:摄像机及拾音器收集视频及音频数据,此时得到的为原始数据,要用到摄像机和拾音器。
2、数据编码:使用相关硬件或软件对音视频原始数据进行编码处理(数字化)及加工(如音视频混合、打包封装等),得到可用的音视频数据,编码的方式:CBR、VBR,编码格式分为音频和视频,音频一般有MP3、OGG、AAC,视频一般有TS、MKV、AVI、MP4等。
3、数据传输:将编码完成后的音视频数据进行传输,早期的音视频通过同轴电缆之类的线缆进行传输,IP网络发展后,使用IP网络优传输
涉及技术或协议:
传输协议:RTP与RTCP、RTSP、RTMP、HTTP、HLS(HTTP Live Streaming)等
控制信令:SIP和SDP、SNMP等
4、解码数据:
使用相关硬件或软件对接收到的编码后的音视频数据进行解码,得到可以直接显示的图像/声音
涉及技术或协议:
一般对应的编码器都会带有相应的解码器,也有一些第三方解码插件等
5、播放显示:
在显示器(电视、监视屏等)或扬声器(耳机、喇叭等)里,显示相应的图像画面或声音
涉及技术或协议:
显示器、扬声器、3D眼镜等
72 、用户不登录,怎么直接加入购物车的