• 关于

    分用可以做什么

    的搜索结果

回答

是不同的主体,可以做不同的备案。 关键看你们还做不做什么经营性备案、前置审批之类的事情。 ------------------------- 回 2楼(长城永不倒) 的帖子 那是可以的。 一般网站是没问题的, 但如果你有经营性备案等之类的要求,要具体去了解相关政策哈。 ------------------------- 回 4楼(长城永不倒) 的帖子 这个,一般情况下是没问题的,但碰到抽查,那就不好。 我不知道你的站的具体内容.....  你们整个集团用一个主域名,分公司用二级域名,还是每个分公司用不同的主域名? 二级域名是不需要备案的。 分公司主域名是要备案的,可以用集团的主体,备案的时候网站名、内容的填写,需要备案时和备案专员沟通。
云上珠玑 2019-12-02 00:47:01 0 浏览量 回答数 0

回答

是不同的主体,可以做不同的备案。 关键看你们还做不做什么经营性备案、前置审批之类的事情。 ------------------------- 回 2楼(长城永不倒) 的帖子 那是可以的。 一般网站是没问题的, 但如果你有经营性备案等之类的要求,要具体去了解相关政策哈。 ------------------------- 回 4楼(长城永不倒) 的帖子 这个,一般情况下是没问题的,但碰到抽查,那就不好。 我不知道你的站的具体内容.....  你们整个集团用一个主域名,分公司用二级域名,还是每个分公司用不同的主域名? 二级域名是不需要备案的。 分公司主域名是要备案的,可以用集团的主体,备案的时候网站名、内容的填写,需要备案时和备案专员沟通。
云上珠玑 2019-12-02 00:47:00 0 浏览量 回答数 0

问题

自己用NGINX做负载均衡可以吗

方案A:比如自己购买4台普通的阿里云服务器,然后用NGINX做负载均衡,比如图片和JS这些静态资源用2台服务器做轮询共同承担压力,比如PHP这些动态页面处理再用2台服务器做轮询共同承担...
什么名字啊 2019-12-01 21:13:27 5132 浏览量 回答数 3

回答

压测报告中,概览统计中会出现分位值,分位值有什么意义?又是如何计算的? 1. 分位值的意义是什么? 分位值即把所有的数值从小到大排序,取前 N% 位置的值,即为该分位的值。 一般用分位值来观察大部分用户数据,平均值会“削峰填谷”消减毛刺,同时高分位的稳定性可以忽略掉少量的长尾数据。 高分位数据不适用于全部的业务场景,例如金融支付行业,可能就会要求 100% 成功。 2. 分位值是如何计算的? 以 95 分位值为例: 将采集到的 100 个数据,从小到大排列,95 分位值就是取出第 95 个用户的数据做统计。 同理, 50 分位值就是第 50 个人的数据。
保持可爱mmm 2020-03-28 19:48:08 0 浏览量 回答数 0

回答

一定要先打好java语法和原理基础,这里推荐think in java。这里java基础包含了常用的集合类如hashMap,ArrayList,ConcurrentHashMap等等这样的源码。还要线程,并发相关的类,主要是concurrent包下面的类。语法ok了就可以继续深入学习JVM的内容了,推荐升入理解JAVA虚拟机然后就是各种中间件,要深入到原理级别,最好每个都买本书系统性的学习。如果redis要具体到有哪些数据类型,持久化方式,一致性hash怎么做、迁移怎么做、和其他同类型中间件的对比,各种场景适合什么。现在互联网公司动不动就是什么分布式,毕竟中国人口红利多,那就肯定是各种分布式的内容要了解,怎么分库分表,怎么拆分业务,用什么分布式服务。
lubby 2019-12-02 01:57:27 0 浏览量 回答数 0

回答

oracle 就能搞定,你关系型数据库转到hadoop你做好了面对各种BUG的准备吗? 你这需求无非就是数据库量大存储查询慢而已,上数据库集群就行了oracle完全可以搞定. 没必要上hadoop ######这个要分布的吧,不然数据量大肯定慢的######storm 或者 spark###### 引用来自“huan”的评论storm 或者 spark 为什么 现在都说spark,storm  这个事比hadoop快。但是公司就要用hadoop。 ######用Hadoop存储。读取速度快!。用Spark计算!计算速度快!######+1 我们目前使用spark可以单机处理亿级计算###### 引用来自“huan”的评论storm 或者 spark 引用来自“OSC-小小侦探”的评论为什么 现在都说spark,storm  这个事比hadoop快。但是公司就要用hadoop。 先弄清楚hadoop是什么再说, spark很早就能运行在hadoop上了,storm 也有 on hadoop 版本。######hadoop做存储啊。。上面跑别的。######分裤分表做了么? ssd上了么? ######高大上的感觉!###### 第一次听要hadoop快速的读取存储的。。。。。难道我们用得不是一个东西? ######Hadoop 上的HDFS是分布式文件。读写很快的###### 引用来自“呼啦_小呆”的评论 第一次听要hadoop快速的读取存储的。。。。。难道我们用得不是一个东西? 继续喷。。继续。 我也不是做大数据的,刚学一个星期。你继续喷!继续!
kun坤 2020-06-08 11:15:58 0 浏览量 回答数 0

回答

直接换redis,不但可以做缓存还可以持久化,更支持群集以及分片写入。memcached已经是过去式了######回复 @Line : 做群集支持即可,方法很多。redis现在比memcached火爆的多,国内技术跟进的慢,再加上很多公司老的技术骨干不花时间了解新技术,造成新技术在国内普及慢而已。######memcache不至于成为过去式吧,现在好多公司都用着呢。radis没了解过,我去了解了解。 如何协调好2台服务器,有什么想法没?######这是面试什么职位呢?######都是同一份试卷。
kun坤 2020-05-31 17:23:17 0 浏览量 回答数 0

回答

经过一条天多的折腾,终于自己折腾出一套安装方案,一下是情况说明,希望能够帮助后面遇到这个问题的童鞋.1.首先我这块500G的移动硬盘其实是从电脑里面卸出来的(因为换了SSD),然后淘宝买了个硬盘盒就摇身一变,变成了500G外挂的移动硬盘,在接上已经在SSD装好的win7上,用DiskGenius删除了所有分区,最后显示466G黑色(空闲),我就屁颠屁颠重启插上预先做好的LinuxMint启动盘。2.然后我Install,对按照网上教程那种,直接用LinuxMint安装程序的分区,在那里把空闲466G分区,怎么分的我不说了,反正无论我怎么分,他最后就是会报错,对就跟问题的图一样。大概意思应该说没有对齐什么的,可是我想应该不关事,因为不对齐顶多就是让硬盘效率下降而已,不至于不让你装吧。3.然后今天上午听志辉同学给我讲了一下,机械盘也要对齐...我想beep--,所以我中午就试下在DiskGenius下做对齐..4.中午第一次对齐,我分了一个500M的ext2的主分区用DiskGenius下的选项来说就是linux native,我打算这个作为/boot.又分了一个4G的swap主分区,DiskGenius下的选项来说就是linux swap,剩下的我用了300G弄成fat32格式的。重启插U盘安装,好了,进入安装的分区流程,原来我们在win下分的三个分区在里面是不使用状态,双击那个500M左右的分区,选项卡显示不使用状态,把选项卡翻到ext2,然后下面的挂载点选择/boot,它还有个格式化的复选框,记住千万不能选!!!选了我们在win下的分区操作就前功尽弃了,因为win下的分区我分到的500M的主分区是0开头的,而LinuxMint不知道为什么,如果用它自己的格式化分区,就不是0开头,就会导致上面问题的开始于xxxx字节没有对齐的问题,后面两个分区一样(fat32那个记住选择ext4),只要不点格式化那个复选框即可,后面可以成功安装LinuxMint....LALALALALALLA~~
a123456678 2019-12-02 02:58:33 0 浏览量 回答数 0

