SD 框架 2.7 版本发布助力企业开发
选择SD框架助力企业开发今年年底历时2年多的迭代,这是SD框架硕果满满的一年,通过不断的迭代和改进SD框架已经在圈内有良好的口碑,不少新生的框架借鉴了SD的设计思想,SD框架也被不少创业型公司和大型企业使用。最新一版的SD框架是2.7.1版本,最大的变化就是添加了一个集群管理界面,可以通过可视化的界面监控集群服务器的运行状态,并进行一些查询操作。其余更新如下:1.“$SYS”服务器监控专用订阅主题,开发者可以订阅$SYS主题获得服务器监控信息2.服务器间的RPC由单向通知改为双向交互3.增加Timer定时器,该定时器在多进程中共享,A进程创建了定时B进程可以取消定时,可以在Controller,Model中使用,但请注意有严格使用方式的规范,使用不当容易导致数据错乱。4.UID现在不限制为int,可以使用String。SD框架到底是什么技术SD框架全称SwooleDistributed,从名称上看一个是Swoole一个是Distributed,他是基于Swoole扩展的可以分布式部署的应用服务器框架。借助于PHP的高效开发环境,
这次真的忽略了一些ActiveMQ内心的娇艳
这次真的忽略了一些ActiveMQ内心的娇艳好久没总结了,内心有点空虚了,所以今天主要给园里的朋友们分享一点儿这几天使用ActiveMQ过程中踩过的小坑,虽然说这东西简单易用,代码几行配置也就几行,问题不大但是后果有点严重,所以就要必要总结一下了。首先ActiveMQ有俩种消息队列模式:点对点和发布订阅,这俩种都有不可替代的应用场景,前者适用于消息唯一传递的业务,后者适用于分布式环境下进行多面数据同步的操作。其次一些关于它的官方简介和安装步骤我就不占博客园数据库的内存了,写了也没啥鸟用,用烂的朋友想要提取点儿精华,没接触过的朋友请先安装一个玩玩点对点和发布订阅模式吧(http://www.cnblogs.com/1315925303zxz/p/6377551.html),理解一下这俩种机制的区别和出现消息临界值时的特性,我下面也放一些我前期用于测试的Demo,其中总结了一些他们二者的主要区别,都是实战中必须要考虑的因素可以参考:假设:存在一个消息生产者、多个消费者,分别在点对点和发布订阅模式下进行消息获取,当出现消息临界值的时候都有什
为什么不能和程序媛谈恋爱?
「女人是水做的,男人是泥做的,而程序媛是水泥做的。」程序媛是这样一种生物,每月最女人的时间,大概就是亲戚造访的那一周吧。在这里,我要很严肃的告诉你们,不能和程序媛谈恋爱,否则后果自负。说说原因吧。基本上告别「精致妆发,时尚穿搭说真的,大部分程序媛真的不太会化妆,也就涂点保湿隔离,能熟练涂粉底,BB霜的,已经是最高规格。如果拥有超过四只以上的口红,那么她极有可能引领了办公室潮流。如果一周五天每天穿搭更换,风格迥异,那么她极有可能已经被评选为办公室走在时尚最前沿的人。程序媛大多曾经是班级中数一数二的学霸,醉心于学术,不能自拔,哪有时间学习化妆。再由于工科班级压倒性的性别优势,周边也没有太多浓妆艳抹的妖艳贱货,让素颜朝天的妹子同样炙手可热。她们平时工作也就是每天对着电脑欢乐的敲代码,不需要经常与人打交道,几乎没有学习化妆的意识与动力,久而久之成了手残党。即使化了妆,也很可能受到周边程序猿们的围观与嘲笑,瞬间想找个树洞静一静。女程序媛的这种特质,让她们被贴上了女汉子,不精致的标签。对细节要求高点的男生,和程序媛谈
【Android】MediaPlayer生命周期分析
成功者和其他人最大的区别就是,他们真正动手去做了。MediaPlayer类可以用来播放音频、视频和流媒体。MediaPlayer包含了Audio和Video的播放功能,在Android界面上,Music和Video两个应用程序都是调用MediaPlayer来实现的。首先来看看MediaPlayer的生命周期。MediaPlayer生命周期图椭圆代表MediaPlayer对象可能驻留的状态。弧线表示驱动MediaPlayer在各个状态之间迁移的播放控制操作。这里有两种类型的弧线。由一个箭头开始的弧代表同步的方法调用,而以双箭头开头的代表的弧线代表异步方法调用。MediaPlayer是基于状态的,只有在特定状态才能执行特定的方法。所以认清MediaPlayer生命周期十分重要的。1、当MediaPlayer通过new方式进行初始化或MediaPlayer调用了reset()方法后,它就处于Idle状态。当调用了release()方法后,它就处于End状态。这两种状态之间是MediaPlayer对象的生命周期。1.1、在一个新构建的Me
一千个不用 Null 的理由
港真,Null貌似在哪里都是个头疼的问题,比如Java里让人头疼的NullPointerException,为了避免猝不及防的空指针异常,千百年来程序猿们不得不在代码里小心翼翼的各种if判断,麻烦而又臃肿,为此java8引入了Optional来避免这一问题。下面咱们要聊的是MySQL里的null,在大量的MySQL优化文章和书籍里都提到了字段尽可能用NOTNULL,而不是NULL,除非特殊情况。但却都只给结论不说明原因,犹如鸡汤不给勺子一样,让不少初学者对这个结论半信半疑或者云里雾里。本文今天就详细的剖析下使用Null的原因,并给出一些不用Null的理由。1、NULL为什么这么多人用?NULL是创建数据表时默认的,初级或不知情的或怕麻烦的程序员不会注意这点。很多人员都以为notnull需要更多空间,其实这不是重点。重点是很多程序员觉得NULL在开发中不用去判断插入数据,写sql语句的时候更方便快捷。2、是不是以讹传讹?MySQL官网文档:NULLcolumnsrequireaddi
read-committed 隔离级别对 MySQL 复制的影响
read-committed隔离级别对MySQL复制的影响近期碰到了一个mysqlslave正常接收relaylog,但是不执行更新的情况,更准确的说是不执行row格式的所有更新,DDL和statement格式的都正常更新,主从环境配置见下文.环境配置OS:CentOSrelease6.7(Final)Kernel:2.6.32-573.18.1.el6.x86_64MySQL:Percona-Server-5.5.33-rel31.1-566.Linux.x86_64主从环境使用repl_discovery检查如下:#repl_discovery-h10.0.21.7-P3308-umonitor--askpassEnterpassword:+-10.0.21.7:3308version5.5.33-rel31.1-logserver_id2690331has_gtidNotS
「mysql优化专题」单表查询优化的一些小总结,非索引设计(3)
上篇讲解了「mysql优化专题」90%程序员都会忽略的增删改优化(2),相信大家都有所收获。接下来这篇是查询优化。其实,大家都知道,查询部分是远远大于增删改的,所以查询优化会花更多篇幅去讲解。本篇会先讲单表查询优化(非索引设计)。然后讲多表查询优化。索引优化设计以及库表结构优化等后面文章再讲。单表查询优化:(关于索引,后面再开单章讲解)(0)可以先使用EXPLAIN关键字可以让你知道MySQL是如何处理你的SQL语句的。这可以帮我们分析是查询语句或是表结构的性能瓶颈。(1)写sql要明确需要的字段,要多少就写多少字段,而不是滥用select*(2)可以用使用连接(JOIN)来代替子查询(3)使用分页语句:limitstart,count或者条件where子句时,有什么可限制的条件尽量加上,查一条就limit一条。做到不滥用。比如说我之前做过的的p2p项目,只是需要知道有没有一个满标的借款,这样的话就可以用上limit1,这样mysql在找到一条数据后就停止搜索,而不是全文搜索完再停止。(4)开启查询缓存:
MariaDB AX开源分析解决方案
MariaDBAX开源分析解决方案版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。MariaDB公司推出了新的增强产品——MariaDBAX,它为数据仓库提供了一种现代化的方法,使得客户能够更经济高效地执行快速可扩展的分析。MariaDBAX扩展了MariaDB服务器,提供了一个解决方案,支持使用分布式存储和并行处理的高性能分析,并可以在线或在任何云平台上的现有硬件环境上进行扩展。MariaDBAX是一款功能强大的开源解决方案,可用于执行定制和复杂的分析。为了充分发挥大数据的力量,让MariaDB的客户需要能够近乎实时地收集数据,而不管数据来自何处。利用MariaDBAX,从不同来源获取和分析流数据比以往更容易,同时通过新的高可用性和备份功能确保最高水平的可靠性。传统的数据仓库价格昂贵并且操作复杂,因此需要更有意义、能够更及时的分析以满足硬件和成本压力。MariaDBAX专为性能和可扩展性而构建,使用分布式和列式开源存储引擎,并行查询处理,允许客户存储更多数据并更快速地进行分析。MariaDBAX支持各行各业
MySql Binlog事件数据篇
Binlog事件数据1.QUERY_EVENT执行更新语句时会生成此事件,包括:create,insert,update,delete;Fixeddatapart,总长度13字节:4字节:执行sql的线程id;4字节:执行sql的时间;1字节:数据库名称的长度;2字节:执行sql产生的错误码;2字节:状态变量的长度,具体内容在Variablepart;Variablepart:可变字节:状态变量,每个状态变量key为一个字节,后面跟着value,不同的key对应不同长度的value,但是总长度在Fixeddatapart中已经定义;可变字节:数据库名称可变字节:sql语句,通过事件的总长度-header长度-Fixeddata-状态变量,剩余的字节数组通过utf-8编码即可获取;2.STOP_EVENT当mysqld停止时生成此事件;Fixeddatapart:空的Variablepart:空的3.ROTATE_EVENT当mysqld切换到新的b
Security7:管理SQL Server Agent的权限
Security7:管理SQLServerAgent的权限SQLServerAgent对象包括警报(Alert),操作员(Operator),Job,调度(Schedule)和代理(Proxy),SQLServer使用msdb系统数据库管理Agent对象的权限,msdb内置三个固定数据库角色,按照权限从小到大的顺序,依次是:SQLAgentUserRole、SQLAgentReaderRole和SQLAgentOperatorRole。如果一个用户不是这三个角色或sysadmin角色中的成员,那么该用户通过SSMS的ObjectExplorer看不到Agent节点。一个用户必须是SQLAgent的角色或sysadmin角色的成员,才能使用SQLServerAgent。另外,Agent的权限,还跟代理(Proxy)的访问权限有关,代理是用来执行JobStep的,只有建立代理和登陆(Login)之间的映射,用户创建(Own)的Job才能执行。一,Agent固定数据库角色SQLAgentUserRole角色被授予操作
从 JS Event Loop 机制看 Vue 中 nextTick 的实现原理
来源:GitBook作者:大师兄作为一名前端,一直以来以精通Javascript为目标。其实说实话精通真的挺难,不是你记住全部的API就算是精通。JavaScript的知识非常零散而庞杂,很多情况下上周学习的知识下周或是下个月就会忘记,给人的感觉就是好难学,怎么一直没进步呢?我们不能仅限于语言本身,我们要透过语法看到深层次的运行机制。掌握了Javascript运行机制,就好比学武术,大神级别都讲究“无招胜有招”。懂得了机制就可以举一反三,灵活运用。事件循环机制(EventLoop),则是理解运行机制最关键的一个点。我们先抛出一个面试题:setTimeout(function(){console.log(1)},0);newPromise(functionexecutor(resolve){console.log(2);for(vari=0;i<10000;i++){i==9999&&resolve();}console.log(3);}).then(function(){console
八、VueJs 填坑日记之参数传递及内容页面的开发
八、VueJs填坑日记之参数传递及内容页面的开发我们在上一篇博文中,渲染出来了一个列表,并在列表中使用了router-link标签,标签内的:to就是链接地址,昨天咱们是 作者:{{dat.author.loginname}}发表于:{{$utils.goodTime(dat.create_at)}} 评论者:{{i.author.loginname}}评论于:{{$utils.goodTim网友回复:
反反爬虫|应对网站反爬虫策略,更高效地爬大量数据
1.Headers限制这应该是最常见的,最基本的反爬虫手段,主要是初步判断你是否是真实的浏览器在操作。这个一般很好解决,把浏览器中的Headers信息复制上去就OK了。值得注意的是,很多网站只需要userAgent信息就可以通过,但是有的网站还需要验证一些其他的信息,比如知乎,有一些页面还需要authorization的信息。所以需要加哪些Headers,还需要尝试,可能还需要Referer、Accept-encoding等信息。
CSS揭秘读书笔记(1,2章)
CSS揭秘阅读第一章1.2css编码技巧尽量减少代码重复DRYline-height:1.5-表示基于font-size的1.5倍数关系易维护性集合属性拆分成独立属性来写,例如’border-width:10px10px10px0′->‘border-width:10px;border-left-width:0px;’currentColor是个真正的css变量继承inherit响应式网页设计MeidaQuery会增加
jQuery实现固定栏
凡事顺其自然,遇事处之泰然;得意之时淡然,失意之时坦然;艰辛曲折必然,历尽沧桑悟然。遵循简单才不会累,秉承宽容才不会气;学会忘记才不会愁,知道惧怕才不会危;甘于示弱才不会伤,保持低调才不会亏;愿意放弃才不会苦,适度知足才不会悔;记住感恩才不会怨,懂得珍惜才不会愧。不知道从什么时候开始,Web前端开始流行固定栏,现在大多数的网站多多少少都应用了固定栏效果。固定栏常常会固定在网页页面的四周(顶部,底部,侧边),例如页面右侧返回顶部、页面顶部导航栏、页面侧边目录、页面底部广告等。那么如何实现一个合格的固定栏效果呢?分析1、固定栏效果是相对于浏览器而言,所以固定栏定位也要以浏览器为参照物进行定位,这里便用到position:fixed属性(固定定位)。2、固定栏不一定是页面加载完成之后就马上固定,也可以是浏览器的滚动一段距离之后再进行固定,这样的话对浏览器滚动监听也将会用到,在jQuery中对浏览器的滚动监听相对比较简单:$(window).scroll(function(){})。3、其他变动,例如将position的值改成fixed的
基于 Vue2.0 + Element 的单页面可视化开发实践
项目迭代,要重构出一个可供用户操作的,可自由选择模板,可定制内容的页面。相当于这个单页面上最终展示的所有内容,都是由用户自己去定制完成的。细想之后觉得使用Vue来做比较合适,因为页面上大部分操作都可理解为是对总体数据的再排序编辑。下边是记录的开发过程中一些相对关键的问题。Vue原始数据的深复制由于JS对象的引用类型特点,在一些不需要双向绑定数据的时候,需要通过深拷贝原始的数据对象来暂存数据,即用JSON.parse(JSON.stringify(...))的方式复制一份数据来进行操作。一般情况下组件间的数据干扰等情况都是由于此问题导致的。默认数据与已编辑数据的分离最开始做的时候未考虑到这个问题,使用了简单粗暴的方法调取默认数据,即在进入页面的时候复制一份数据充当默认数据。之后发现这个会导致用户操作数据后默认数据也跟着改变的问题。良好的解决方法就是相互分离,全部都是独立请求。Element的Dialog对话框监听Dialog方面,由于目前Element2.0版本是在页面加载时直接将需要用到的所有Dia
ASP.NET Core 认证与授权[7]:动态授权
定义权限项定义权限Requirement实现权限授权Handler使用策略授权自定义授权过滤器在视图中使用授权基于资源的授权有些场景下,授权需要依赖于要访问的资源,例如:每个资源通常会有一个创建者属性,我们只允许该资源的创建者才可以对其进行编辑,删除等操作,这就无法通过[Authorize]特性来指定授权了。因为授权过滤器会在我们的应用代码,以及MVC的模型绑定之前执行,无法确定所访问的资源。此时,我们需要使用基于资源的授权,下面就来演示一下具体是如何操作的。定义资源Requirement在基于资源的授权中,我们要判断的是用户是否具有针对该资源的某项操作,因此,我们先定义一个代表操作的Requirement:publicclassMyRequirement:IAuthorizationRequirement{publicstringName{get;set;}}可以根据实际场景来定义需要的属性,在本示例中,只需要一个Name属性,用来表示针对资源的操作名称(如:增查改删等)。然后,我们预定义一些常用的操作,方便业务
c#知识点1.0数据类型
以前就说,要开始写c#的博客,最近把linux大约写完了,现在开始c#了,java的博客简书一大堆,我就避免撞车吧,其实我是菜鸟(嘻嘻,写不出更好的了)数据类型c#数据类型主要分为二大类:值类型和引用数据类型。值类型:整数类型sbyte带符号的8位整数short带符号的16位整数int带符号的32位整数long带符号的64位整数byte无符号的8位整数ushort无符号的16位整数uint无符号的32位整数ulong无符号的64位整数实数数据类型float小数位732位单精度浮点数double小数15/1664双精度浮点数decimal小数位28128位高精度实数decimal专门用于财务计算,如果数值一decimal类型处理,通过使用M(m)将其强指定为decimal类型,如decimald=1.234567m;boolean类型表示真假,c#预定义了true,flase表示真假,注意在c,c++中常用0表
葡萄城 ComponentOne 2017V3 版本发布
日前,全球最大的控件提供商葡萄城宣布,ComponentOne全功能控件套包发布2017年度最后一次重大更新(2017V3版本),除了对图表、性能持续优化外,还新增表达式编辑器,能与FlexGrid、FlexChart等控件有效集成,大大加强了ComponentOne在数据处理方面的能力!新增表达式编辑器,数据处理更容易新的表达式编辑器,可以帮助用户创建类似Excel的公式,用于像FlexGrid和C1DataGrid这样的ComponentOne控件中的数据。该控件分为两个组件:ExpressionEditor和EditorPanel。其中,ExpressionEditor可单独使用,嵌入自定义过滤器或表格的单元格中,具备汇总、时间格式、数学函数、逻辑运算符等能力,还有智能提示、语法高亮、搜索功能、错误提示、结果预览等开箱即用的特性。更多图表!支持的图表类型现已超过80余种本次发布新增直方图、RangedHistogram、StepChart变体、FloatingBar和甘特图样本,以及点和图结合的类型。
.net core 支付宝,微信支付 二
internalclassWxPayData{publicWxPayData(){}//采用排序的Dictionary的好处是方便对数据包进行签名,不用再签名之前再做一次排序privateSortedDictionary