被浏览器停止工作wwW否定ke60的,网止以后ke60还能接着com收视嘛

14,746被浏览1,707,773分享邀请回答3.4K896 条评论分享收藏感谢收起1.6K194 条评论分享收藏感谢收起浏览器打开wWw这各影视占695f收视的时候,怎么跳转到695f其他的网紫了com_百度知道
浏览器打开wWw这各影视占695f收视的时候,怎么跳转到695f其他的网紫了com
我有更好的答案
你得记住那跳转后的才行=我就直接保存了,, {vvw695.w5c.biz}=
采纳率:33%
建议你用360安全卫士上边的电脑门诊试试,然后根据提示修复就可以了。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。39,743被浏览1,588,773分享邀请回答cnseotool.com -site:得到的就是点石网站的外部链接,因为-site: 已经排除了点石本身的页面,也就是内部链接,剩下的就都是外部链接了。12、relatedrelated:指令只适用于Google,返回的结果是与某个网站有关联的页面。比如搜索related:我们就可以得到Google 所认为的与点石网站有关联的其他页面。 这种关联到底指的是什么,Google 并没有明确说明,一般认为指的是有共同外部链接的网站。上面介绍的这几个高级搜索指令,单独使用可以找到不少资源,或者可以更精确地定位竞争对手。把这些指令混合起来使用则更强大。inurl:gov 减肥返回的就是url 中包含gov,页面中有“减肥”这个词的页面。很多SEO 人员认为GVM和学校网站有比较高的权重,找到相关的GVM和学校网站,就找到了最好的链接资源。下面这个指令返回的是来自.,也就是学校域名上的包含“交换链接”这个词的页面:inurl:. 交换链接从中SEO 人员可以找到愿意交换链接的学校网站。或者使用一个更精确的搜索:inurl:. intitle:交换链接返回的则是来自 域名,标题中包含“交换链接”这四个字的页面,返回的结果大部分应该是愿意交换链接的学校网站。再比如下面这个指令:inurl:*register返回的结果是在. 域名上,url 中包含“forum”以及“register”这两个单词的页面,也就是学校论坛的注册页面。找到这些论坛,也就找到了能在高权重域名上留下签名的很多机会。下面这个指令返回的是页面与减肥有关,url 中包含links 这个单词的页面:减肥 inurl:links很多站长把交换链接页面命名为links.html 等,所以这个指令返回的就是与减肥主题相关的交换链接页面。下面这个指令返回的是url 中包含 以及links 的页面,也就是GVM域名上的交换链接页面:allinurl:gov.cn+links最后一个例子,在雅虎搜索这个指令:linkdomain: -linkdomain:返回的是链接到点石网站,却没有链接到我的博客的网站。使用这个指令可以找到很多连向你的竞争对手或其他同行业网站,却没连向你的网站的页面,这些网站是最好的链接资源。高级搜索指令组合使用变化多端,功能强大。一个合格的SEO必须熟练掌握这几个常用指令的意义及组合方法,才能更有效率地找到更多竞争对手和链接资源。找外链的时候你可以用这几种命令组合,例如site:.com inurl:blog “post a comment” -”comments closed” -”you must be logged in” “输入你的关键词“,site:.com 是 指, 只显示.com的网站。 如果你想要 org的链接,就换成 site:.org,inurl:blog 是指博客。“post a comment” -”comments closed” -”you must be logged in” 是指, “能够写评论的” 减去“ 关闭评论的” 再减去“ 必须要登录才能写评论的”。大家还有什么更高级的命令可以补充!!!!转载 !!!10K158 条评论分享收藏感谢收起kaijuan.org/%E6%96%87%E4%BB%B6:%E4%BF%A1%E6%81%AF%E5%9B%BE-%E4%BB%8E%E8%B0%B7%E6%AD%8C%E6%90%9C%E8%8E%B7%E6%9B%B4%E5%A4%9A.png4.3K56 条评论分享收藏感谢收起暂无话题描述关注话题分享阅读全文6.2K208 条评论分享收藏阅读全文5.4K278 条评论分享收藏感谢阅读全文5.3K322 条评论分享收藏阅读全文3.7K172 条评论分享收藏阅读全文2.7K294 条评论分享收藏1,239&p&康亮,腾讯高级工程师。历经网易在线游戏事业部、百度客户端部门、腾讯研究院、腾讯MIG。横跨多个平台10年开发,目前负责腾讯翻译君app。&/p&&blockquote&在一线做了十年的开发,经历了网易、百度、腾讯研究院、MIG等几个地方,陆续做过3D游戏、2D页游、浏览器、移动端翻译app等。&/blockquote&&p&积累了一些感悟。必然有依然幼稚的地方,就当抛砖引玉,聊为笑谈。&/p&&p&一、对于团队而言,流程太重要了&/p&&p&行军打仗,你需要一个向导;如果没有向导,你需要一个地图;如果没有地图,至少要学习李广,找一匹识途的老马;如果你连老马也没有,那最好可以三个臭皮匠好好讨论,力图胜过一个诸葛亮;如果三个臭皮匠连好好讨论也做不到,那就是典型的乌合之众了,最好写代码前,点上三炷香,斟上一杯浊酒,先拜拜菩萨,再拜拜谷歌。&/p&&p&我个人属于性格温和的(程序员大多性格不错),但确实见过少数强势的人,说很多强势的话。在技术上一言而决,一听到任何反对就上升到私人恩怨。这样的风格,到底是刚愎自用,还是胸有成竹,就需要仔细判断了。&/p&&p&为什么说流程重要呢?实际上,如果团队上有孙悟空存在,去西天取经,大概也不需要什么流程,只要方向就可以了。 但作为普通的战士,应该先虑败。找人算命时,应该先听听不好的地方,好的地方就不用听了,总归是好的,不好的地方一定要听,这样才能规避。&/p&&p&这就是我的态度:先悲观一点,划清底线,考虑在这个底线上你该怎么做?&/p&&p&这是我做开发的一个习惯,但这个习惯肯定不适用于买房。&/p&&p&怎么划清底线呢?就是假想团队中没有孙悟空了,光靠你唐玄奘、猪八戒和沙和尚,应该怎么去取经。&/p&&p&这个月走什么地方,遇到山怎么走,遇到河怎么过,遇到路上有妖怪劫道,谁去抵挡。遇到路上有少女要搭救,怎么办?这就是流程,是原则。&/p&&p&我经历过一个流程很混乱的阶段。都是很多年前的事情了,可以拿出来说说,不涉及单个人。&/p&&p&2011年在百度浏览器团队时遇到几件让人影响深刻的事情。 有一次开会,产品拿出Google某个产品的DEMO,里面有一段很酷炫3D 效果,要求开发加上,只给2天时间,大家目瞪口呆。后续的开发为了赶节奏,导致非常多的bug,又为了修改bug,leader将所有的bug按照人员平均分配,导致不同模块间的同学相互修改。。。。。实在难以想象。好比让做花卷的厨子,去修改西湖醋鱼的味道。&/p&&p&最初的现象是:bug下降的慢,延伸bug反而增加,每个人都累的半死,代码风格极其杂乱,为了赶工导致的临时方案层出不穷;&/p&&p&到了中期:人员离职越来也多,代码难以维护,新加的需求与之前的临时方案冲突。&/p&&p&到了后期:想做一些修复,想调整架构,又要保证正常运行,其难度好比在一架飞行的飞机上拆换零件。&/p&&p&然后我也急忙离职了。。。。实在看不到成功的可能性。&/p&&p&后来到了腾讯的团队,感觉流程就规范多了。需求和bug有Tapd跟踪,产品发布按照节奏,需求提出前会和开发反复讨论可行性,有专门的质量跟踪,有专门的用户反馈,每天知道要做什么,也知道明天要做什么。有产品需求,也有开发需求!这个非常重要。很多团队,都是只有产品需求,开发好像牛一样,耕完地就不管了?&/p&&p&流程其实没那么复杂,就是各司其责+节奏。我们都是“哆瑞咪发梭拉西多”中的一员,各自有各自的责任,然后组合在一起,按照一个节奏跑起来。把该做的事情与该跑的节奏定好。&/p&&p&二、不要炫技,老老实实写代码&/p&&p&网上有一个段子,说有人要用JS实现一个简单的功能,然后朋友给他推荐了几十个库。&/p&&p&真的有必要吗?具体情况具体分析。&/p&&p&居家过日子,你只需要一套普通的工具就可以了;如果你是修车的,你需要一套修车的工具;如果你是光头强,你需要一台伐木机。 吃饭用筷子,用刀叉,都可以,但不要用杀猪刀,不要用丈八长矛!,当然也不能用牙签。&/p&&p&用什么工具,用什么库,问问过来人,多在KM上搜索一下。举个例子:android上加密,用SQLChpher就可以了,微信也在用,你当然可以学习;数据库ORM思想,用KM上推荐的GreenDAO就可以了;PC上3D引擎,用OGRE就可以了;小型游戏DEMO,用Irrlicht足够;写WebGL,用ThreeJS足够。&/p&&p&首先想想:一些大库hold的住吗,后续发展如何?这些库对安装包的体积影响有多大?有没有调研过同样的产品在用什么?&/p&&p&想清楚了再决定用什么,最好是跟随成功项目的脚步。&/p&&p&三、架构上实用+适用&/p&&p&很喜欢曾国藩的一句话:结硬寨、打呆仗。&/p&&p&一字长蛇阵、八门金锁阵,哪个好?iOS都是单个进程,微信Android版本3.5以前是单进程,3.5以后有独立的网络进程; PC浏览器的进程架构更加复杂,UI进程、内核进程、Render进程,而且还有根据页面多少的进程调节模型。&/p&&p&这些设计都很好,各有各的道理,都适用于当前的产品。所以我的观点是:首先分析当前产品的规模、性质,然后再设计架构。&/p&&p&在当前阶段达到:开发效率+架构的平衡;并向后展望3个月,或者半年左右,看看架构能不能适应。&/p&&p&我做腾讯翻译君时,曾反复犹豫要不要模仿微信加入独立的网络进程。后来逆向了有排在第一二位的竞品,最终采用了现在的主功能单进程模型。&/p&&p&产品规模、人员规模、功能阶段,具体问题具体分析。&/p&&p&四、既要有攻城之力,也要有熬战之气——BUG&/p&&p&产品开发完成后,必然有bug。其实开发人员在工作过程中,是有一定的直觉或者心理预判的,即:某个功能模块的质量如何。 这里面的质量包括:可维护性、扩展性、算法\渲染效率,还有就是bug与崩溃率。&/p&&p&功能开发完成后,就要开始守城了。&/p&&p&bug,一部分产生是由于架构带来的,例如比较复杂的架构,会导致复杂的实现细节;&/p&&p&但还有很大部分bug,其实是基于如下三个原因产生的:&/p&&p&1 . 对于某个api的不了解,或者对于某个平台,或者SDK版本的不了解。 举例而言:andrid里面非主线程,是不能直接处理UI相关的事情的;JAVA的内存释放也不是绝对的,相互指向是无法释放的;函数个数是有DEX问题制约的---------------------这些bug的产生,也是开发人员摸索学习的过程,经历过一次就不会再犯了。这是学习广度与熟练度的问题;&/p&&p&2 . 还有一些bug,是由于粗心大意导致的。例如空指针的问题,野指针的问题。在C的开发中,野指针的问题,GDI句柄的释放问题,这些都是严谨的代码需要避免的; 而又一些工具,或者方法是可以规避这些问题的,例如android中的利用@Nullable和@NonNull加强空指针检测等方法;&/p&&p&3 . 还有一些bug,是由于“使用情况各异导致的”。例如:偶现在某个模块crash。这里的本质还是因为逻辑的异常边界没有处理好。例如android上的OOM问题,还有PC上UI焦点导致的对象释放问题。这些异常情况,一部分靠测试发现,一部分靠用户反馈,还有一部分就靠自己的异常处理。例如Android中的try catch机制,其实就是遇到异常了,你能纠正错误的机会。&/p&&p&五、自审&/p&&p&每过一段时间,都要站在高空俯视自己,问问:到底是在承担过去,还是在改变未来。&/p&&p&如果之前程序代码质量不好,后面修改问题的时间就会比较多。到了开发的中期,得多问问自己,你在不停的改正以前的错误,还是在做新的东西。 如果修改错误的时间多一点,那就要注意自己的代码质量了!&/p&&p&六、注释&/p&&p&我很喜欢写注释。有大牛说:代码就是最好的注释。 可惜我还没有达到那个程度。所以,我会把注释写的非常清楚。其一:为了自己以后维护的方便; 其二:为了其他人接手的方便。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-81acac0b67_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&425& data-rawheight=&244& class=&origin_image zh-lightbox-thumb& width=&425& data-original=&https://pic4.zhimg.com/v2-81acac0b67_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-8e6eecddfe32beb4_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&720& data-rawheight=&123& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic4.zhimg.com/v2-8e6eecddfe32beb4_r.jpg&&&/figure&&p&&br&&/p&&p&这是我在翻译君项目中写注释的方式。1:对于很复杂的逻辑,务必用12345的顺序依次写清楚;2 :对于函数中的某个参数,需要解释为什么要设置这个参数,尤其是公用工具类里面的函数---说清楚参数的背景含义,可以让其他调用者理解的更加清晰。&/p&&p&我一般不用英文写。虽然这样看起来格调很低,但胜在大家都能轻松的看懂。写代码不能太傲娇,写注释也不要太傲娇,目的是让你的搭档或者接手者,更轻松的理解,让她/他少加班。&/p&&p&七、代码结构&/p&&p&代码结构要清晰。有按照功能划分的,有按照UI结构划分的。还有公用工具类,有数据管理,有主逻辑控制。不管用哪种思想,有序的代码结构,可以让每个人感觉很干净。好比日本的收纳整理技巧让很多小资推崇,无非就是干净、整洁、便于管理。&/p&&p&而且,还有一个重要的好处:代码结构表现出来的其实是——程序的一个模块\逻辑思想——让大家工作在不同的区域。&/p&&p&八、代码风格&/p&&p&代码风格统一!好比一家人,有叫Tom的,有叫安东尼的,还有叫流川枫、石破天、圣杰夫拉斯基,无所适从。理论上,看一个函数,就能从名称上区分哪些是成员变量,哪些是局部变量,哪些是全局静态值。&/p&&p&除了命名统一外,还有一行代码最大的宽度,函数的连续调用长度等,头文件的包含风格,也最好有一个约定。类的出现时间,创建人名,最好也加上,看起来没用,但到了追踪问题时,就能看出时间线的好处。&/p&&p&九、安全与逆向&/p&&p&这是针对Android说的,还有PC插件也需要考虑。Android上首先要防止被别人逆向,我成功逆向并重新打包过有第一位和第二位的竞品。这似乎有点不可思议,但确实做到了。加固+混淆+代码判断,最好都有。&/p&&p&安全上,可以看金刚扫描的漏洞,逐一修改就行。公司很多工具很好用的!&/p&&p&十、开发效率&/p&&p&开发效率可以用这些方式提升:&/p&&p&1 . 构建公用工具类,方便大家使用&/p&&p&2 . 使用开源的一些包,例如ORM思想的数据库等&/p&&p&3 . 可以很快的找到问题。开发中,找bug的时间,往往是很多的。我用的方法有3个: 使用try catch; 拦截所有crash到我指定的地方;超多的Log,Log有统一的控制开关。&/p&&p&4 . 借力:数据上报用灯塔,崩溃上报用bugly,公司KM上很多经验,拿过来用。&/p&&p&十一、安装包体积&/p&&p&1 . TINY压缩图片&/p&&p&2 . 删除无效的资源文件&/p&&p&十二、UI渲染效率&/p&&p&UI是用户的第一感觉;UI快并稳定,第一感觉就不会差太多;管理好内存,基本管理好了一半crash;管理好UI,等于管理了人机交互感受。&/p&&p&UI上的开发是:渲染效率与渲染效果的平衡。&/p&&p&&/p&&p&&/p&
康亮,腾讯高级工程师。历经网易在线游戏事业部、百度客户端部门、腾讯研究院、腾讯MIG。横跨多个平台10年开发,目前负责腾讯翻译君app。在一线做了十年的开发,经历了网易、百度、腾讯研究院、MIG等几个地方,陆续做过3D游戏、2D页游、浏览器、移动端翻译a…
&p&&i&摘要:&/i& Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。&/p&&p&作者:驻云科技&/p&&p&原文:&a href=&https://link.zhihu.com/?target=http%3A//click.aliyun.com/m/42002/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&click.aliyun.com/m/4200&/span&&span class=&invisible&&2/&/span&&span class=&ellipsis&&&/span&&/a&&/p&&h2&&b&为什么要用Nginx?&/b&&/h2&&p&目前 Nginx 的主力竞争对手莫过于 Apache ,在这里小编对两者做一个简单的对比,帮助大家更好的理解 Nginx 的优势。&/p&&p&&b&1、作为 Web 服务器:&/b&&/p&&p&相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一,能够支持高达 50000 个并发连接数的响应, 感谢Nginx 为我们选择了 epoll and kqueue 作为开发模型。&/p&&p&Nginx作为负载均衡服务器: Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理 服务器对外进行服务。Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。&/p&&p&&b&2、Nginx 配置简洁, Apache 复杂:&/b&&/p&&p&Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 你还能够不间断服务的情况下进行软件版本的升级。&/p&&p&Nginx 静态处理性能比 Apache 高 3倍以上,Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端来使用 ,Apache 的组件比 Nginx 多。&/p&&p&&b&3、最核心的区别在于:&/b&&/p&&p&apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程 。&/p&&p&&b&4、两者的擅长领域分别是:&/b&&/p&&p&nginx的优势是处理静态请求,cpu内存使用率低,apache适合处理动态请求,所以现在一般前端用nginx作为反向代理抗住压力,apache作为后端处理动态请求。&/p&&h2&&b&Nginx 基本使用方法&/b&&/h2&&p&系统平台:CentOS release 6.6 (Final) 64位。&/p&&p&&b&一、安装编译工具及库文件&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-af3bf7517c3d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&508& data-rawheight=&37& class=&origin_image zh-lightbox-thumb& width=&508& data-original=&https://pic4.zhimg.com/v2-af3bf7517c3d_r.jpg&&&/figure&&p&&b&二、首先要安装 PCRE&/b&&/p&&p&1、PCRE 作用是让 Nginx 支持 Rewrite 功能。下载 PCRE 安装包,下载地址: &a href=&https://link.zhihu.com/?target=http%3A//downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&downloads.sourceforge.net&/span&&span class=&invisible&&/project/pcre/pcre/8.35/pcre-8.35.tar.gz&/span&&span class=&ellipsis&&&/span&&/a&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-a6a43de1d57_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&648& data-rawheight=&34& class=&origin_image zh-lightbox-thumb& width=&648& data-original=&https://pic1.zhimg.com/v2-a6a43de1d57_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-8fbca6fdb5d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&65& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic4.zhimg.com/v2-8fbca6fdb5d_r.jpg&&&/figure&&p&2、解压安装包:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-085de1bed4198_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&328& data-rawheight=&40& class=&content_image& width=&328&&&/figure&&p&3、进入安装包目录&/p&&figure&&img src=&https://pic2.zhimg.com/v2-05ed22ce443ebe90cce749f98914fdb9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&312& data-rawheight=&42& class=&content_image& width=&312&&&/figure&&p&4、编译安装&/p&&figure&&img src=&https://pic3.zhimg.com/v2-14a7f713b29ab1ecd4a0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&356& data-rawheight=&56& class=&content_image& width=&356&&&/figure&&p&5、查看pcre版本&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d55dad9ae01aa1d986b8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&348& data-rawheight=&40& class=&content_image& width=&348&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f47be20e544_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&516& data-rawheight=&43& class=&origin_image zh-lightbox-thumb& width=&516& data-original=&https://pic4.zhimg.com/v2-f47be20e544_r.jpg&&&/figure&&p&&b&三、安装 Nginx&/b&&/p&&p&1、下载 Nginx,下载地址:&a href=&https://link.zhihu.com/?target=http%3A//nginx.org/download/nginx-1.6.2.tar.gz& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&nginx.org/download/ngin&/span&&span class=&invisible&&x-1.6.2.tar.gz&/span&&span class=&ellipsis&&&/span&&/a&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-6a2fbaa43a763ff81873eb6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&464& data-rawheight=&39& class=&origin_image zh-lightbox-thumb& width=&464& data-original=&https://pic2.zhimg.com/v2-6a2fbaa43a763ff81873eb6_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-b3fa2ebfcabb3730e82b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&776& data-rawheight=&77& class=&origin_image zh-lightbox-thumb& width=&776& data-original=&https://pic1.zhimg.com/v2-b3fa2ebfcabb3730e82b_r.jpg&&&/figure&&p&2、解压安装包&/p&&figure&&img src=&https://pic2.zhimg.com/v2-2e4f0f79c53ff886589bcb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&348& data-rawheight=&39& class=&content_image& width=&348&&&/figure&&p&3、进入安装包目录&/p&&figure&&img src=&https://pic1.zhimg.com/v2-323c27cde8ddab585e2b28_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&280& data-rawheight=&39& class=&content_image& width=&280&&&/figure&&p&4、编译安装&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d5bfbd0450eea59b291648_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&704& data-rawheight=&89& class=&origin_image zh-lightbox-thumb& width=&704& data-original=&https://pic1.zhimg.com/v2-d5bfbd0450eea59b291648_r.jpg&&&/figure&&p&5、查看nginx版本&/p&&figure&&img src=&https://pic3.zhimg.com/v2-ebd0b4e8e59c297b4ebe6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&452& data-rawheight=&42& class=&origin_image zh-lightbox-thumb& width=&452& data-original=&https://pic3.zhimg.com/v2-ebd0b4e8e59c297b4ebe6_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-d2d4c62fdb07a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&744& data-rawheight=&42& class=&origin_image zh-lightbox-thumb& width=&744& data-original=&https://pic2.zhimg.com/v2-d2d4c62fdb07a_r.jpg&&&/figure&&p&到此,nginx安装完成。&/p&&p&&b&四、Nginx 配置&/b&&/p&&p&创建 Nginx 运行使用的用户 www:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-fbeff172a4ae_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&388& data-rawheight=&55& class=&content_image& width=&388&&&/figure&&p&配置nginx.conf ,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容&/p&&figure&&img src=&https://pic2.zhimg.com/v2-5addb59fb80d5b30bd5a76be8f6f8eca_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&712& data-rawheight=&1543& class=&origin_image zh-lightbox-thumb& width=&712& data-original=&https://pic2.zhimg.com/v2-5addb59fb80d5b30bd5a76be8f6f8eca_r.jpg&&&/figure&&p&检查配置文件ngnix.conf的正确性命令:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-5b2e1c701f0ace9e2f8ed876f6177aa6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&416& data-rawheight=&41& class=&content_image& width=&416&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-8a7ca16d2f23f78ea925e4a4f838930a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&972& data-rawheight=&63& class=&origin_image zh-lightbox-thumb& width=&972& data-original=&https://pic1.zhimg.com/v2-8a7ca16d2f23f78ea925e4a4f838930a_r.jpg&&&/figure&&p&&b&五、启动 Nginx&/b&&/p&&p&Nginx 启动命令如下:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-8a758ec8deed65da97158_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&404& data-rawheight=&40& class=&content_image& width=&404&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-a0cb4da7cb97f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1080& data-rawheight=&88& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic3.zhimg.com/v2-a0cb4da7cb97f_r.jpg&&&/figure&&p&&b&六、访问站点&/b&&/p&&p&从浏览器访问我们配置的站点ip:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-c6aa0b69bfd18db5c75887b1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&988& data-rawheight=&317& class=&origin_image zh-lightbox-thumb& width=&988& data-original=&https://pic1.zhimg.com/v2-c6aa0b69bfd18db5c75887b1_r.jpg&&&/figure&&h2&&b&Nginx 常用指令说明&/b&&/h2&&p&&b&1. main 全局配置&/b&&/p&&p&nginx在运行时与具体业务功能(比如http服务或者email服务代理)无关的一些参数,比如工作进程数,运行的身份等。&/p&&ul&&li&woker_processes 2&br&在配置文件的顶级main部分,worker角色的工作进程的个数,master进程是接收并分配请求给worker处理。这个数值简单一点可以设置为cpu的核数grep ^processor /proc/cpuinfo | wc -l,也是 auto 值,如果开启了ssl和gzip更应该设置成与逻辑CPU数量一样甚至为2倍,可以减少I/O操作。如果nginx服务器还有其它服务,可以考虑适当减少。&/li&&li&worker_cpu_affinity&br&也是写在main部分。在高并发情况下,通过设置cpu粘性来降低由于多CPU核切换造成的寄存器等现场重建带来的性能损耗。如worker_cpu_affinity 00 1000; (四核)。&/li&&li&worker_connections 2048&br&写在events部分。每一个worker进程能并发处理(发起)的最大连接数(包含与客户端或后端被代理服务器间等所有连接数)。nginx作为反向代理服务器,计算公式 最大连接数 = worker_processes * worker_connections/4,所以这里客户端最大连接数是1024,这个可以增到到8192都没关系,看情况而定,但不能超过后面的worker_rlimit_nofile。当nginx作为http服务器时,计算公式里面是除以2。&/li&&li&worker_rlimit_nofile 10240&br&写在main部分。默认是没有设置,可以限制为操作系统最大的限制65535。&/li&&li&use epoll&br&写在events部分。在Linux操作系统下,nginx默认使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。在操作系统不支持这些高效模型时才使用select。&/li&&/ul&&p&&b&2. http服务器&/b&&/p&&p&与提供http服务相关的一些配置参数。例如:是否使用keepalive啊,是否使用gzip进行压缩等。&/p&&ul&&li&sendfile on&br&开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,减少用户空间到内核空间的上下文切换。对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。&/li&&li&keepalive_timeout 65 : 长连接超时时间,单位是秒,这个参数很敏感,涉及浏览器的种类、后端服务器的超时设置、操作系统的设置,可以另外起一片文章了。长连接请求大量小文件的时候,可以减少重建连接的开销,但假如有大文件上传,65s内没上传完成会导致失败。如果设置时间过长,用户又多,长时间保持连接会占用大量资源。&/li&&li&send_timeout : 用于指定响应客户端的超时时间。这个超时仅限于两个连接活动之间的时间,如果超过这个时间,客户端没有任何活动,Nginx将会关闭连接。&/li&&li&client_max_body_size 10m&br&允许客户端请求的最大单文件字节数。如果有上传较大文件,请设置它的限制值&/li&&li&client_body_buffer_size 128k&br&缓冲区代理缓冲用户端请求的最大字节数&/li&&/ul&&p&模块http_proxy:&/p&&p&这个模块实现的是nginx作为反向代理服务器的功能,包括缓存功能(另见文章)&/p&&ul&&li&proxy_connect_timeout 60&br&nginx跟后端服务器连接超时时间(代理连接超时)&/li&&li&proxy_read_timeout 60&br&连接成功后,与后端服务器两个成功的响应操作之间超时时间(代理接收超时)&/li&&li&proxy_buffer_size 4k&br&设置代理服务器(nginx)从后端realserver读取并保存用户头信息的缓冲区大小,默认与proxy_buffers大小相同,其实可以将这个指令值设的小一点&/li&&li&proxy_buffers 4 32k&br&proxy_buffers缓冲区,nginx针对单个连接缓存来自后端realserver的响应,网页平均在32k以下的话,这样设置&/li&&li&proxy_busy_buffers_size 64k&br&高负荷下缓冲大小(proxy_buffers*2)&/li&&li&proxy_max_temp_file_size&br&当proxy_buffers放不下后端服务器的响应内容时,会将一部分保存到硬盘的临时文件中,这个值用来设置最大临时文件大小,默认1024M,它与proxy_cache没有关系。大于这个值,将从upstream服务器传回。设置为0禁用。&/li&&li&proxy_temp_file_write_size 64k&br&当缓存被代理的服务器响应到临时文件时,这个选项限制每次写临时文件的大小。proxy_temp_path(可以在编译的时候)指定写到哪那个目录。&/li&&/ul&&p&proxy_pass,proxy_redirect见 location 部分。&/p&&p&模块http_gzip:&/p&&ul&&li&gzip on : 开启gzip压缩输出,减少网络传输。&/li&&ul&&li&gzip_min_length 1k : 设置允许压缩的页面最小字节数,页面字节数从header头得content-length中进行获取。默认值是20。建议设置成大于1k的字节数,小于1k可能会越压越大。&/li&&li&gzip_buffers 4 16k : 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16k代表以16k为单位,安装原始数据大小以16k为单位的4倍申请内存。&/li&&li&gzip_http_version 1.0 : 用于识别 http 协议的版本,早期的浏览器不支持 Gzip 压缩,用户就会看到乱码,所以为了支持前期版本加上了这个选项,如果你用了 Nginx 的反向代理并期望也启用 Gzip 压缩的话,由于末端通信是 http/1.0,故请设置为 1.0。&/li&&li&gzip_comp_level 6 : gzip压缩比,1压缩比最小处理速度最快,9压缩比最大但处理速度最慢(传输快但比较消耗cpu)&/li&&li&gzip_types :匹配mime类型进行压缩,无论是否指定,”text/html”类型总是会被压缩的。&/li&&li&gzip_proxied any : Nginx作为反向代理的时候启用,决定开启或者关闭后端服务器返回的结果是否压缩,匹配的前提是后端服务器必须要返回包含”Via”的 header头。&/li&&li&gzip_vary on : 和http头有关系,会在响应头加个 Vary: Accept-Encoding ,可以让前端的缓存服务器缓存经过gzip压缩的页面,例如,用Squid缓存经过Nginx压缩的数据。。&/li&&/ul&&/ul&&p&&b&3. server虚拟主机&/b&&/p&&p&http服务上支持若干虚拟主机。每个虚拟主机一个对应的server配置项,配置项里面包含该虚拟主机相关的配置。在提供mail服务的代理时,也可以建立若干server。每个server通过监听地址或端口来区分。&/p&&ul&&li&listen&br&监听端口,默认80,小于1024的要以root启动。可以为listen *:80、listen 127.0.0.1:80等形式。&/li&&li&server_name&br&服务器名,如localhost、http://www.example.com,可以通过正则匹配。&/li&&/ul&&p&模块http_stream&/p&&p&这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡,upstream后接负载均衡器的名字,后端realserver以 host: 方式组织在 {} 中。如果后端被代理的只有一台,也可以直接写在 proxy_pass 。&/p&&p&&b&4. location&/b&&/p&&p&http服务中,某些特定的URL对应的一系列配置项。&/p&&ul&&li&root /var/www/html&br&定义服务器的默认网站根目录位置。如果locationURL匹配的是子目录或文件,root没什么作用,一般放在server指令里面或/下。&/li&&li&index index.jsp index.html index.htm&br&定义路径下默认访问的文件名,一般跟着root放&/li&&li&proxy_pass http:/backend&br&请求转向backend定义的服务器列表,即反向代理,对应upstream负载均衡器。也可以proxy_pass &a href=&https://link.zhihu.com/?target=http%3A//ip& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&ip&/span&&span class=&invisible&&&/span&&/a&:port。&/li&&li&proxy_&br&proxy_set_header Host $&br&proxy_set_header X-Real-IP $remote_&br&proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_&br&这四个暂且这样设,如果深究的话,每一个都涉及到很复杂的内容,也将通过另一篇文章来解读。&/li&&/ul&&p&关于location匹配规则的写法,可以说尤为关键且基础的,参考文章 nginx配置location总结及rewrite规则写法;&/p&&p&&b&5. 其它&/b&&/p&&p&5.1 访问控制 allow/deny&/p&&p&Nginx 的访问控制模块默认就会安装,而且写法也非常简单,可以分别有多个allow,deny,允许或禁止某个ip或ip段访问,依次满足任何一个规则就停止往下匹配。如:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-d6a3aebfd64b34a9c819c136_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&480& data-rawheight=&193& class=&origin_image zh-lightbox-thumb& width=&480& data-original=&https://pic4.zhimg.com/v2-d6a3aebfd64b34a9c819c136_r.jpg&&&/figure&&p&我们也常用 httpd-devel 工具的 htpasswd 来为访问的路径设置登录密码:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-742a139fcd9a6e909f0b3c979afe2eed_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&412& data-rawheight=&147& class=&content_image& width=&412&&&/figure&&p&这样就生成了默认使用CRYPT加密的密码文件。打开上面nginx-status的两行注释,重启nginx生效。&/p&&p&&b&5.2 列出目录 autoindex&/b&&/p&&p&Nginx默认是不允许列出整个目录的。如需此功能,打开nginx.conf文件,在location,server 或 http段中加入,另外两个参数最好也加上去:&/p&&ul&&li&autoindex_exact_ 默认为on,显示出文件的确切大小,单位是bytes。改为off后,显示出文件的大概大小,单位是kB或者MB或者GB&/li&&li&autoindex_&br&默认为off,显示的文件时间为GMT时间。改为on后,显示的文件时间为文件的服务器时间&/li&&/ul&&figure&&img src=&https://pic2.zhimg.com/v2-e971b8f33c7c61a0b998ac75987ab8fc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&452& data-rawheight=&132& class=&origin_image zh-lightbox-thumb& width=&452& data-original=&https://pic2.zhimg.com/v2-e971b8f33c7c61a0b998ac75987ab8fc_r.jpg&&&/figure&&p&&b&更多技术干货敬请关注云栖社区知乎机构号:&a href=&https://www.zhihu.com/org/a-li-yun-yun-qi-she-qu-48& class=&internal&&阿里云云栖社区 - 知乎&/a&&/b&&/p&
摘要: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度…
&figure&&img src=&https://pic1.zhimg.com/v2-39064fabec5da81293dcfbb4f807762d_b.jpg& data-rawwidth=&819& data-rawheight=&263& class=&origin_image zh-lightbox-thumb& width=&819& data-original=&https://pic1.zhimg.com/v2-39064fabec5da81293dcfbb4f807762d_r.jpg&&&/figure&&p&我们在MySql中想要对比下两个不同的实例上的数据并且找出差异,除了主键之外我们还要对比每一个字段,应该怎么做呢?&/p&&p&方案一:写一个程序将两个实例里面的每一行数据都分别取出来对比,但是耗时我们无法估计,大概天荒地老吧。&/p&&p&方案二:对每一行数据所有字段合并起来,取checksum值,再按照checksum值对比,看着可行,尝试下。&/p&&p&我们可以先用MySql提供的CONCAT函数来合并字段的值,但是如果CONCAT中含有null值,那么就会导致最终的结果为NULL,所以我们要先用IFNULL函数来替换NULL值,比如:&/p&&div class=&highlight&&&pre&&code class=&language-mysql&&&span&&/span&&span class=&nf&&CONCAT&/span&&span class=&p&&(&/span&&span class=&nf&&IFNULL&/span&&span class=&p&&(&/span&&span class=&n&&C1&/span&&span class=&p&&,&/span&&span class=&s1&&''&/span&&span class=&p&&),&/span&&span class=&nf&&IFNULL&/span&&span class=&p&&(&/span&&span class=&n&&C2&/span&&span class=&p&&,&/span&&span class=&s1&&''&/span&&span class=&p&&))&/span&
&/code&&/pre&&/div&&p&由于加入表有很多行,手动拼接脚本比较累,所以我们可以使用information_schema.COLUMNS来处理:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&## 获取列名的拼接串
GROUP_CONCAT('IFNULL(',COLUMN_NAME,','''')')
FROM information_schema.COLUMNS
WHERE TABLE_NAME='table_name';
&/code&&/pre&&/div&&p&假设我们有测试表:&/p&&div class=&highlight&&&pre&&code class=&language-mysql&&&span&&/span&&span class=&k&&CREATE&/span& &span class=&k&&TABLE&/span& &span class=&nf&&t_test01&/span&
&span class=&p&&(&/span&
&span class=&n&&id&/span& &span class=&kt&&INT&/span& &span class=&kp&&AUTO_INCREMENT&/span& &span class=&k&&PRIMARY&/span& &span class=&k&&KEY&/span&&span class=&p&&,&/span&
&span class=&n&&C1&/span& &span class=&kt&&INT&/span&&span class=&p&&,&/span&
&span class=&n&&C2&/span& &span class=&kt&&INT&/span&
&span class=&p&&)&/span&
&/code&&/pre&&/div&&p&我们便可以拼接出下面的SQL:&/p&&div class=&highlight&&&pre&&code class=&language-mysql&&&span&&/span&&span class=&k&&SELECT&/span&
&span class=&n&&id&/span&&span class=&p&&,&/span&
&span class=&nf&&MD5&/span&&span class=&p&&(&/span&&span class=&nf&&CONCAT&/span&&span class=&p&&(&/span&
&span class=&nf&&IFNULL&/span&&span class=&p&&(&/span&&span class=&n&&id&/span&&span class=&p&&,&/span&&span class=&s1&&''&/span&&span class=&p&&),&/span&
&span class=&nf&&IFNULL&/span&&span class=&p&&(&/span&&span class=&n&&c1&/span&&span class=&p&&,&/span&&span class=&s1&&''&/span&&span class=&p&&),&/span&
&span class=&nf&&IFNULL&/span&&span class=&p&&(&/span&&span class=&n&&c2&/span&&span class=&p&&,&/span&&span class=&s1&&''&/span&&span class=&p&&),&/span&
&span class=&p&&))&/span& &span class=&k&&AS&/span& &span class=&n&&md5_value&/span&
&span class=&k&&FROM&/span& &span class=&n&&t_test01&/span&
&/code&&/pre&&/div&&p&我们在这里执行了之后,把结果使用beyond compare对比下,很容易就能找出不相同的行以及主键ID。&/p&&p&但是数据量小一点还行,如果数据量大了,那么执行出来的结果集也是很大的,要想对比就相当费劲,我们就可以尝试缩小结果集,可以将多行记录的MD5值合并起来求MD5值,如果最后MD5的值相同,说明这些行也是相同的,如果不同的话肯定是有差异的,我们再对比这些行就可以了。&/p&&p&假设我们按照1000行一组来进行对比,如果需要将分组后的结果合并,需要使用GROUP_CONCAT函数,注意在GROUP_CONCAT函数中添加排序保证合并数据的顺序, SQL如下:&/p&&div class=&highlight&&&pre&&code class=&language-mysql&&&span&&/span&&span class=&k&&SELECT&/span& &span class=&nf&&min&/span&&span class=&p&&(&/span&&span class=&n&&id&/span&&span class=&p&&)&/span& &span class=&k&&as&/span& &span class=&n&&min_id&/span&&span class=&p&&,&/span&
&span class=&nf&&max&/span&&span class=&p&&(&/span&&span class=&n&&id&/span&&span class=&p&&)&/span& &span class=&k&&as&/span& &span class=&n&&max_id&/span&&span class=&p&&,&/span&
&span class=&nf&&count&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&k&&as&/span& &span class=&n&&row_count&/span&&span class=&p&&,&/span&
&span class=&nf&&MD5&/span&&span class=&p&&(&/span&&span class=&nf&&GROUP_CONCAT&/span&&span class=&p&&(&/span&
&span class=&nf&&MD5&/span&&span class=&p&&(&/span&&span class=&nf&&CONCAT&/span&&span class=&p&&(&/span&
&span class=&nf&&IFNULL&/span&&span class=&p&&(&/span&&span class=&n&&id&/span&&span class=&p&&,&/span&&span class=&s1&&''&/span&&span class=&p&&),&/span&
&span class=&nf&&IFNULL&/span&&span class=&p&&(&/span&&span class=&n&&c1&/span&&span class=&p&&,&/span&&span class=&s1&&''&/span&&span class=&p&&),&/span&
&span class=&nf&&IFNULL&/span&&span class=&p&&(&/span&&span class=&n&&c2&/span&&span class=&p&&,&/span&&span class=&s1&&''&/span&&span class=&p&&),&/span&
&span class=&p&&))&/span& &span class=&k&&ORDER&/span& &span class=&k&&BY&/span& &span class=&n&&id&/span&
&span class=&p&&))&/span&&span class=&k&&AS&/span& &span class=&n&&md5_value&/span&
&span class=&k&&FROM&/span& &span class=&n&&t_test01&/span&
&span class=&k&&GROUP&/span& &span class=&k&&BY&/span& &span class=&p&&(&/span&&span class=&n&&id&/span& &span class=&k&&div&/span& &span class=&mi&&1000&/span&&span class=&p&&)&/span&
&/code&&/pre&&/div&&p&执行结果为:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&min_id
7d49defef559677fec0c
95d6b48f1e38b3550daee08
bfae8ab3ae611a
fedd1c69b36a0da568b6dbb
&/code&&/pre&&/div&&p&当差异数据较少时,即使需要对比上千万数据,我们可以轻松根据根据min_id和max_id来快速定位到哪1000条数据里存在差异,再进行逐行MD5值对比,最终找到差异行。&/p&&p&最终对比图:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-9acc76fcd7b97a9542907_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1402& data-rawheight=&284& class=&origin_image zh-lightbox-thumb& width=&1402& data-original=&https://pic1.zhimg.com/v2-9acc76fcd7b97a9542907_r.jpg&&&/figure&&p&&b&注:&/b&希望继续在IT行业突破提升自己的各位朋友,也欢迎加群,不管你自我感觉牛不牛B。&/p&
我们在MySql中想要对比下两个不同的实例上的数据并且找出差异,除了主键之外我们还要对比每一个字段,应该怎么做呢?方案一:写一个程序将两个实例里面的每一行数据都分别取出来对比,但是耗时我们无法估计,大概天荒地老吧。方案二:对每一行数据所有字段…
&figure&&img src=&https://pic1.zhimg.com/v2-ae48eecfb8fcee1aa4a5bbca_b.jpg& data-rawwidth=&740& data-rawheight=&480& class=&origin_image zh-lightbox-thumb& width=&740& data-original=&https://pic1.zhimg.com/v2-ae48eecfb8fcee1aa4a5bbca_r.jpg&&&/figure&&p&一切的技术落地,都要从思想的启蒙开始。可能出乎很多人意料之外的一个事实是,微服务很多核心理念其实在半个世纪前的一篇文章中就被阐述过了,而且这篇文章中的很多论点在软件开发飞速发展的这半个世纪中竟然一再被验证,这就是&b&康威定律&/b&。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-ce627b38cc36ce80d5aede_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&584& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic3.zhimg.com/v2-ce627b38cc36ce80d5aede_r.jpg&&&/figure&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D5ffe27fcdeaef%26chksm%3Debf6db75dcb325cfbd8d247dee2dcaca9e16f2c2%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&那康威定律到底讲了什么?和微服务又有什么鸟关系。看看这篇文章:微服务架构的理论基础 - 康威定律。&/a&&/p&&p&微服务架构被提出很短的时间内,就被越来越多的开发人员推崇,简单来说其主要的目的是有效的拆分应用,实现敏捷开发和部署 。要落地就带来了三个问题和一个思考:&/p&&ul&&li&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D98d44b0710fb%26chksm%3Debf6db5edc8152486bcb82cfc2dcd1441541fca2d%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&WHAT – 什么是微服务&/a&&/li&&li&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D98d44b0710fb%26chksm%3Debf6db5edc8152486bcb82cfc2dcd1441541fca2d%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&HOW – 怎么具体实践微服务&/a&&/li&&li&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D98d44b0710fb%26chksm%3Debf6db5edc8152486bcb82cfc2dcd1441541fca2d%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&WHY – 微服务的应用&/a&&/li&&li&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D98d44b0710fb%26chksm%3Debf6db5edc8152486bcb82cfc2dcd1441541fca2d%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&So What – 思考&/a&&/li&&/ul&&figure&&img src=&https://pic4.zhimg.com/v2-2b116e03aad6bdaeeff5f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&491& data-rawheight=&491& class=&origin_image zh-lightbox-thumb& width=&491& data-original=&https://pic4.zhimg.com/v2-2b116e03aad6bdaeeff5f_r.jpg&&&/figure&&p&答案都在这里&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D98d44b0710fb%26chksm%3Debf6db5edc8152486bcb82cfc2dcd1441541fca2d%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&:微服务(Microservice)那点事&/a& &/p&&p&当然了我们在怎么说的好,都没有&b&Martin Fowler&/b&大神本人来说说更具有权威性,虽然他已经秃了顶,但我还是很喜欢他。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-a01c035b0ed63fe1154a92_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&500& data-rawheight=&381& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic3.zhimg.com/v2-a01c035b0ed63fe1154a92_r.jpg&&&/figure&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Dd5bbd6c3d3dad950ca12e06b13b5dc78%26chksm%3Debf6dab4dc10f52beb581b489b7c5ac2aea3d0d88dcafe3b%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Martin Fowler大神第一次权威性的表述了什么是微服务,它的边界。它的这篇巨作拉开了微服务的遍地开花:Microservices&/a&&/p&&p&说了那么多,手痒痒的很,马上来一发试试!
&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D461d8ec7599758dceaf675%26chksm%3Debf6d961dcc0b4ada9ed75ffce4b36e2%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot入个门&/a&。听说你和微服务的距离就差两个Hello World,那第二个在哪里呢,马上就来:&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Dce9ac5cdceac9e3abc1cd4%26chksm%3Debf6d960dcc1fc2c6ed09ff690b34e091d836a15e86d64a33f61d4f0%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot Web综合开发&/a&。 &/p&&p&两个Hello Word之后,我就问了大家使用Spring Boot到底有多爽,大家都说要用这张图来表示,哎,没看懂,我还是太单纯。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-70b0d6af52885ed7dcfb84528ecc2466_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&170& data-rawheight=&167& class=&content_image& width=&170&&&/figure&&p&接下来就是一发不可收拾,先是体验了缓存&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Df58f3c07cbb%26chksm%3Debf6d95fdce42dbcd0b5afc5ac315a1eeaf5f%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Redis&/a&(&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Df58f3c07cbb%26chksm%3Debf6d95fdce42dbcd0b5afc5ac315a1eeaf5f%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot中Redis的使用&/a&),又是使用了前端模板引擎&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D6aadc07eddfbd0ab2c4b%26chksm%3Debf6d94fdc8150590cfb00a2dd337f2c8a2c7dda6f9a560fda8ef50ef49b852df53%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Thymeleaf&/a&(&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D6aadc07eddfbd0ab2c4b%26chksm%3Debf6d94fdc8150590cfb00a2dd337f2c8a2c7dda6f9a560fda8ef50ef49b852df53%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot 中 Thymeleaf使用详解&/a&),可谓玩的是不亦乐乎。&/p&&p&这不一会呀,又和数据库抗上了,不但是传统数据库,更是Nosql、MongoDB齐上阵:&/p&&ul&&li&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D4f0f120c9d5f6a880f0a40fb0e8f60b5%26chksm%3Debf6d94edcaad7bc47d0e302a381b6ad56feb0dfa57cde47%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot中Spring Data Jpa的使用&/a&&/li&&li&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Db2ecbd94cf544c%26chksm%3Debf6d947dca966058dcccc9e7ff2dae5b39397ecad76a29cc6cf%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot中如何优雅的使用Mybatis&/a&&/li&&li&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Dedd62fb22b2e887ac9d09f%26chksm%3Debf6d942dcf1db219a9d715f674f4632%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot和Mybatis多数据源最简解决方案&/a&&/li&&li&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Dd465acda0f130d574f76d6e40e1dddb6%26chksm%3Debf6d934dcbe5507546abcffa5c6bb13fbd77de3ecfb91%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot中mongodb的使用&/a&&/li&&/ul&&p&不时的还甩点小技巧:&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Dc961351bebb286f55ec864%26chksm%3Debf6da7edcfbdbf472b40b5b5aaa919cf6a332cfacf9%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot小技巧&/a&,但要做一个大型的系统,仅仅有小技巧还是不够的,中间件、邮件系统、MQ消息得用上:&/p&&ul&&li&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Db4a29dadcbaaf829c25c5%26chksm%3Debf6d941dcfd617cfe22bb58ebd29ac23a3aeabecb19d%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot使用RabbitMQ详解&/a&&/li&&li&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D25df87f7cfechksm%3Debf6d940dcc9f4ac48bb3e0acc41c181fd444acd693de2%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot和定时任务&/a&&/li&&li&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D5be558e3a51c97f5ec0c4%26chksm%3Debf6d935dcde512a7df1f7b2b87eascene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot开发邮件服务&/a&&/li&&/ul&&figure&&img src=&https://pic3.zhimg.com/v2-7ecdd936f9d1d2b7eb0a46_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&491& data-rawheight=&253& class=&origin_image zh-lightbox-thumb& width=&491& data-original=&https://pic3.zhimg.com/v2-7ecdd936f9d1d2b7eb0a46_r.jpg&&&/figure&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D4cbb467afda65%26chksm%3Debf6da7adcdfc7dcc2e71d40fbcda81f5fc8771%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&当然了,系统安全无小事,权限认证需考虑:Spring Boot整合Shiro登录认证和权限管理。&/a& &/p&&p&有人以前说过,程序员的一生都是增删改查,虽然我感觉这是句屁话,但有时想想还真有点道理,那我们就用Spirng Boot技术栈验证这句屁话的真伪:&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D5e3438d26dbace78792eabb4chksm%3Debf6da15dc2ea14fe206e39e7ff3e848bfa6a42ad41d8%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot+Jpa+Thymeleaf增删改查示例&/a&。&/p&&p&看了这些你们可能觉得还不够,都是小小例子,那Spring Boot究竟是否可以大量推广使用呢,我告诉你绝对行!我们不但做了,并且把它还开源了出来。&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D11a158f1812d9aae7f4ef95e5a08117d%26chksm%3Debf6dbfcdc8152ead75b070b41a82d54e7dae5ea4a54fd088ee5adeff%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Spring Boot实战:我们的第一款开源软件&/a&。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-32c5e73bbfbea8ff3ddfbec_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&362& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-32c5e73bbfbea8ff3ddfbec_r.jpg&&&/figure&&p&前两天有人给我留言说,有一个培训机构把你们的开源软件给拿去了,我说拿去干嘛了,他说给学生用这个作为示例进行培训,我说那也挺好给学生们做贡献了。今天又有人给我留言,说我们公司将你们的云收藏项目down了下来,作为模板开发我们的项目,我觉得这样也挺好。&/p&&p&看着这个开源项目在GitHub上面近一千个Star,我相信它未来还有更多的可能性,这也算是我们对IT行业做了一点微不足道的贡献。&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D11a158f1812d9aae7f4ef95e5a08117d%26chksm%3Debf6dbfcdc8152ead75b070b41a82d54e7dae5ea4a54fd088ee5adeff%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&产品地址 :http://favorites.ren&/a&&/p&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3D11a158f1812d9aae7f4ef95e5a08117d%26chksm%3Debf6dbfcdc8152ead75b070b41a82d54e7dae5ea4a54fd088ee5adeff%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&源码地址 :https://github.com/cloudfavorites&/a&&/p&&p&古人总云:居安思危,但是到了程序员这个行业,从来没有居过&b&安&/b&,&b&危&/b&随时就来。大部分人连微服务和Spring Boot是啥都没有搞清楚的时候,下一代微服务就要来临了?&/p&&figure&&img src=&https://pic1.zhimg.com/v2-a23c108c335c77b852c4da0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-a23c108c335c77b852c4da0_r.jpg&&&/figure&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Dcf72d7fb08ae8bfc7ebb96ddchksm%3Debf6da9edcde7b2aabc9c11b7f6a466f9cf947ff166%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这不,还起了一个新名字叫&/a&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Dcf72d7fb08ae8bfc7ebb96ddchksm%3Debf6da9edcde7b2aabc9c11b7f6a466f9cf947ff166%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Service Mesh&/a&:&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Dcf72d7fb08ae8bfc7ebb96ddchksm%3Debf6da9edcde7b2aabc9c11b7f6a466f9cf947ff166%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Service Mesh:下一代微服务?&/a&&/p&&p&可能你会想这货现在还是个概念?其实我也是这样想的,但是人家马上就要落地了,背后还都是巨头。&i&新闻:谷歌、IBM 和 Lyft 联合推出开放源代码项目 Istio,这是一款开放源代码服务,为开发人员提供了一种以供应商为中心的方式来连接、保护、管理和监控云平台上不同微服务器的网络。&/i&&/p&&p&Istio到底是个什么鬼?中国有个敖小剑,剑哥可真是中国&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Dcf72d7fb08ae8bfc7ebb96ddchksm%3Debf6da9edcde7b2aabc9c11b7f6a466f9cf947ff166%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Service Mesh&/a&的布道师,上周末听了剑哥演进,感觉剑哥还是个愤青,认为人类的文明要靠谷歌,反例就是国内某度,当我还在想这样讲是否合适的时候,现场有人鼓了掌。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-3ac6c9faee9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&279& data-rawheight=&300& class=&content_image& width=&279&&&/figure&&p&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzI4NDY5Mjc1Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Dbb3ac42f%26chksm%3Debf6db00dceddff16e2dd590c2b4a9b17c48e0af521%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&牛逼呼呼的几个大公司搞的Istio是啥玩意,看剑哥万字箴言:Service Mesh服务网格新生代--Istio&/a&。&/p&&p&当我们还在认识各种新名词的时候,技术都已经革新了好几代!那么我们该从哪里开始呢?我认为呀,好的技术、新潮的技术未必都要会,大概了解就行,当我们真正有需求的时候,知道有这么个东西,不至于少了视野。当架构自然升级,决定选型使用,才是真正需要深入学习的时候。&/p&&p&&b&纸上得来终觉浅,绝知此事要躬行!&/b&&/p&&p&&i&咋啦,你还想学习Spring Boot?可以来看看我的达人课《&/i&&a href=&http://link.zhihu.com/?target=http%3A//gitbook.cn/gitchat/column/59f5daa149cdba& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&快速学习Spring Boot技术栈&/a&&i&》。&/i&&/p&&p&&i&原文出处:&/i&&a href=&http://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s/9Wmm2N24-cdRitodO34bWA& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这一篇文章带你感受微服务的生和死,Spring Boot是生和死的主旋律。&/a&&/p&&p&&/p&
一切的技术落地,都要从思想的启蒙开始。可能出乎很多人意料之外的一个事实是,微服务很多核心理念其实在半个世纪前的一篇文章中就被阐述过了,而且这篇文章中的很多论点在软件开发飞速发展的这半个世纪中竟然一再被验证,这就是康威定律。
&figure&&img src=&https://pic1.zhimg.com/v2-649f14f6a804e92d99ed68cf_b.jpg& data-rawwidth=&1674& data-rawheight=&814& class=&origin_image zh-lightbox-thumb& width=&1674& data-original=&https://pic1.zhimg.com/v2-649f14f6a804e92d99ed68cf_r.jpg&&&/figure&&p&一、数据结构与算法基础&/p&&ul&&li&说一下几种常见的排序算法和分别的复杂度。&/li&&li&用Java写一个冒泡排序算法&/li&&li&描述一下链式存储结构。&/li&&li&如何遍历一棵二叉树?&/li&&li&倒排一个LinkedList。&/li&&li&用Java写一个递归遍历目录下面的所有文件。&/li&&/ul&&p&&br&&/p&&p&二、Java基础&/p&&ul&&li&接口与抽象类的区别?&/li&&li&Java中的异常有哪几类?分别怎么使用?&/li&&li&常用的集合类有哪些?比如List如何排序?&/li&&li&ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和优缺点?&/li&&li&内存溢出是怎么回事?请举一个例子?&/li&&li&==和equals的区别?&/li&&li&hashCode方法的作用?&/li&&li&NIO是什么?适用于何种场景?&/li&&li&HashMap实现原理,如何保证HashMap的线程安全?&/li&&li&JVM内存结构,为什么需要GC?&/li&&li&NIO模型,select/epoll的区别,多路复用的原理&/li&&li&Java中一个字符占多少个字节,扩展再问int, long, double占多少字节&/li&&li&创建一个类的实例都有哪些办法?&/li&&li&final/finally/finalize的区别?&/li&&li&Session/Cookie的区别?&/li&&li&String/StringBuffer/StringBuilder的区别,扩展再问他们的实现?&/li&&li&Servlet的生命周期?&/li&&li&如何用Java分配一段连续的1G的内存空间?需要注意些什么?&/li&&li&Java有自己的内存回收机制,但为什么还存在内存泄露的问题呢?&/li&&li&什么是java序列化,如何实现java序列化?(写一个实例)?&/li&&li&String s = new String(&abc&);创建了几个 String Object?&/li&&/ul&&p&&br&&/p&&p&三、JVM&/p&&ul&&li&JVM堆的基本结构。&/li&&li&JVM的垃圾算法有哪几种?CMS垃圾回收的基本流程?&/li&&li&JVM有哪些常用启动参数可以调整,描述几个?&/li&&li&如何查看JVM的内存使用情况?&/li&&li&Java程序是否会内存溢出,内存泄露情况发生?举几个例子。&/li&&li&你常用的JVM配置和调优参数都有哪些?分别什么作用?&/li&&li&JVM的内存结构?&/li&&li&常用的GC策略,什么时候会触发YGC,什么时候触发FGC?&/li&&/ul&&p&&br&&/p&&p&四、多线程/并发&/p&&ul&&li&如何创建线程?如何保证线程安全?&/li&&li&如何实现一个线程安全的数据结构&/li&&li&如何避免死锁&/li&&li&Volatile关键字的作用?&/li&&li&HashMap在多线程环境下使用需要注意什么?为什么?&/li&&li&Java程序中启动一个线程是用run()还是start()?&/li&&li&什么是守护线程?有什么用?&/li&&li&什么是死锁?如何避免&/li&&li&线程和进程的差别是什么?&/li&&li&Java里面的Threadlocal是怎样实现的?&/li&&li&ConcurrentHashMap的实现原理是?&/li&&li&sleep和wait区别&/li&&li&notify和notifyAll区别&/li&&li&volatile关键字的作&/li&&li&ThreadLocal的作用与实现&/li&&li&两个线程如何串行执行&/li&&li&上下文切换是什么含义&/li&&li&可以运行时kill掉一个线程吗?&/li&&li&什么是条件锁、读写锁、自旋锁、可重入锁?&/li&&li&线程池ThreadPoolExecutor的实现原理?&/li&&/ul&&p&&br&&/p&&p&五、Linux使用与问题分析排查&/p&&ul&&li&使用两种命令创建一个文件?&/li&&li&硬链接和软链接的区别?&/li&&li&Linux常用命令有哪些?&/li&&li&怎么看一个Java线程的资源耗用?&/li&&li&Load过高的可能性有哪些?&/li&&li&/etc/hosts文件什么做用?&/li&&li&如何快速的将一个文本中所有“abc”替换为“xyz”?&/li&&li&如何在log文件中搜索找出error的日志?&/li&&li&发现磁盘空间不够,如何快速找出占用空间最大的文件?&/li&&li&Java服务端问题排查(OOM,CPU高,Load高,类冲突)&/li&&li&Java常用问题排查工具及用法(top, iostat, vmstat, sar, tcpdump, jvisualvm, jmap, jconsole)&/li&&li&Thread dump文件如何分析(Runnable,锁,代码栈,操作系统线程ID关联)&/li&&li&如何查看Java应用的线程信息?&/li&&/ul&&p&&br&&/p&&p&六、框架使用&/p&&ul&&li&描述一下Hibernate的三个状态?&/li&&li&Spring中Bean的生命周期。&/li&&li&SpringMVC或Struts处理请求的流程。&/li&&li&Spring AOP解决了什么问题?怎么实现的?&/li&&li&Spring事务的传播属性是怎么回事?它会影响什么?&/li&&li&Spring中BeanFactory和FactoryBean有什么区别?&/li&&li&Spring框架中IOC的原理是什么?&/li&&li&spring的依赖注入有哪几种方式&/li&&li&struts工作流程&/li&&li&用Spring如何实现一个切面?&/li&&li&Spring 如何实现数据库事务?&/li&&li&Hibernate对一二级缓存的使用,Lazy-Load的理解;&/li&&li&mybatis如何实现批量提交?&/li&&/ul&&p&&br&&/p&&p&七、数据库相关&/p&&ul&&li&MySQL InnoDB、Mysaim的特点?&/li&&li&乐观锁和悲观锁的区别?&/li&&li&数据库隔离级别是什么?有什么作用?&/li&&li&MySQL主备同步的基本原理。&/li&&li&select * from table t where size & 10
group by size order by size的sql语句执行顺序?&/li&&li&如何优化数据库性能(索引、分库分表、批量操作、分页算法、升级硬盘SSD、业务优化、主从部署)&/li&&li&SQL什么情况下不会使用索引(不包含,不等于,函数)&/li&&li&一般在什么字段上建索引(过滤数据最多的字段)&/li&&li&如何从一张表中查出name字段不包含“XYZ”的所有行?&/li&&li&MySQL,B+索引实现,行锁实现,SQL优化&/li&&li&Redis,RDB和AOF,如何做高可用、集群&/li&&li&如何解决高并发减库存问题&/li&&li&mysql存储引擎中索引的实现机制;&/li&&li&数据库事务的几种粒度;&/li&&li&行锁,表锁;乐观锁,悲观锁&/li&&/ul&&p&&br&&/p&&p&八、网络协议和网络编程&/p&&ul&&li&TCP建立连接的过程。&/li&&li&TCP断开连接的过程。&/li&&li&浏览器发生302跳转背后的逻辑?&/li&&li&HTTP协议的交互流程。HTTP和HTTPS的差异,SSL的交互流程?&/li&&li&Rest和Http什么关系? 大家都说Rest很轻量,你对Rest风格如何理解?&/li&&li&TCP的滑动窗口协议有什么用?讲讲原理。&/li&&li&HTTP协议都有哪些方法?&/li&&li&交换机和路由器的区别?&/li&&li&Socket交互的基本流程?&/li&&li&http协议(报文结构,断点续传,多线程下载,什么是长连接)&/li&&li&tcp协议(建连过程,慢启动,滑动窗口,七层模型)&/li&&li&webservice协议(wsdl/soap格式,与rest协议的区别)&/li&&li&NIO的好处,Netty线程模型,什么是零拷贝&/li&&/ul&&p&&br&&/p&&p&九、Redis等缓存系统/中间件/NoSQL/一致性Hash等&/p&&ul&&li&列举一个常用的Redis客户端的并发模型。&/li&&li&HBase如何实现模糊查询?&/li&&li&列举一个常用的消息中间件,如果消息要保序如何实现?&/li&&li&如何实现一个Hashtable?你的设计如何考虑Hash冲突?如何优化?&/li&&li&分布式缓存,一致性hash&/li&&li&LRU算法,slab分配,如何减少内存碎片&/li&&li&如何解决缓存单机热点问题&/li&&li&什么是布隆过滤器,其实现原理是? False positive指的是?&/li&&li&memcache与redis的区别&/li&&li&zookeeper有什么功能,选举算法如何进行&/li&&li&map/reduce过程,如何用map/reduce实现两个数据源的联合统计&/li&&/ul&&p&&br&&/p&&p&十、设计模式与重构&/p&&ul&&li&你能举例几个常见的设计模式&/li&&li&你在设计一个工厂的包的时候会遵循哪些原则?&/li&&li&你能列举一个使用了Visitor/Decorator模式的开源项目/库吗?&/li&&li&你在编码时最常用的设计模式有哪些?在什么场景下用?&/li&&li&如何实现一个单例?&/li&&li&代理模式(动态代理)&/li&&li&单例模式(懒汉模式,并发初始化如何解决,volatile与lock的使用)&/li&&li&JDK源码里面都有些什么让你印象深刻的设计模式使用,举例看看?&/li&&/ul&
一、数据结构与算法基础说一下几种常见的排序算法和分别的复杂度。用Java写一个冒泡排序算法描述一下链式存储结构。如何遍历一棵二叉树?倒排一个LinkedList。用Java写一个递归遍历目录下面的所有文件。 二、Java基础接口与抽象类的区别?Java中的异常有哪…
&h2&&b&技术类:&/b&&/h2&&p&&b&1.Storm 实战&/b&&/p&&b&&figure&&img src=&https://pic3.zhimg.com/v2-27fbd1b72b1b28ecc278b62_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&434& data-rawheight=&531& class=&origin_image zh-lightbox-thumb& width=&434& data-original=&https://pic3.zhimg.com/v2-27fbd1b72b1b28ecc278b62_r.jpg&&&/figure&&/b&&p&&b&作者:&/b&商家数据业务部, 隶属于阿里巴巴集团数据平台事业部。&/p&&p&&b&出版时间:&/b&&/p&&p&&b&内容简介:&/b&&/p&&p&随着大数据实时处理需求的强劲增长,Storm的出现填补了大数据处理生态系统的缺失,并被越来越多的公司所采用。阿里巴巴集团数据平台事业部商家数据业务部正是最早使用Storm的技术团队之一。&/p&&p&《Storm实战:构建大数据实时计算 》是一本系统并且具有实践指导意义的Storm工具书和参考书,对Storm整个技术体系进行了全面的讲解,不仅包括对基本概念、特性的介绍,也涵盖了一些原理说明。&/p&&p&实战性很强,各章节都提供了一些小案例,同时对于本地,以及集群环境的部署有详细介绍,易于理解,操作性强。&/p&&p&《Storm实战:构建大数据实时计算 》一共分为10章:第1章全面介绍了Storm的特性、能解决什么问题,以及和其他流计算系统的对比;第2章通过实际运行一个简单的例子,以及介绍本地环境和集群环境的搭建,让读者对Storm有了直观的认识;第3章深入讲解了Storm的基本概念,同时实现一个Topology运行;第4章和第5章阐述了Storm的并发度、可靠处理的特性;第6章~第8章详细而系统地讲解了几个高级特性:事务、DRPC和Trident;第9章以实例的方式讲解了Storm在实际业务场景中的应用;第10章总结了几个在大数据场景应用过程中遇到的经典问题,以及详细的排查过程。&/p&&p&&br&&/p&&p&&b&2.淘宝技术这十年&/b&&/p&&b&&figure&&img src=&https://pic2.zhimg.com/v2-b636fc388d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&428& data-rawheight=&544& class=&origin_image zh-lightbox-thumb& width=&428& data-original=&https://pic2.zhimg.com/v2-b636fc388d_r.jpg&&&/figure&&/b&&p&&b&作者:&/b& 子柳,本名赵超,创办了“淘宝技术大学”,培养内外部工程师众多,人称“校长”&/p&&p&&b&出版时间:&/b&&/p&&p&&b&内容简介:&/b&&/p&&p&任何网站的发展都不是一蹴而就的。它在发展过程中会遇到各种各样的问题和业务带来的压力。正是这些问题和压力推动着技术的进步和发展,而技术的发展反过来又会促进业务的更大提升。如今淘宝网的流量排名已是全球前15名、国内前3名,其系统服务器也从一台发展到万台以上。 《淘宝技术这十年》从工程师的角度讲述淘宝这个超大规模互联网系统的成长历程,及其所有主动和被动的技术变革的前因后果。书中有幕后故事、产品经验、架构演进、技术启蒙,也有大牛成长、业内八卦、失败案例、励志故事。全书文风流畅,有技术人员特有的幽默感;内容积极正面,有现场感,全部是作者亲身经历。&/p&&p&&br&&/p&&p&&b&3.人人都是产品经理&/b&&/p&&b&&figure&&img src=&https://pic4.zhimg.com/v2-55bdd90b5c4d3d67a037_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&488& data-rawheight=&559& class=&origin_image zh-lightbox-thumb& width=&488& data-original=&https://pic4.zhimg.com/v2-55bdd90b5c4d3d67a037_r.jpg&&&/figure&&/b&&p&&b&作者:&/b&苏杰(负责过阿里产品大学、阿里内部的创新孵化器。)&/p&&p&&b&出版时间:&/b&&/p&&p&&b&内容介绍:&/b&&/p&&p&《人人2.0》闪亮登场,加速迈向泛产品经理时代。&/p&&p&《人人都是产品经理(纪念版)》为经典畅销书《人人都是产品经理》的内容升级版本。对于大量成长起来的优秀互联网产品经理,为数不少想投身产品工作的其他岗位从业者,以及更多有志从事这一职业的学生而言,这本书曾是他们记忆深刻的启蒙读物、思想基石和行动手册。作者以分享经历与体会为出发点,以“朋友间聊聊如何做产品”的语气,将自己数年产品工作过程中学到的思维方法与做事方式,及其它们对自己的帮助,系统性地梳理为用户、需求、项目、团队、战略、修养几大话题,完整而生动地回答了“我们为什么而做”、“在做什么事,解决什么人的什么问题”、“何时,和谁一起做”、“需要什么能力”等人人都要面对的核心问题。&/p&&p&《人人都是产品经理(纪念版)》面向“1到3岁的产品经理”,既有知识与方法,也有流程与实战,更有感悟与思考,适合刚入门的产品经理、产品规划师、需求分析师,以及用户体验、市场运营、技术部门的朋友,特别是互联网、软件行业的上述人群,也同样适合对做产品感兴趣的学生。&/p&&p&&br&&/p&&p&&b&4.淘宝十年产品事&/b&&/p&&b&&figure&&img src=&https://pic3.zhimg.com/v2-c29eff8d9b120c88b5ee8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&511& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&511& data-original=&https://pic3.zhimg.com/v2-c29eff8d9b120c88b5ee8_r.jpg&&&/figure&&/b&&p&&br&&/p&&p&&b&作者&/b&:苏杰,浙江大学硕士,2006年加入阿里巴巴集团,担任产品经理至今。&/p&&p&&b&出版时间:&/b&&/p&&p&&b&内容简介:&/b&&/p&&p&产品经理发展到一定阶段,再要成长,光靠学习一些知识、技能已经不够,必须通过经典案例来学习,而《淘宝十年产品事》,就提供了小到页面细节、大到平台架构的丰富案例。电商从业者,无法无视“淘宝”这个标杆的存在,《淘宝十年产品事》可帮助大家做出更好的选择。愿意思考的人们,也可以从“淘宝”这个产品,或者说社会现象、经济现象里,找到每天都能体会到的那些变化的原因,从而想得更明白,活得更通透。 《淘宝十年产品事》细数淘宝成立十年来经历的重大变化、核心产品的设计,以及背后的思考,深挖到淘宝信奉的价值逻辑。内容涵盖商品分类与管理;首页、List页等导购产品;搜索与导航;C2C、B2C、C2B等电商模式的演化;交易的前中后:如营销工具、购物车、订单、评价;旺旺;天猫、聚划算,等等。适合产品经理、电商从业者及所有愿意思考的读者阅读。&/p&&p&&br&&/p&&p&&b&5.白帽子讲WEB安全&/b&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-cda9f3b3f6d8cfbb4b1a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&476& data-rawheight=&596& class=&origin_image zh-lightbox-thumb& width=&476& data-original=&https://pic3.zhimg.com/v2-cda9f3b3f6d8cfbb4b1a_r.jpg&&&/figure&&p&&br&&/p&&p&&b&作者:&/b&吴翰清,2005年加入阿里巴巴,2007年成为阿里巴巴最年轻的专家。完成支付宝的安全评估与安全体系建设工作。&/p&&p&&b&出版时间:&/b&&/p&&p&&b&内容简介&/b&:&/p&&p&互联网时代的数据安全与个人隐私受到前所未有的挑战,各种新奇的攻击技术层出不穷。如何才能更好地保护我们的数据?《白帽子讲Web安全(纪念版)》将带你走进Web安全的世界,让你了解Web安全的方方面面。黑客不再神秘,攻击技术原来如此,小网站也能找到适合自己的安全道路。大公司如何做安全,为什么要选择这样的方案呢?在《白帽子讲Web安全(纪念版)》中都能找到答案。详细的剖析,让你不仅能“知其然”,更能“知其所以然”。&/p&&p&《白帽子讲Web安全(纪念版)》根据安全宝副总裁吴翰清之前在互联网公司若干年的实际工作经验而写成,在解决方案上具有极强的可操作性;深入分析诸多错误的方法及误区,对安全工作者有很好的参考价值;对安全开发流程与运营的介绍,同样具有深刻的行业指导意义。&/p&&p&&br&&/p&&p&&b&6.数据挖掘与数据化运营实战&/b&&/p&&b&&figure&&img src=&https://pic2.zhimg.com/v2-6e9298a3adf1ae08324d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&434& data-rawheight=&567& class=&origin_image zh-lightbox-thumb& width=&434& data-original=&https://pic2.zhimg.com/v2-6e9298a3adf1ae08324d_r.jpg&&&/figure&&/b&&p&&b&作者:&/b&卢辉,阿里巴巴 BI部门数据分析专家&/p&&p&&b&出版时间:&/b&&/p&&p&&b&内容简介:&/b&&/p&&p&本书是目前有关数据挖掘在数据化运营实践领域比较全面和系统的著作,也是诸多数据挖掘书籍中为数不多的穿插大量真实的实践应用案例和场景的著作,更是创造性地针对数据化运营中不同分析挖掘课题类型,推出一一对应的分析思路集锦和相应的分析技巧集成,为读者提供“菜单化”实战锦囊的著作。作者结合自己数据化运营实践中大量的项目经验,用通俗易懂的“非技术”语言和大量活泼生动的案例,围绕数据分析挖掘中的思路、方法、技巧与应用,全方位整理、总}

我要回帖

更多关于 浏览器阻止弹出窗口 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信