问题

或许各位用户可以换个角度来思考1218的活动 还是很给力的

说实话 我并没有向着阿里云说什么 也并不是因为我是版主而解释什么 说白了 到底 我也是用户   阿里云1218 论坛 简直可以用 怨声四起 来形容 全新价格   说实话  一开始 公布的 续费10% 15%  我也是心里觉得很没意思 没...
asky8 2019-12-01 21:35:22 5740 浏览量 回答数 6

回答

Re大家都有什么好的调参技巧 负样本再抽样 样本就太少了 可以看看SMOTE这种抽样 评价的话 直接用F1 不要再看准确率了 还有,我记得rf也可以输出概率的话,可以多试试几个cutoff,不一定是0.5的地方。 这个加入了时间因素,貌似没法做cv,慢慢调吧 ------------------------- Re大家都有什么好的调参技巧 == 貌似说错了, 用时间惩罚后的分类样本,可以做CV,就是数据少了点
datafan 2019-12-02 03:01:58 0 浏览量 回答数 0

问题

备案经验分享,及问题求助

1 1月8号开始备案的。 填写资料什么的没什么好说的。有一个比较好奇的问题就是上报管局是上报户籍地管局还是所在地管局,因为我填的都是户籍地所以不知道。 其中填写了一个胡先生的网站名称,阿里云在9号给我打电话了...
胡先生。 2019-12-01 21:14:32 1857 浏览量 回答数 1

回答

Re通讯录管理的特殊问题!???? 6300    10284586 6313    10266711 6310    10273695 难道除了组织ID还要MAP别的信息? 但新建的就可以,这是什么情况? ------------------------- Re通讯录管理的特殊问题!???? 这个是组织的ID映射,不是人员的。人员的也不能用,人员不用做MAP,直接用系统的ID给订订就可以 ------------------------- Re通讯录管理的特殊问题!???? 现在无论是组织还是人员,只有通过接口新建的可以做修改和删除。 原有系统的组织做MAP就不行, 通讯录导入的方式把人员信息导入到DD也是不行。 过千组织,组织映射关系已经搞的挺麻烦了。 如果现在MAP都行不通,那就真是没挑了 ------------------------- Re通讯录管理的特殊问题!???? 官方的人呢? 给个答复呀!!! 说明下情况,也好知道下一步怎么做什么 ------------------------- 回 7楼谦吉的帖子 钉钉个系统两边的组织一样,ID做的MAP,和新建有什么区别? 这个没道理还分亲生和后妈吧!!!!
saintfuli 2019-12-02 02:34:57 0 浏览量 回答数 0

回答

首先你要知道redis除了持久化,几乎所有操作都是在操作内存,比如像简单的set get操作都非常快,具体多快我觉得你可以自己来做一个benchmark,并不难如果你关注新闻的话可以知道双11阿里的交易巅峰值是14w笔/s这基本已经是国内it界最高的并发了(那种几亿同时在线的不算),你再去想想操作内存的时间,不考虑事务,我只把14w条数据记下来看起来并不是什么难事对不对一台写不过来我十台总行了吧,所以除非你的set的value本身特别大,不用担心在操作时的等待时间,就算有1w个请求过来,你还是在操作内存,严格意义上说,redis本身应对的业务场景并不是一个高并发的场景,你看一下redis本身默认的连接数设置应该也就懂了应对这种场景,你用多线程+锁也没有什么问题(当然性能可能会差一点点),之前tim大神做过一个memcached和redis的性能对比,虽然年代久远,不过也可以说明一些问题,要知道memcached就是多线程+锁的模型,两者看起来差别也没有太过夸张。虽然结果是redis好一些。看到这里你是不是觉得单线程+io复用赢了?这可真不一定。。只是在这种场景下赢了而已,本身单线程io复用和多线程+锁其实只是两种编程模型,两种模型也都是为了解决问题,哪种优要看具体的业务场景,这里还是要说了,不服跑分啊go的goroutine本质是green threads,runtime来调度的用户态线程,其实这种概念在其他语言里也有,只是其他语言都是以第三方库来做这件事情,go把它集成在了语言内,并且不用你自己去管理调度的事情,go语言里的实现只是让你可以更方便地写而已,所以这东西并不是银弹,不用太过迷信,go所带来的更重要的是开发效率的提升,并没有解决什么具体的问题。关于epoll,go语言的net库底层也是用epoll来做io复用的(仅指linux平台),epoll这个东西只是linux下的一种io复用的实现,在其他的发行版里还有其他变种,而程序员们其实不太想关心你这些事情,他们希望在linux下写的程序去freebsd还能跑,所以libevent棒棒哒,当然你写go的话,这些事情不用操心。
a123456678 2019-12-02 02:57:25 0 浏览量 回答数 0

问题

如何设计一个高并发系统?【Java问答学堂】45期

面试题 如何设计一个高并发系统? 面试官心理分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了。为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥࿰...
剑曼红尘 2020-06-28 20:53:14 10 浏览量 回答数 1

问题

为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?【Java问答】41期

面试题 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数...
剑曼红尘 2020-06-19 13:47:21 0 浏览量 回答数 0

回答

我是这么分类的:1.对于介绍型或简单的页面,直接用输出页面的形式,加上 Angular 做些快捷操作。比如,账户设置页面;找回密码这些比较独立的页面。2.对于真正的 App 型(可以理解为业务功能复杂的单页面)页面,就需要 Angular 的路由来做。后端可以统一定向到一个控制器,输出基本的页面,Angular 会根据路由自己来渲染。3.对于报错页面,404页面,简单的单页面,就什么都别用了。影响速度。
落地花开啦 2019-12-02 02:53:20 0 浏览量 回答数 0

问题

【我与阿里云的故事】从陌生到熟悉写给新用户

还没有买买阿里云吗?考察考察再考察 在论坛翻贴学经验 学知识,看看别人有说好也有说坏 大概一个月前,我也和你一样,但现在已经深深爱上阿里云的速度和性能稳定 如果给阿里云打分 满分...
大脸猫 2019-12-01 21:09:59 14961 浏览量 回答数 6

回答

