为您找到搜索结果:1775个
从零开始实现RPC框架
最近被人问到RPC相关的东西~突然发现还是有很多原理没有清楚,所以要好好系统的学习一下RPC以及它的原理先大致了解一下RPC的大概,原文:https://blog.csdn.net/top_code/article/details/54615853----------------------------------------------------------------------------------------------------------------------- RPC概述RPC(RemoteProcedureCall)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样。现在互联网应用的量级越来越大,单台计算机的能力有限,需要借助可扩展的计算机集群来完成,分布式的应用可以借助RPC来完成机器之间的调用。RPC框架原理在RPC框架中主要有三个角色:Provider、Consumer和Registry。如下图所示: 节点角色说明: *Server:暴露服务的服务提供方。 ...
Flume_企业中日志处理
企业中的日志存放_1201611/20161112.log.tmp 第二天文件变为20161112.log与20161113.log.tmp拷贝一份flume-conf.properties.template改名为dir-mem-hdfs.properties实现监控某一目录,如有新文件产生则上传至hdfs,另外过滤掉新文件中tmp文件dir-mem-hdfs.properties a1.sources=s1 a1.channels=c1 a1.sinks=k1 #definedthesource a1.sources.s1.type=spooldir a1.sources.s1.spoolDir=/opt/data/log_hive/20161109 a1.sources.s1.includePattern=([^]*.log$)#包含某些字段 a1.sources.s1.ignorePattern=([^]*.tmp$)#忽略某些字段 #definedthechannel a1.channels.c1.type=memory a1.channels.c1.c...
每日理解(一) Spring框架
控制反转 在JavaSE中通过new来创建对象。而在Spring中通过容器来控制对象。所谓的控制包括:对象的创建、初始化、以及销毁。我们有之前的主动控制对象,变为了Spring容器控制对象,而我们被动的接受。控制权被反转了。 依赖注入 需要明白几个问题:谁依赖谁、为什么需要依赖、谁注入谁、注入了什么?谁依赖谁:A对象、B对象、C对象...依赖于Spring容器为什么需要依赖:Spring通过容器创建了对象,注入了对象所需要的数据。并且管理对象的生命周期,负责了对象的销毁工作。谁注入谁:Spring容器注入了A对象、B对象、C对象...注入了什么:Spring容器将A对象所需要的数据以及依赖的数据,注入给了A对象 --- --- --- --- ------ --- --- --- --- 持续更新中--- --- --- --- ------ --- --- ---...
Win10企业版永久激活方法(cmd命令)
Win10企业版永久激活工具请点击这里哦>>>>>Win10企业版永久激活工具<<<<<Win10企业版永久激活方法:1、右击桌面的左下角的“Windows”图标,从其右键菜单中选择“命令提示符(管理员)”项,以便打开MSDOS界面。 2、待打开MSDOS界面后,依次输入以下命令:slmgr.vbs/upk由于Win10正式版允许在命令提示符界面使用“Ctrl+V”进行粘贴操作,因此我们可以复制以上命令,然后在MSDOW窗口中按“Ctrl+V”或“右击”以粘贴此命令,按回车进行确定。此时弹出窗口显未“已成功卸载了产品密钥”。 3、接着输入以下命令:slmgr/ipkNPPR9-FWDCX-D2C8J-H872K-2YT43弹出窗口提示:“成功的安装了产品密钥”。 4、继续输入以下命令:slmgr/skmszh.us.to弹出窗口提示:“密钥管理服务计算机名成功的设置为zh.us.to”。 5、输入以下命令:slmgr/ato按回车键后将弹出...
Scrapy框架
Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。Scrapy使用了Twisted['twɪstɪd](其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。 ScrapyEngine(引擎):负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。Scheduler(调度器):它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。Downloader(下载器):负责下载ScrapyEngine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给ScrapyEngine(引擎),由引擎交给Spider来处理,Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取It...
框架之Tornado(简单介绍)
以Django为代表的pythonweb应用部署时采用wsgi协议与服务器对接(被服务器托管),而这类服务器通常都是基于多线程的,也就是说每一个网络请求服务器都会有一个对应的线程来用web应用(如Django)进行处理。用户量大,高并发如秒杀抢购、双十一某宝购物、春节抢火车票大量的HTTP持久连接使用同一个TCP连接来发送和接收多个HTTP请求/应答,而不是为每一个新的请求/应答打开新的连接的方法。对于HTTP1.0,可以在请求的包头(Header)中添加Connection:Keep-Alive。对于HTTP1.1,所有的连接默认都是持久连接。对于这两种场景,通常基于多线程的服务器很难应对。对于前文提出的这种高并发问题,我们通常用C10K这一概念来描述。C10K—— Concurrentlyhandling tenthousand connections,即并发10000个连接。对于单台服务器而言,根本无法承担,而采用多台服务器分布式又意味着高昂的成本。如何解决C10K问题?Tornado在设计之初就考虑到了性能因素,旨在解决C10K问题,这样的设计使得...
移动端库和框架
移动端的操作方式和PC端是不同的,移动端主要用手指操作,所以有特殊的touch事件,touch事件包括如下几个事件:1、touchstart://手指放到屏幕上时触发2、touchmove://手指在屏幕上滑动式触发3、touchend://手指离开屏幕时触发4、touchcancel://系统取消touch事件的时候触发,比较少用移动端一般有三种操作,点击、滑动、拖动,这三种操作一般是组合使用上面的几个事件来完成的,所有上面的4个事件一般很少单独使用,一般是封装使用来实现这三种操作,可以使用封装成熟的js库。Zepto是一个轻量级的针对现代高级浏览器的JavaScript库,它与jquery有着类似的api。如果你会用jquery,那么你也会用zepto。Zepto的一些可选功能是专门针对移动端浏览器的;它的最初目标是在移动端提供一个精简的类似jquery的js库。zepto官网:http://zeptojs.com/zepto中文api:http://www.css88.com/doc/zeptojs_api/zepto包含很多模块,默认下载版本包含的模块有Core,Ajax,Ev...
使用layer.open打开一个框架页面执行成功回调时,怎么向父页面的Vue传值且能动态绑定数据?
父页面主要数据:varvueObj=newVue({el:'#feedbackList',data:{feedList:[]},methods:{loadFeedback:function(){varjsonStr=$("#newData").val()varjson=JSON.parse(jsonStr);this.feedList.unshift(json);}}})<divid="feedbackList"><inputtype="hidden"id="newData"v-on:click="loadFeedback()"/><divclass="row-fluid"v-for="iteminfeedList"><divclass="span12">...</div></div></div>弹出层框架页面窗口主要数据: 1)复杂嵌套框架情况下使用:$.Save({url:"../../Manage/Feedback/Save?keyValue=...",param:postData,lo...
使用iframe框架打开页面(layer.open)并存在嵌套时怎样获取到嵌套内的框架对象?
首先,在使用layer.open打开的页面内使用varindex=parent.layer.getFrameIndex(window.name);获取当前所打开框架的索引序号,并把此序号传送给下一级打开的窗口页面,那么在这个页面上使用:var$obj=$.currentIframe().frames['layui-layer-iframe'+index];就可以获取到上一级页面的所有元素对象例子:打开“详情”页functiondetail(keyValue){layer.open({id:'Detail',type:2,title:'详情',shadeClose:true,anim:7,isOutAnim:2,move:false,offset:'rb',area:['70%','100%'],content:'../../Manage/Detail?keyValue='+keyValue})}在“详情”页上打开另一页面“反馈”页functionfeedback(){varindex=parent.layer.getFrameIndex(window.name);dialogOpen(...
MVC与MVVM框架
什么是MVC?MVC思想:Controller负责将Model的数据用View显示出来。Model:处理数据逻辑的部分,负责在数据库中存储数据。View:处理数据的显示部分Controller:是应用程序的交互部分,通常控制器负责从视图中读取数据,控制用户输入,并向模型发送数据。Controller是MVC中数据和视图的协调者,也就是Controller里面把Model的数据赋值给view来实现,或者是View接收用户输入的数据然后由Controller把这些数据传给Model来保存到本地或者上传到服务器。通信流程:(1)View接收用户传入的数据,传送指令到Controller(2)Controller完成业务逻辑后,要求Model改变状态(3)Model将新的数据发送到View,用户得到反馈所有通信都是单向的。在MVC中,view是可以直接访问model的,从而view里会包含model的信息,不可避免的还要包含一些业务逻辑。MVC关注的是Model的不变,所以在MVC模型中,Model不依赖于View,但是View是依赖于Model的。不仅如此,因为有一些业务逻辑在View里实现...
JS框架Vue和React
React和Vue有许多相似之处,它们都有:使用VirtualDOM提供了响应式(Reactive)和组件化(Composable)的视图组件。将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。区别:1、渲染过程Vue在渲染过程中,会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。 React每当应用的状态被改变时,全部子组件都会重新渲染。这可以通过shouldComponentUpdate这个生命周期方法来进行控制。2、模板vsJSX在React中,一切都是JavaScript。不仅仅是HTML可以用JSX来表达,现在的潮流也越来越多地将CSS也纳入到JavaScript中来处理。这类方案有其优点,但也存在一些不是每个开发者都能接受的取舍。React与Vue最大的不同是模板的编写。Vue鼓励你去写近似常规HTML的模板。写起来很接近标准HTML元素,只是多了一些属性。在React中,所有的组件的渲染功能都依靠JSX。JSX是使用XML语法编写JavaScript的一种语法。 ...
JS框架-Vue.js
Vue(读音/vjuː/,类似于 view)是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。 绑定元素特性:v-bind 特性被称为指令。指令带有前缀 v-,以表示它们是Vue提供的特殊特性。它们会在渲染的DOM上应用特殊的响应式行为。在这里,该指令的意思是:“将这个元素节点的 title 特性和Vue实例的 message 属性保持一致”。如果你再次打开浏览器的JavaScript控制台,输入 app2.message='新消息',就会再一次看到这个绑定了 title 特性的HTML已经进行了更新。控制切换一个元素是否显示: v-for指令可以绑定数组的数据来渲染一个项目列表为了让用户和你的应用进行交互,我们可以用 v-on 指令添加一个事件监听器<buttonv-on:click="reverseMessage">...
JS框架-React.js
JavaScript表达式我们可以在JSX中使用JavaScript表达式。表达式写在花括号{}中。实例如下:<divid="example"></div> <scripttype="text/babel"> ReactDOM.render( <div> <h1>{1+1}</h1> </div> , document.getElementById('example') ); &...
ci框架总结(一)
在进行数据库操作前一定要先初始化数据库类:$this->load->database();在model类中:classMyiapp_modelextendsCI_Model{publicfunction__construct(){$this->load->database();$this->dbName='iapp';}}在控制器中:classMyiappextendsBase_Controller{publicfunction__construct(){parent::__construct();$this->load->model("myiapp_model");$this->pkg='';$this->dck=explode(',',file_get_contents('./dck.json'));}//列表publicfunctionmyiapplist(){//导航赋值$data=$this->getNavList(8,6);$data['list']=$this->myiapp_model->getLi...
ci 框架中defined('BASEPATH') OR exit('No direct script access allowed');
作用:OR就是前面的是true时,就不走后面了。加这个是为了防止不是从index.php访问到的控制器...