MAS至少有API和直接写数据库两种方法的。貌似里面的MySQL是4.1以下,这个比较郁闷。 ######你看下我下面的回答######我刚进这个公司,也没人带我这个新人,MAS的相关开发API和文档我已经拿到了,然后呢公司里,有一个OA办公的系统,就是我们平时上班和办公用的,上面可以发送短信的,公司的内部人员之间,也可以跟外部的人发,不过用的是短信猫,现在业务量大了,短信猫承受不了,所以觉得用移动的MAS机,让我开发一个平台,因为公司的OA是可以任意嵌入一个新的功能什么的,我也不知道怎么做汗 序号模块名称项目描述1系统登录  用户登录验证用户登录验证(密码由管理员分配)   2用户管理  用户基本信息1、显示公司人员基本信息、进行部门分组、部门内部分组显示方式 权限配置1、管理员赋予OA通讯录人员发短信权限。  2、系统目前分管理员、可发短信人员、可查看统计分析报表三种用户权限。   3收发短信  收发短信1、支持可以指定OA通讯录的人员发送短信,包含群发。  2、支持可以手动输入外部联系人号码发送短信,支持群发。  3、支持接收短信功能。  4、支持设置短信定时发送功能,实现定时发送设置好的短信。  5、支持管理员配置通讯录分组,方便不同部门发送短信。  6、支持OA实现业务功能,通过此系统实现短信提醒。   4统计分析 短信查询可根据时间、发短信人员、收短信人员模糊查询相应的短信内容记录 短信统计可以统计某个时间段的短信数量、各部门、个人的发送短信量   5对外接口  对外接口提供标准的外部接口((DB接口、API接口、webservice接口))   6需求调研需求调研   7系统设计系统设计   8测试测试   9实施实施   合计   这是需求,貌似还是我整理的。。。。。无语了,求一点点思路。。。######求什么思路啊?MAS就是一个工具而已,你针对它API做开发,应该按照你们的需求去做吧? 使用MAS的顺序一般是这样的: 1、权限验证(对比MAS后台设置的用户密码及权限) 2、发送短信 或 接收短信 或 查看发送状态 然后,然后就没了。MAS只不过是你这个短信模块的一个外部小工具而已。######回复 @柳天俊 : 怎么写,看文档。我做的是直接写数据库的。######那JAVA发送短信是怎么回事,是我写意个类调用MAS的接口,还是调用什么方法的,这个具体又要怎么写啊######mas就是手机 api就是你的手指######不明白。。######别着急,有方法的,用户管理、统计分析那块应该是自己做,后面收发短信应该是调用API。对外接口这个,也就是使用WebService。######前面的就是给我一个公司的的员工通讯录的数据,我把它提取出来了,也实现了分组啊什么的,后面那个什么赋予权限的,我一点思路都没有,在后面的我问公司的现在MAS机还没下来,具体怎么做还不晓得,我以前从来没坐过什么的,刚毕业出来,那人就叫我说你搭个架子做吧。。。汗。。。我都不晓得做什么东西,。。。。######MAS机?华为的还是嘉讯的?中兴的?在机器的箱子里有个光盘,里面有API和Demo,把mas先配置好,使用mas里的软件看能不能发短信,然后调用API发短信。。。######是上海一个什么若雅的 现在MAS机还没拿到手 公司 就给了份文档######权限管理别人做好的模板,你照着用就行了,不知道就Google吧######还真没做好的模板,我百度看看吧,不知道能否搜到模板啊######帮你项一下 。 ######之前在国内一家OA厂商就职时,做过类似这种东西,短信猫,华为短信机,短信易都做过,原理都一样,看清楚API,初始化,连接,发送,断开,就这么个过程!没有什么深奥的!看文档,不行就看例程!######你换来换去换的还是卡发,你公司怎么没有想过换换网关的,MAS还需要自己的机器和程序员,成本很高,可以试试网关的
kun坤 2020-06-11 16:52:05 0 浏览量 回答数 0

回答

你看我这样的方案行不,直接update xxxx set zuoguo = true where zuoguou = false and id = xxx,如果返回更新成功,则做,否则的话就不做,这样应该能够避免多线程。 ###### 这个问题要分两个方面 第一个方面是就算重复执行,用什么逻辑让后执行的那个知道已经执行过了,自动跳出 第二个方面就是做并发控制,让多个线程不要做同一个事情。 以上说的完全是两个层面的事情,第一个层面是要在数据库里做好约束,避免脏数据产生。第二个层面才是多线程并发的控制。 最简单,且正确(但容易出问题)的方法是 select for update xxxx select status from xxxx 程序判断if status == false 执行处理代码 update status = true commit 如果status == true 直接commit ######http://my.oschina.net/visualgui823/blog/640320###### 我觉得最简单的执行方式是 UPDATE tablename SET flag = true WHERE id = 'id' AND flag = false 然后程序判断更新的数据库行数目,如果是0,表示别人已经完成了,如果是1,表示这次完成。 这个解决方案类似于数据库的乐观锁并发控制 ######分配数据给多线程的时候控制一下不就行了   ###### 不用DB控制,用redis之类的。 ######不太清楚实际并发有多大。一般的并发,完全可以通过队列来处理,然后再录入数据库。不建议在数据库上面动刀子。######建议使用redis,里面可以做事务同步。######你说的这个问题,其实和设计缓存挺像的,FutureTask+Callable来设计 ###### 引用来自“乌龟壳”的评论 这个问题要分两个方面 第一个方面是就算重复执行,用什么逻辑让后执行的那个知道已经执行过了,自动跳出 第二个方面就是做并发控制,让多个线程不要做同一个事情。 以上说的完全是两个层面的事情,第一个层面是要在数据库里做好约束,避免脏数据产生。第二个层面才是多线程并发的控制。 最简单,且正确(但容易出问题)的方法是 select for update xxxx select status from xxxx 程序判断if status == false 执行处理代码 update status = true commit 如果status == true 直接commit ######试试 redis
kun坤 2020-06-06 16:04:08 0 浏览量 回答数 0

回答

1.PHP从数据库分多次读取100万行记录,和分多次将100万行写入文本文件都没问题2.Excel可以支持100万行记录,Excel 2003最大支持65536行,从2007版开始支持104万行了,目前2007的盗版应该比较普及了-_-! 问清楚你的客户是什么版本。3.你要导出excel的理由是非常充分和正确的,应该继续坚持。业务人员最熟悉的就是Excel,实在不熟悉现学现用也比别的快。只是要注意,当数据量达到10万行这个级别时,Excel的公式填充将会非常非常慢,如果再有LOOKUP()公式,基本上十分钟内处理CPU满载进程管理器杀不掉的状态,这时候其实xampp + phpmyadmin是一个易用性和性能都最平衡的选择4.PHPExcel输出的是Excel XML格式,有个XML头和尾,中间是数据Body,需要将100万行都赋值给一个数组才可以调用PHPExcel->write(),这容易导致PHP执行超时或者内存超限,你不妨调整一下php.ini配置,把超时时间和内存限制都改到很大5.如果是输出csv格式,那就太简单了,你的问题可能是没给字段内容加引号,加上引号再调用fputcsv试试?其实fputcsv做的事情特别简单,你甚至可以不管它,自己把CSV文件的每一行拼接好了之后用file_put_contents写入 最后给你看一个phpmyadmin导出的CSV示例,对照你自己生成的CSV示例,看看哪里不一样。
落地花开啦 2019-12-02 02:42:43 0 浏览量 回答数 0

回答

"但是在插入数据时,程序还要读取一次数据库才能获取id,"    每次自增2000, 每个单线程程序一次性拿2000的ID出来存内存里慢慢用, 用完再去找数据库要.    程序意外挂掉时, 也不过是跳跃了一些的id.   2000根据自己的业务量来定. 分库分表很不利, 我没理解你......   ID除以余数  很方便.  UUID 才可怕吧. ######不是说id造成分库分表有问题,而是说分库分表后id的产生变得有问题######回复 @Lunar_Lin : 谢谢你参与讨论,我学到了新的方案######@水牛叔叔 sorry, 是他说的1.2######回复 @水牛叔叔 : 这个服务进程自己预留ID的方案是楼下南陌说的方案1.1的改良版本. id池表做个容灾. 应付新浪微播量级的都不会有什么问题. 按10个分布式服务, 200010已经很大很大了. 平常的网站用户ugc和评论的量级, 感觉 10 * 100 或者 1 100 应该够了.######回复 @水牛叔叔 : uuid 样子看起来呗. 没什么. 个人觉得还是32/64位的uint看起来最像ID.######1.专门建一个库/表分配全局唯一的ID. 2.每张表划分ID区域. 3.错位分配 4.组合ID. 以上是针对MySQL数据库在分库分表情况下生成全局ID的一些西想法.具体的操作方法可以参考我的blog: http://chaubeau.github.io/blog/2014/06/10/mysql-shardingzai-gao-bing-fa-xia-de-quan-ju-idsheng-cheng/######方案1.2挺和我心意的######这个方法不错######blog的背景图大白腿不错。######UUID就行吧. QQ号虽然友好,估计不是主键.######@南陌 , @Lunar_Lin ,你们好。 我现在想取一批id保存到内存里,然后慢慢用,用完了再取,也不用做容灾,因为我每次取表里的最大id,然后根据这个id用程序生成后续的递增id。这批id我打算存在普通的容器里,比如List之类的,这样做只要考虑多线程同步的问题。你们觉得这个方法可行吗?######回复 @水牛叔叔 : 可行的. 如果 以一个线程为单位去拿id的. 连多线程互斥也不用考虑了. 我不明白你说的内存数据同步. 这里只考虑id的话 应该够了.######我想到了一个问题:分布式下,内存数据的同步也是问题,还是要一个集中的存储地方
kun坤 2020-06-07 16:44:38 0 浏览量 回答数 0

回答

我在这里假设你在问怎么阅读jdk的源码,java源码这个名字有点奇怪。 你可以build 一个fast debug版本,然后使用debugger去调试你的程序,这样对程序是怎么调用的有很直观的视图。 其次,可以看看jdk里面的regression tests,里面有很多例子。 其次,openjdk提供了netbean的jdk project,你可以很容易用netbean调试openjdk。jdk有很多native的程序,还有makefile,有空也值得阅读。阅读jdk源码最好才用模块的分割方法。比如这些天你只关注java.util.collection,你需要先了解算法这些基本知识,比如hashmap里面的allocation,capacity的概念,红黑树,二项堆。这样看程序就事半功倍。如果是看API,最好先百度哪些类满足你的要求的,直接看你需要的使用的类就可以了,看完父类看子类,不必要全部都去看,也没有那个时间,如果是看源码,你需要知道这个源码实现的功能是什么,先阅读实体类,再通过程序演示,去阅读源码,类似于按功能模块进行阅读,最好不要从头开始读,也不知道哪里是头,最好是边阅读边做必要的注释。工程我都是用Eclipse来阅读的,按CTRL+左键就能跳到函数,类的定义文件那里。如果你能找到一个熟悉这份源码的人,有人带你过一遍就最简单不过了。如果是javaweb工程,先看实体类,再看框架配置文件,再根据功能分模块看
蛮大人123 2019-12-02 01:50:13 0 浏览量 回答数 0

回答

如果有项目的机会,即使你对sap一窍不通,你也可以成为专家,但是对于入门的人来讲,有几个人会有项目的机会呢? 所以对入门人员将学习sap可以按照如下步骤: 01:先熟悉前台操作,业务知识的熟悉是最重要的,应该放在第一步 02:在熟悉后台 03:找准机会做项目 SAP,说的有点大,我也只是会用而已,对于建模啊,什么流程啊,都不大清楚,但感觉首先你要做什么,是技术还是应用?当然如果你刚大学毕业,强烈要求做技术,然后两年后再转到应用。现在你只有做应用,SAP应用分三块,1FI/CO,2内勤3暂时忘记了。内勤就包括mm/pp/sd等,你看你对哪个有兴趣,对哪方面的业务比较熟悉,然后再入手。对于SAP最好的学习办法只有一个:做项目,别的都是扯淡! 当然你肯定没有机会做项目了,所以还是先从最简单的key-user manul入手,别看简单,就是每个命令都要做上10便以上,千万别走捷径,因为是人都不傻,所以也别觉的自己比别人聪明。 做了10便key-user manul大概需要两周时间,这个时候就可以试着拿张白纸把这些命令给逻辑化,就是说,谁用这个命令,可以具体到某个人身上,然后你找到他,问,他什么时候才会用到这个命令,这个命令对业务起什么作用,还有常见错误是什么。 等你把所有的命令都烦过具体的人时候,这个时候,你已经对这个部门的内部运作至少知道皮毛了。 这需要两个月的时候,你要达到,见到这个人,就知道他在企业里面的角色,他的和SAP工作内容是什么。 等到这个程度,一共要三个月的时间吧,至少,而且在你人缘关系特别好,特别有时间的情况下,这时候你自己也就有了这方面的背景了。 好了,恭喜你,你成功一半了 然后从技术入手,把这个部门的命令全部在sap-table里面找到,分析每个table的字段,详细分析,然后在头脑里面形成网络状,这大概需要三个月。 半年后,你就是这个模块的准专家级的人物了,有机会做两个项目,那你就是从内部支持走向顾问了,这大概需要两年的时间。 跳槽吧,英语流利的话,运气好的话,跳到顾问公司,年薪50W不成问题。 SAP其实学起来很简单,就是两个字:环境 没有环境都是扯淡,你也千万别信什么宝典啦,什么红书了,你也千万别把精力投到hlep文档上,hlep是在你有一定基础上才去看的东西,如果业务都不懂,看个屁啊,我总结的经验就是: 以FI为例 1key user manul(FI,两周) 2FI buleprint 几天 3FI/总帐 一个月(配合会计书籍,配合sap-table分析字段) 4FI/应收 半个月(配合会计书籍,配合sap-table分析字段) 5FI/应付 半个月(配合会计书籍,配合sap-table分析字段) 6FI/ 一个月(配合会计书籍,配合sap-table分析字段) 可以了,你现在已经可以是FI模块的准专家了 CO这个过程需要半年 SAP说简单的就是 业务流程整合到信息管理里面了 而表是SAP里面的所有数据的汇集,而且SAP也只是应用系统,所以它对表的归纳非常好,简单的说,一个FI模块二十多个表就差不多了,每个表的字段也就上百个不到,我原来写个一个FI总帐的学习笔记,用了三天才写完。 还有千万别动后台,后台一点技术含量都没有,当你摸了半年后再去碰后台,不然只是浪费时间。 你最大的问题还是没环境,所以真想学,就学业务先吧 “答案来源于网络,供您参考” 希望以上信息可以帮到您!
牧明 2019-12-02 02:16:52 0 浏览量 回答数 0

回答

准备html字符串无论怎么插入,那堆html字符串肯定是省不了的……所以你可以选择是把那堆html放在 ``然后用$('#tr-template').html()来获取。还是直接作为Ajax的结果返回。 插入字符串插入的话,用$(...).append(html)就能把字符串加入到目标元素中了。不过貌似你还需要做一些替换(如果能直接插入就不成问题了对吧),还好有人写了个String.format函数 见 http://stackoverflow.com/questions/610406/javascript-equivalent-to-printf-string-format/4673436#4673436 下面最高分的答案所以你可以拷下来改改,用这个String.format将模板中的{1},{2}什么的替换成Ajax返回的变量,这样再插入就好了。 更进一步说,还可以拓展这个函数,提高它的可读性: 全选复制放进笔记if (!String.prototype.format) { String.prototype.format = function() { var hash = arguments[0]; return this.replace(/{(\w+)}/g, function(match, item) { return typeof hash[item] != 'undefined' ? hash[item] : match; }); }; } console.log("my name is {name}".format({ name: '顺其自然' }));
云栖技术 2019-12-02 02:20:43 0 浏览量 回答数 0

回答

首先说结论:你的后端部门不够硬。把后端的事情推给前端了。 前端后端是程序产业化发生的分工。 首先对比传统开发模式:一人模式。即做前端又做后端。设计者决定表现方式,用表现方式决定前端,从而决定后端。前端后端除了可视化以外并无明显分别。你可以把后端代码放前端里(跟计算有关的。)。也可以把前端代码放后端里(跟查看有关的。)。 产业化后,人们发现,一人模式, 由于返工特点,在大程序(姑且这么说)合作时,产生的返工成本无法接受。于是人们引入工业模式:设计论证差不多了以后,拿出一个不需要改的可行方案。分配给各部具化。这不但减少返工,还能提高人力利用率。(每个人都干起来,不闲着) 前后之分就是从这里开始的。姑且分为设计阶段和实行阶段。设计阶段就是通篇考虑,保证可行(不行就自己上)。实行阶段就是做自己能做的,按设计要求具化。可以看出,两个阶段需要的人的编程能力是不一样的。实行阶段可以换人,而设计阶段需要总体负责,需要的经验肯定不一样。 于是产业化分工降成本的有势就体现出来了:训练专业化工人的成本,小于掌握所有环节的工人的成本。(全是工人,这么说没错) 于是把工作分为前后端,可以大致的对应到设计和具化分类上。其实是设计和具化。(具化就是已经有大致路径,需要精确细化。并且不能偏离路径) 所以后端的人最讨厌前端的人谈论算法。这等于说他的算法是拉gi。但是他的设计书确实有毛病,或者根本是业务需求——根本什么都不是。直接挑战了他的存在意义。所以先喷你没毛病。
晚来风急 2019-12-02 01:22:17 0 浏览量 回答数 0

问题

阿里云ACA第二章考试有些问题不懂

疑惑一:如果要呈现产品类型、区域、销量,用哪种图? (4选1:气泡图、 柱状图、瀑布图、饼图)疑惑二:数据分析平台包括哪些部分?5选3(事务处理、数据同步、数据清洗、数据处理、数据展现)疑惑三:一个大型企业每天产生10T数据,直接放在业务系...
李杨卓 2019-12-01 20:19:44 2213 浏览量 回答数 4

回答

第一,风度。这在小组讨论中很重要,你要始终保持微笑,在别人发表意见时看着对方,然后不时的点头,表示你在听。(必须要让面试官注意到这一点,你可以不时的应和几声“恩”“对”“有道理”之类的)这一点是最基本的,但是很多同学都做不到,很多同学在别人发表意见时会看着桌子,或者看着手上的纸笔,虽然你可能也在认真听,但面试官没有注意到这一点,你需要用一些必要的动作和应和声提醒面试官,你听得很认真!第二,说一下怎么处理意见不一。意见不一是小组讨论中很常见的情况,几乎每次群面都会出现。当出现意见不一时,有些同学会选择比较“和谐”的方法--回避,这样是不可取的,面试官会马上很敏感地捕捉到你的回避,显然是会扣分的。那么怎么样的表现才可以在意见不一时获得加分呢?其实大家不用太担心怎么去解决不一致的意见,因为面试官很多时候不纠缠于谁对谁错,而在关注你怎么处理矛盾意见的方法。我认为比较正确的方法应该是:在遇到意见不一致时,向对方强调一下,我们大家有一个共同的目标,大家都是在向着这个共同的目标而努力,我们的出发点是一样的。 这样的做法比较容易得到面试官的赞赏。这时候,最终怎么解决这个不一致的意见其实反而并不重要了,你给面试官展现的这种解决矛盾的方式会给你赢得加分的。第三,怎么提自己的观点。在群面中提出一针见血的观点是很能引起面试官的注意的,这需要面试者本人的判断力作为支撑,我这里说的提自己的观点的方法是暂时撇开能力范畴,纯面试技巧层面的。在团队中的几个成员都发表过意见之后,你可以这样做:先肯定一下之前2位同学的意见都说得很好,我现在融合一下2位观点中的部分内容,再融入我个人的一些看法,来谈一谈自己的观点。 请大家记住一定要在提出自己观点前,强调一下自己是融合了前面同学的观点的。这样强调是为了提醒面试官,不要让面试官忽略掉你的这个加分行为。同时,也千万不要变成是对前面同学内容的简单概括,一定要有自己的东西,否则会变成不合时宜的总结。接下来说单面。相比群面,单面其实更具有艺术性,因为群面可以利用固定的套路去应付(正如上文所说),而单面在笔者看来,恰恰是面试者与面试官之间一对一的单挑。也许正是因为其艺术性太强,所以很难为大家将单面的技巧整理成上文群面那样的一条条套路,只能从单面可能的各个环节去一一分析。第一,自我介绍。这部分没什么好说的东西,我的建议也只有一句话:更多的参考JD。 对方在JD上要求什么样的能力,大家就努力往那个方向靠。第二,问简历。这个部分是最常见的,也是最有文章可做的。首先要提醒大家不要在简历中包含虚假信息(你可以对自己的部分经历加以修饰,甚至夸大一点也没关系,但千万不要伪造经历)面试官大多都是阅人无数的,对于自己没有的经历,你也是很难回答上细节问题的。即使被你蒙混过关几次,但总会有马失前蹄的时候的。其次,要建议大家为自己的简历配备一套装备,装备的内容包括:1)简历中的每一份实习所学到的东西。可以是工作技能上的,但倘若能上升到对某一工作的理解、感悟的高度,当然更好。2)几个你引以为豪的故事。用自己的故事来证明自己的工作能力,提出自己的工作感悟是很吸引人的。在你和面试官进行一对一单挑的时候,你的故事可以抓住面试官的注意力,并将他的思路直接带入你给他预先设好的“圈套”之中,让面试官在听完故事后,用自己的逻辑来得出你想让他得出的结论。如果你可以用故事向面试官证明你具备JD中描述的能力,那你已经成功了一大半了。再用一点篇幅概况地说一下回答压迫性较强的问题的技巧,希望能为大家对抗人见人怕的压力面试有一些帮助。我归纳为2种,第1种是较为强势的方式,把面试官压迫性的问题反压回去。第2种是比较稳健的方式,把问题的压迫力化解掉。这两种方式,前者属于以刚克刚,比较激烈,可能仅适合部分同学使用,也比较容易走火,但如果使用得当,绝对可以收到意想不到的奇效。后者属于以柔克刚,需要一定的应变力和语言能力。我会在下文中各自给出一些实例。先来个刚猛的吧。例如,面试官提问:“我们这个职位偏好研究生,你一个本科生,你认为自己凭什么和别人竞争?”这时采用第一种方式的强硬回答可以是:“我听说现在有句话叫做一流的本科,二流的硕士,三流的博士。如果给我机会,我一定会向你证明,这句话并非没有道理。”(笔者在此郑重强调,绝对没有冒犯各位研究生前辈的意思)强调一下,用这种方式回答问题绝对不是为了正面去挑衅面试官,而是力图让向面试官展现自己的自信和魄力。虽然有时候有些面试官会认为是狂妄,但如果配上之前自我介绍时对于自己能力和优点的描述,经常可以达到一个论证和强调的效果,让面试官感受到你坚信自己有能力做好这份工作。
此心安处22 2019-12-02 00:48:40 0 浏览量 回答数 0

回答

Re我想做一个视频服务器大家指点一下? 抛开政策方面的问题,单从技术上来说的话。 你这100人同时在线播放的是属于视频播放还是在线视频聊天那种? 如果是视频播放的话,由涉及两个问题了。首先是转码的问题,你是打算客户端本地转马后再上传还是在服务器上转码?如果是服务器上转码,cpu越强劲越好,没有上限。如果你们自己开发能力强,可以多搞几台8核CPU,这样可以同时支持更多的服务器转码服务。服务器主要就是耗费在转马上了,网站本身倒不是多费服务器。 至于带宽问题,这要看你们自己技术实力了,如果实力强带宽可以压缩到最小。比如用swf作为播放器,开发P2P的视频流数据传输功能,既然你有在线100人同时观看的情况,那完全可以利用P2P来加速并省带宽。然后是视频的分段切割分段加载,不要一次性加载完整个视频,一部分一部分的加载视频内容,看多少加载多少,这样服务器在转码的时候就需要把视频切割开,比如每5分钟一段。如果什么优化都不做,完全靠服务器带宽硬抗,一部720P质量的H264编码视频就需要6M左右的带宽,同时100个人播放,那就得至少500M的带宽了吧。
第一应用 2019-12-02 01:02:58 0 浏览量 回答数 0

问题

#职场 2期 如何提升单位时间收益 ?

之前写的时候相对比较随性一些,只是把自己见到的、接触过的渠道整理了一下给写上去了。在后来修改的过程中,慢慢的觉得这些东西看起来挺多的,但是写得非常浅,没有触及到本质。 有同学可能会想...
游客ih62co2qqq5ww 2020-04-23 18:06:16 37 浏览量 回答数 1

回答

在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上 要重 视 它 , 战术上又 要 藐 视 它。先举个例子感受一下千万级到底是什么数量级?现在很流行的优步(Uber),从媒体公布的信息看,它每天接单量平均在百万左右, 假如每天有10个小时的服务时间,平均QPS只有30左右。对于一个后台服务器,单机的平均QPS可以到达800-1000,单独看写的业务量很简单 。为什么我们又不能说轻视它?第一,我们看它的数据存储,每天一百万的话,一年数据量的规模是多少?其次,刚才说的订单量,每一个订单要推送给附近的司机、司机要并发抢单,后面业务场景的访问量往往是前者的上百倍,轻松就超过上亿级别了。 今天我想从架构的本质谈起之后,希望大家理解在做一些建构设计的时候,它的出发点以及它解决的问题是什么。 架构,刚开始的解释是我从知乎上看到的。什么是架构?有人讲, 说架构并不是一 个很 悬 乎的 东西 , 实际 上就是一个架子 , 放一些 业务 和算法,跟我们的生活中的晾衣架很像。更抽象一点,说架构其 实 是 对 我 们 重复性业务 的抽象和我 们 未来 业务 拓展的前瞻,强调过去的经验和你对整个行业的预见。 我们要想做一个架构的话需要哪些能力?我觉得最重要的是架构师一个最重要的能力就是你要有 战 略分解能力。这个怎么来看呢: 第一,你必须要有抽象的能力,抽象的能力最基本就是去重,去重在整个架构中体现在方方面面,从定义一个函数,到定义一个类,到提供的一个服务,以及模板,背后都是要去重提高可复用率。 第二, 分类能力。做软件需要做对象的解耦,要定义对象的属性和方法,做分布式系统的时候要做服务的拆分和模块化,要定义服务的接口和规范。 第三, 算法(性能),它的价值体现在提升系统的性能,所有性能的提升,最终都会落到CPU,内存,IO和网络这4大块上。 这一页PPT举了一些例子来更深入的理解常见技术背后的架构理念。 第一个例子,在分布式系统我们会做 MySQL分 库 分表,我们要从不同的库和表中读取数据,这样的抽象最直观就是使用模板,因为绝大多数SQL语义是相同的,除了路由到哪个库哪个表,如果不使用Proxy中间件,模板就是性价比最高的方法。 第二看一下加速网络的CDN,它是做速度方面的性能提升,刚才我们也提到从CPU、内存、IO、网络四个方面来考虑,CDN本质上一个是做网络智能调度优化,另一个是多级缓存优化。 第三个看一下服务化,刚才已经提到了,各个大网站转型过程中一定会做服务化,其实它就是做抽象和做服务的拆分。第四个看一下消息队列,本质上还是做分类,只不过不是两个边际清晰的类,而是把两个边际不清晰的子系统通过队列解构并且异步化。新浪微博整体架构是什么样的 接下我们看一下微博整体架构,到一定量级的系统整个架构都会变成三层,客户端包括WEB、安卓和IOS,这里就不说了。接着还都会有一个接口层, 有三个主要作用: 第一个作用,要做 安全隔离,因为前端节点都是直接和用户交互,需要防范各种恶意攻击; 第二个还充当着一个 流量控制的作用,大家知道,在2014年春节的时候,微信红包,每分钟8亿多次的请求,其实真正到它后台的请求量,只有十万左右的数量级(这里的数据可能不准),剩余的流量在接口层就被挡住了; 第三,我们看对 PC 端和移 动 端的需求不一样的,所以我们可以进行拆分。接口层之后是后台,可以看到微博后台有三大块: 一个是 平台服 务, 第二, 搜索, 第三, 大数据。到了后台的各种服务其实都是处理的数据。 像平台的业务部门,做的就是 数据存储和读 取,对搜索来说做的是 数据的 检 索,对大数据来说是做的数据的 挖掘。微博其实和淘宝是很类似 微博其实和淘宝是很类似的。一般来说,第一代架构,基本上能支撑到用户到 百万 级别,到第二代架构基本能支撑到 千万 级别都没什么问题,当业务规模到 亿级别时,需要第三代的架构。 从 LAMP 的架构到面向服 务 的架构,有几个地方是非常难的,首先不可能在第一代基础上通过简单的修修补补满足用户量快速增长的,同时线上业务又不能停, 这是我们常说的 在 飞 机上 换 引擎的 问题。前两天我有一个朋友问我,说他在内部推行服务化的时候,把一个模块服务化做完了,其他部门就是不接。我建议在做服务化的时候,首先更多是偏向业务的梳理,同时要找准一个很好的切入点,既有架构和服务化上的提升,业务方也要有收益,比如提升性能或者降低维护成本同时升级过程要平滑,建议开始从原子化服务切入,比如基础的用户服务, 基础的短消息服务,基础的推送服务。 第二,就是可 以做无状 态 服 务,后面会详细讲,还有数据量大了后需要做数据Sharding,后面会将。 第三代 架构 要解决的 问题,就是用户量和业务趋于稳步增加(相对爆发期的指数级增长),更多考虑技术框架的稳定性, 提升系统整体的性能,降低成本,还有对整个系统监控的完善和升级。 大型网站的系统架构是如何演变的 我们通过通过数据看一下它的挑战,PV是在10亿级别,QPS在百万,数据量在千亿级别。我们可用性,就是SLA要求4个9,接口响应最多不能超过150毫秒,线上所有的故障必须得在5分钟内解决完。如果说5分钟没处理呢?那会影响你年终的绩效考核。2015年微博DAU已经过亿。我们系统有上百个微服务,每周会有两次的常规上线和不限次数的紧急上线。我们的挑战都一样,就是数据量,bigger and bigger,用户体验是faster and faster,业务是more and more。互联网业务更多是产品体验驱动, 技 术 在 产 品 体验上最有效的贡献 , 就是你的性能 越来越好 。 每次降低加载一个页面的时间,都可以间接的降低这个页面上用户的流失率。微博的技术挑战和正交分解法解析架构 下面看一下 第三代的 架构 图 以及 我 们 怎么用正交分解法 阐 述。 我们可以看到我们从两个维度,横轴和纵轴可以看到。 一个 维 度 是 水平的 分层 拆分,第二从垂直的维度会做拆分。水平的维度从接口层、到服务层到数据存储层。垂直怎么拆分,会用业务架构、技术架构、监控平台、服务治理等等来处理。我相信到第二代的时候很多架构已经有了业务架构和技术架构的拆分。我们看一下, 接口层有feed、用户关系、通讯接口;服务层,SOA里有基层服务、原子服务和组合服务,在微博我们只有原子服务和组合服务。原子服务不依赖于任何其他服务,组合服务由几个原子服务和自己的业务逻辑构建而成 ,资源层负责海量数据的存储(后面例子会详细讲)。技 术框架解决 独立于 业务 的海量高并发场景下的技术难题,由众多的技术组件共同构建而成 。在接口层,微博使用JERSY框架,帮助你做参数的解析,参数的验证,序列化和反序列化;资源层,主要是缓存、DB相关的各类组件,比如Cache组件和对象库组件。监 控平台和服 务 治理 , 完成系统服务的像素级监控,对分布式系统做提前诊断、预警以及治理。包含了SLA规则的制定、服务监控、服务调用链监控、流量监控、错误异常监控、线上灰度发布上线系统、线上扩容缩容调度系统等。 下面我们讲一下常见的设计原则。 第一个,首先是系统架构三个利器: 一个, 我 们 RPC 服 务组 件 (这里不讲了), 第二个,我们 消息中 间 件 。消息中间件起的作用:可以把两个模块之间的交互异步化,其次可以把不均匀请求流量输出为匀速的输出流量,所以说消息中间件 异步化 解耦 和流量削峰的利器。 第三个是配置管理,它是 代码级灰度发布以及 保障系统降级的利器。 第二个 , 无状态 , 接口 层 最重要的就是无状 态。我们在电商网站购物,在这个过程中很多情况下是有状态的,比如我浏览了哪些商品,为什么大家又常说接口层是无状态的,其实我们把状态从接口层剥离到了数据层。像用户在电商网站购物,选了几件商品,到了哪一步,接口无状态后,状态要么放在缓存中,要么放在数据库中, 其 实 它并不是没有状 态 , 只是在 这 个 过 程中我 们 要把一些有状 态 的 东 西抽离出来 到了数据层。 第三个, 数据 层 比服 务层 更需要 设计,这是一条非常重要的经验。对于服务层来说,可以拿PHP写,明天你可以拿JAVA来写,但是如果你的数据结构开始设计不合理,将来数据结构的改变会花费你数倍的代价,老的数据格式向新的数据格式迁移会让你痛不欲生,既有工作量上的,又有数据迁移跨越的时间周期,有一些甚至需要半年以上。 第四,物理结构与逻辑结构的映射,上一张图看到两个维度切成十二个区间,每个区间代表一个技术领域,这个可以看做我们的逻辑结构。另外,不论后台还是应用层的开发团队,一般都会分几个垂直的业务组加上一个基础技术架构组,这就是从物理组织架构到逻辑的技术架构的完美的映射,精细化团队分工,有利于提高沟通协作的效率 。 第五, www .sanhao.com 的访问过程,我们这个架构图里没有涉及到的,举个例子,比如当你在浏览器输入www.sanhao网址的时候,这个请求在接口层之前发生了什么?首先会查看你本机DNS以及DNS服务,查找域名对应的IP地址,然后发送HTTP请求过去。这个请求首先会到前端的VIP地址(公网服务IP地址),VIP之后还要经过负载均衡器(Nginx服务器),之后才到你的应用接口层。在接口层之前发生了这么多事,可能有用户报一个问题的时候,你通过在接口层查日志根本发现不了问题,原因就是问题可能发生在到达接口层之前了。 第六,我们说分布式系统,它最终的瓶颈会落在哪里呢?前端时间有一个网友跟我讨论的时候,说他们的系统遇到了一个瓶颈, 查遍了CPU,内存,网络,存储,都没有问题。我说你再查一遍,因为最终你不论用上千台服务器还是上万台服务器,最终系统出瓶颈的一定会落在某一台机(可能是叶子节点也可能是核心的节点),一定落在CPU、内存、存储和网络上,最后查出来问题出在一台服务器的网卡带宽上。微博多级双机房缓存架构 接下来我们看一下微博的Feed多级缓存。我们做业务的时候,经常很少做业务分析,技术大会上的分享又都偏向技术架构。其实大家更多的日常工作是需要花费更多时间在业务优化上。这张图是统计微博的信息流前几页的访问比例,像前三页占了97%,在做缓存设计的时候,我们最多只存最近的M条数据。 这里强调的就是做系统设计 要基于用 户 的 场 景 , 越细致越好 。举了一个例子,大家都会用电商,电商在双十一会做全国范围内的活动,他们做设计的时候也会考虑场景的,一个就是购物车,我曾经跟相关开发讨论过,购物车是在双十一之前用户的访问量非常大,就是不停地往里加商品。在真正到双十一那天他不会往购物车加东西了,但是他会频繁的浏览购物车。针对这个场景,活动之前重点设计优化购物车的写场景, 活动开始后优化购物车的读场景。 你看到的微博是由哪些部分聚合而成的呢?最右边的是Feed,就是微博所有关注的人,他们的微博所组成的。微博我们会按照时间顺序把所有关注人的顺序做一个排序。随着业务的发展,除了跟时间序相关的微博还有非时间序的微博,就是会有广告的要求,增加一些广告,还有粉丝头条,就是拿钱买的,热门微博,都会插在其中。分发控制,就是说和一些推荐相关的,我推荐一些相关的好友的微博,我推荐一些你可能没有读过的微博,我推荐一些其他类型的微博。 当然对非时序的微博和分发控制微博,实际会起多个并行的程序来读取,最后同步做统一的聚合。这里稍微分享一下, 从SNS社交领域来看,国内现在做的比较好的三个信息流: 微博 是 基于弱关系的媒体信息流 ; 朋友圈是基于 强 关系的信息流 ; 另外一个做的比 较 好的就是今日 头 条 , 它并不是基于关系来构建信息流 , 而是基于 兴趣和相关性的个性化推荐 信息流 。 信息流的聚合,体现在很多很多的产品之中,除了SNS,电商里也有信息流的聚合的影子。比如搜索一个商品后出来的列表页,它的信息流基本由几部分组成:第一,打广告的;第二个,做一些推荐,热门的商品,其次,才是关键字相关的搜索结果。 信息流 开始的时候 很 简单 , 但是到后期会 发现 , 你的 这 个流 如何做控制分发 , 非常复杂, 微博在最近一两年一直在做 这样 的工作。刚才我们是从业务上分析,那么技术上怎么解决高并发,高性能的问题?微博访问量很大的时候,底层存储是用MySQL数据库,当然也会有其他的。对于查询请求量大的时候,大家知道一定有缓存,可以复用可重用的计算结果。可以看到,发一条微博,我有很多粉丝,他们都会来看我发的内容,所以 微博是最适合使用 缓 存 的系统,微博的读写比例基本在几十比一。微博使用了 双 层缓 存,上面是L1,每个L1上都是一组(包含4-6台机器),左边的框相当于一个机房,右边又是一个机房。在这个系统中L1缓存所起的作用是什么? 首先,L1 缓 存增加整个系 统 的 QPS, 其次 以低成本灵活扩容的方式 增加 系统 的 带宽 。想象一个极端场景,只有一篇博文,但是它的访问量无限增长,其实我们不需要影响L2缓存,因为它的内容存储的量小,但它就是访问量大。这种场景下,你就需要使用L1来扩容提升QPS和带宽瓶颈。另外一个场景,就是L2级缓存发生作用,比如我有一千万个用户,去访问的是一百万个用户的微博 ,这个时候,他不只是说你的吞吐量和访问带宽,就是你要缓存的博文的内容也很多了,这个时候你要考虑缓存的容量, 第二 级缓 存更多的是从容量上来 规划,保证请求以较小的比例 穿透到 后端的 数据 库 中 ,根据你的用户模型你可以估出来,到底有百分之多少的请求不能穿透到DB, 评估这个容量之后,才能更好的评估DB需要多少库,需要承担多大的访问的压力。另外,我们看双机房的话,左边一个,右边一个。 两个机房是互 为 主 备 , 或者互 为热备 。如果两个用户在不同地域,他们访问两个不同机房的时候,假设用户从IDC1过来,因为就近原理,他会访问L1,没有的话才会跑到Master,当在IDC1没找到的时候才会跑到IDC2来找。同时有用户从IDC2访问,也会有请求从L1和Master返回或者到IDC1去查找。 IDC1 和 IDC2 ,两个机房都有全量的用户数据,同时在线提供服务,但是缓存查询又遵循最近访问原理。还有哪些多级缓存的例子呢?CDN是典型的多级缓存。CDN在国内各个地区做了很多节点,比如在杭州市部署一个节点时,在机房里肯定不止一台机器,那么对于一个地区来说,只有几台服务器到源站回源,其他节点都到这几台服务器回源即可,这么看CDN至少也有两级。Local Cache+ 分布式 缓 存,这也是常见的一种策略。有一种场景,分布式缓存并不适用, 比如 单 点 资 源 的爆发性峰值流量,这个时候使用Local Cache + 分布式缓存,Local Cache 在 应用 服 务 器 上用很小的 内存资源 挡住少量的 极端峰值流量,长尾的流量仍然访问分布式缓存,这样的Hybrid缓存架构通过复用众多的应用服务器节点,降低了系统的整体成本。 我们来看一下 Feed 的存 储 架构,微博的博文主要存在MySQL中。首先来看内容表,这个比较简单,每条内容一个索引,每天建一张表,其次看索引表,一共建了两级索引。首先想象一下用户场景,大部分用户刷微博的时候,看的是他关注所有人的微博,然后按时间来排序。仔细分析发现在这个场景下, 跟一个用户的自己的相关性很小了。所以在一级索引的时候会先根据关注的用户,取他们的前条微博ID,然后聚合排序。我们在做哈希(分库分表)的时候,同时考虑了按照UID哈希和按照时间维度。很业务和时间相关性很高的,今天的热点新闻,明天就没热度了,数据的冷热非常明显,这种场景就需要按照时间维度做分表,首先冷热数据做了分离(可以对冷热数据采用不同的存储方案来降低成本),其次, 很容止控制我数据库表的爆炸。像微博如果只按照用户维度区分,那么这个用户所有数据都在一张表里,这张表就是无限增长的,时间长了查询会越来越慢。二级索引,是我们里面一个比较特殊的场景,就是我要快速找到这个人所要发布的某一时段的微博时,通过二级索引快速定位。 分布式服务追踪系统 分布式追踪服务系统,当系统到千万级以后的时候,越来越庞杂,所解决的问题更偏向稳定性,性能和监控。刚才说用户只要有一个请求过来,你可以依赖你的服务RPC1、RPC2,你会发现RPC2又依赖RPC3、RPC4。分布式服务的时候一个痛点,就是说一个请求从用户过来之后,在后台不同的机器之间不停的调用并返回。 当你发现一个问题的时候,这些日志落在不同的机器上,你也不知道问题到底出在哪儿,各个服务之间互相隔离,互相之间没有建立关联。所以导致排查问题基本没有任何手段,就是出了问题没法儿解决。 我们要解决的问题,我们刚才说日志互相隔离,我们就要把它建立联系。建立联系我们就有一个请求ID,然后结合RPC框架, 服务治理功能。假设请求从客户端过来,其中包含一个ID 101,到服务A时仍然带有ID 101,然后调用RPC1的时候也会标识这是101 ,所以需要 一个唯一的 请求 ID 标识 递归迭代的传递到每一个 相关 节点。第二个,你做的时候,你不能说每个地方都加,对业务系统来说需要一个框架来完成这个工作, 这 个框架要 对业务 系 统 是最低侵入原 则 , 用 JAVA 的 话 就可以用 AOP,要做到零侵入的原则,就是对所有相关的中间件打点,从接口层组件(HTTP Client、HTTP Server)至到服务层组件(RPC Client、RPC Server),还有数据访问中间件的,这样业务系统只需要少量的配置信息就可以实现全链路监控 。为什么要用日志?服务化以后,每个服务可以用不同的开发语言, 考虑多种开发语言的兼容性 , 内部定 义标 准化的日志 是唯一且有效的办法。最后,如何构建基于GPS导航的路况监控?我们刚才讲分布式服务追踪。分布式服务追踪能解决的问题, 如果 单一用 户发现问题 后 , 可以通 过请 求 ID 快速找到 发 生 问题 的 节 点在什么,但是并没有解决如何发现问题。我们看现实中比较容易理解的道路监控,每辆车有GPS定位,我想看北京哪儿拥堵的时候,怎么做? 第一个 , 你肯定要知道每个 车 在什么位置,它走到哪儿了。其实可以说每个车上只要有一个标识,加上每一次流动的信息,就可以看到每个车流的位置和方向。 其次如何做 监 控和 报 警,我们怎么能了解道路的流量状况和负载,并及时报警。我们要定义这条街道多宽多高,单位时间可以通行多少辆车,这就是道路的容量。有了道路容量,再有道路的实时流量,我们就可以基于实习路况做预警? 对应于 分布式系 统 的话如何构建? 第一 , 你要 定义 每个服 务节 点它的 SLA A 是多少 ?SLA可以从系统的CPU占用率、内存占用率、磁盘占用率、QPS请求数等来定义,相当于定义系统的容量。 第二个 , 统计 线 上 动态 的流量,你要知道服务的平均QPS、最低QPS和最大QPS,有了流量和容量,就可以对系统做全面的监控和报警。 刚才讲的是理论,实际情况肯定比这个复杂。微博在春节的时候做许多活动,必须保障系统稳定,理论上你只要定义容量和流量就可以。但实际远远不行,为什么?有技术的因素,有人为的因素,因为不同的开发定义的流量和容量指标有主观性,很难全局量化标准,所以真正流量来了以后,你预先评估的系统瓶颈往往不正确。实际中我们在春节前主要采取了三个措施:第一,最简单的就是有降 级 的 预 案,流量超过系统容量后,先把哪些功能砍掉,需要有明确的优先级 。第二个, 线上全链路压测,就是把现在的流量放大到我们平常流量的五倍甚至十倍(比如下线一半的服务器,缩容而不是扩容),看看系统瓶颈最先发生在哪里。我们之前有一些例子,推测系统数据库会先出现瓶颈,但是实测发现是前端的程序先遇到瓶颈。第三,搭建在线 Docker 集群 , 所有业务共享备用的 Docker集群资源,这样可以极大的避免每个业务都预留资源,但是实际上流量没有增长造成的浪费。 总结 接下来说的是如何不停的学习和提升,这里以Java语言为例,首先, 一定要 理解 JAVA;第二步,JAVA完了以后,一定要 理 解 JVM;其次,还要 理解 操作系统;再次还是要了解一下 Design Pattern,这将告诉你怎么把过去的经验抽象沉淀供将来借鉴;还要学习 TCP/IP、 分布式系 统、数据结构和算法。
hiekay 2019-12-02 01:39:25 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板