聚合文章列表
19 浏览

python为mysql实现restful接口

最近在做游戏服务分层的时候,一直想把mysql的访问独立成一个单独的服务DBGate,原因如下:请求收拢到DBGate,可以使DBGate变为无状态的,方便横向扩展当请求量或者存储量变大时,mysql需要做分库分表,DBGate可以内部直接处理,外界无感知通过restful限制对数据请求的形式,仅支持简单的get/post/patch/put进行增删改查,并不支持复杂查询。这个也是和游戏业务的特性有关,如果网站等需要复杂查询的业务,对此并不适合DBGate使用多进程模式,方便控制与mysql之间的链接数,进行mysql访问量阀值保护方便在DBGate上进行访问量统计,慢查询统计、权限控制等等一系列逻辑目前是使用python,以后要使用其他语言进行mysql操作时,只要进行标准的http请求即可,不会出现不兼容的情况当然坏处也是有的:首当其冲就是单次请求的响应时间变长,毕竟中间加了一层服务,并且还是http格式部署上比原来复杂了一些,很多对mysql直接操作的思维需要进行转变,一开始可能会有些不适不过总的来

MySQL 2018-01-02 发布
20 浏览

数据库升级-成为MySQL DBA 博客系列(之二)

摘要:数据库供应商通常每个月都会发布一些有bug/安全性修补程序的补丁,我们为什么要关心这些?因为,新的版本可能对安全漏洞或黑客入侵系统进行修复,所以除非不关注安全性能,否则,您会希望在您的系统安装上最新的安全修补程序。数据库供应商通常每个月都会发布一些有bug/安全性修补程序的补丁,我们为什么要关心这些?因为,新的版本可能对安全漏洞或黑客入侵系统进行修复,所以除非不关注安全性能,否则,您会希望在您的系统安装上最新的安全修补程序。其中MySQL主要版本比较少见,通常是次版本升级,但是他们可能会带来一些重要的功能,使得升级是值得的。在这篇博文中,我们将介绍DBA的一个最基本的任务—次要版本数据库升级和主要数据库升级。MySQL升级有两个MySQL官方版本已经不再关注和修复,是因为是在oracle收购MySQL之前的发行版本。它们分别发生在2013年12月4日的MySQL5.1与2012年1月9日的MySQL5.0之前。在GA发布8年后的2018年,MySQL5.5也发生过这种情况。这意味着对于MySQL5.0和MySQL5.1

MySQL 2018-01-02 发布
17 浏览

MySQL误删数据救命指南

事情缘起有次上课,大家聊起亲手造了啥大故障,排名最前的几种是:误删文件。误删库、表。错误全表删除/更新。升级操作失误。都来看看你命中过几个,hoho。简单说下我亲手造的一个大事故吧。那大概是一个春暖花开的季节,我的内心是激动澎湃的,因为已经安排了休假计划。在这前几天,已经把一个新项目的数据库环境都部署好了,包括自动化备份。等我美美的出去玩的时候,悲剧发生了,业务要求进行数据回滚,但发现备份文件不可用,原因是备份时指定的字符集和表字符集不一致。我勒个擦,原来该项目采用新的字符集,但是我没有认真检查确认并修改备份脚本,结果导致备份失效。最后,因为这个事,当季度绩效结果被降档,boss也为此背锅~好吧,回到正题,先说几点我平时预防误操作导致文件/数据丢失不成熟的建议:欲删除文件时,将rm命令改成mv,可在系统层面将rm命令做个alias(或参考Windows/MacOSX做法,删除文件时先进回收站)。删除数据库、表时,不要用drop命令,而是rename到一个专用归档库里;删除表中数据时,不要直接用delete或tr

MySQL 2018-01-02 发布
AD 友情赞助
18 浏览

12 条用于 Linux 的 MySQL/MariaDB 安全最佳实践

MySQL是世界上最流行的开源数据库系统,MariaDB(一个MySQL分支)是世界上增长最快的开源数据库系统。在安装MySQL服务器之后,在默认配置下是不安全的,确保数据库安全通常是通用数据库管理的基本任务之一。这将有助于增强和提升整个Linux服务器的安全性,因为攻击者总是扫描系统任意部分的漏洞,而数据库在过去是重点目标区域。一个常见的例子是对MySQL数据库的root密码的强制破解。在本指南中,我们将会讲解对开发者有帮助的MySQL/MariaDB的Linux最佳安全实践。1.安全地安装MySQL这是安装MySQL服务器后第一个建议的步骤,用于保护数据库服务器。这个脚本可以帮助您提高MySQL服务器的安全性:如果您在安装期间没有设置root帐户的密码,马上设置它通过删除可从本地主机外部访问的root帐户来禁用远程root用户登录删除匿名用户帐户和测试数据库,默认情况下,所有用户、甚至匿名用户都可以访问这些帐户和测试数据库#mysql_secure_in

MySQL 2018-01-02 发布
18 浏览

《node.js权威指南》(三)在Node.js中操作文件系统

这真的是一篇跨年的文章了,好长,一边看,一边跟着敲代码验证,那么,问题来了,你和谁一起跨年了(机智脸)?在Node.js中,提供一个fs模块,以实现文件及目录的读写操作。一、同步方法与异步方法在Node.js中,使用fs模块来实现所有有关文件及目录的创建,写入及删除操作。在fs模块中,多有文件及目录的操作都可以使用同步或异步这两种方法,即readFile和readFileSync,有Sync后缀的方法为同步方法,不具有Sync后缀的方法均为异步方法。这两者的区别就是,同步方法立即返回操作结果,在使用同步方法执行的操作结束执行之前,不能执行后续代码,varfs=require('fs');vardata=fs.readFileSync('./index.html','utf-8');//等待操作返回结果,然后利用该结果console.log('data')异步方法竟操作结果作为回调函数的参数进行返回,在方法调用之后,可以立即执行后续代码,varfs=require('fs');vardata=fs.rea

JavaScript 1900-01-01 发布
13 浏览

大白话Vue源码系列(05):运行时鸟瞰图

阅读目录Vue实例的生命周期实例创建响应的数据绑定挂载到DOM节点结论研究runtime一边Vue一边源码初看Vue是Vue源码是源码再看Vue不是Vue源码不是源码再再看Vue是调用栈源码也是调用栈——ByDOM哥Vue运行时这一块是非常有意思的,不像Vue编译器那么枯燥,这里面有大量的实用技巧和设计思想可以学习。使用过Vue的小伙伴应该对Vue【响应的数据绑定】(也叫双向绑定)的印象非常深刻,在修改了数据之后,视图就会实时得到相应更新,这无疑极大地减轻了开发者的负担,使得开发人员可以专注于处理业务逻辑和操作数据,也就是闻名遐迩的【数据驱动开发】。至于操作DOM更新视图这件苦脏累的活,Vue已经帮你妥善处理完毕并且对你完全透明(意思是它就像空气一样你完全注意不到它,却又深度依赖它,离不开它)。Vue运行时模块主要是围绕Vue实例的生命周期展开

JavaScript 2018-01-02 发布
AD 友情赞助
9 浏览

css盒模型研究

css的盒模型一直是一个重点和难点,最近由后端的学习转到前端,觉得有必要深入研究一下css的盒模型。1.万物皆盒子我们必须要有一个理念,在html的世界里,万物皆盒子,那就是任何一个html元素都是一个盒模型。比如一个div,一个标题,一个段落。他们本质上都是一个盒模型。2.盒模型的结构如下所示。注意它的宽度和高度指的是它元素的宽度和高度。元素到边框之间的区域叫做padding(内边距),边框在往外扩展的区域就叫做外边界。外边界就是整个盒模型能到达的最遥远的地方,也是保证其他的盒子不会侵袭这个盒子的边界线。有几个点需要注意:a.首先分析盒模型,要找准你分析的对象,比如一个div对象。上图中所有盒模型的所有术语(width,heghit,padding)都是针对该盒模型而言的。这时候你就不要去管它旁边的,或者它内部的其他元素。只需要分析这个对象就好了。b.width和height指的是元素的宽度和高度,确切的说,应该是这个盒模型的元素可以使用的宽度和高度,事实上,它里面的元素可能并没有所规定的高度和宽度那么大,也

CSS 2018-01-02 发布
7 浏览

es6+angularjs+sass+gulp+browserify等组合的前端开发环境搭建

以前了解的web前端知识基本上就知道div+css,懂一些bootstrap的使用,其余一概不知了。有一天,发现了一个朋友写的前端代码后,只在web前端边缘“裸奔”的我被惊呆了…第一次见到html标签和属性还可以直接嵌入变量,前端还可以像后端web框架一样实现路由…第一次看到css还可以调用函数,声明变量,条件判断…我写这篇文章的触发点完全是因为,这些新奇的东西让常年驻扎在后端的我震惊了。但是这些新奇的东西搭建起来确花费了我不少时间,一是我对前端了解不多,二是前端框架琳琅满目,网上的意见也很不统一。因此我想写一篇将这些组件整合起来的博客,并使用一个demo项目给大家参考,希望能让大家节省一些纠结的时间。es6es6,ECMAScript6是JavaScript语言的下一代标准,在2015年6月正式发布了。距离现在1年多了,但是主流的几款浏览器还没完全支持es6的语法,所以在编写完代码后需要将其转换成浏览器所支持的es5代码。es6教程推荐阮一峰大神的ES6标准入门一书,书本写的很严谨,权威。不过搭建部分个人觉得写的有

CSS 2018-01-02 发布
13 浏览

C#又能出来装个B了。一步一步微信跳一跳自动外挂

PS:语言只是载体。思维逻辑才是王道前天看见了个python的脚本。于是装python。配置环境变量。装pip。折腾了一上午,最终装逼失败。于是进入博客园,顶部有篇文章吸引了我.NET开发一个微信跳一跳辅助程序。于是download下来测试一把。不过博主的是半自动外挂。需要左键点击小人,右键点击需要跳的点。点了几十次之后不耐烦了。那又怎样?又不开车?又不会装逼?食屎啦你!手动玩到了2018。。。发现原来还可以通过C#连接安卓发送shell命令进行操控。新姿势!新姿势!通过42楼发现,从图片中搜索小人。咦?这怎么实现呢?百度百度百度。。好吧很少用google。。可能我是菜鸟程序员吧喜出望外。“图片像素遍历”实现思路一、找到小人坐标二、找到要跳的坐标哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈。。。。。没毛病如何找到小人坐标?--小人颜色固定,取底部rgb扫描像素对比--没毛病代码:效果:完美?完美!!弱水三千只

.Net 2018-01-02 发布
AD 友情赞助
11 浏览

.net 连接SqlServer数据库及基本增删改查

一、写在前面因为这学期选修的.net课程就要上机考试了,所以总结下.net操作SqlServer数据的方法。(因为本人方向是Java,所以对.net的了解不多,但以下所写代码均是经过测试成功的)二、.net连接数据库在web.config文件中配置数据库连接,代码写在其中sa为SqlServer数据库账号,sa123456为数据库账号密码,dataset位数据库名。通过上面的代码大家不难看出这是通过SqlServer数据库的账号连接的。那么如果需要通过Windows身份认证连接呢?

.Net 2018-01-02 发布
9 浏览

C#设计模式之二十二备忘录模式(Memento Pattern)【行为型】

C#设计模式之二十二备忘录模式(MementoPattern)【行为型】一、引言今天我们开始讲“行为型”设计模式的第十个模式,该模式是【备忘录模式】,英文名称是:MementoPattern。按老规矩,先从名称上来看看这个模式,个人的最初理解就是对某个对象的状态进行保存,等到需要恢复的时候,可以从备忘录中进行恢复。生活中这样的例子也能经常看到,如备份电话通讯录,备份操作操作系统,备份数据库等。如果我们想恢复对象的状态,那么我们可能首先想到的是把对象保存下来,但是这样会破坏对象的封装性。因为对象有状态有操作,如果我们为了保存对象而留着原来的对象,做一个深拷贝,那么其他对象也能通过这个对象的接口访问这个对象状态,这并不是我们所希望的。而我们需要它的职责只是保存和恢复对象状态,而不应在上面支持对对象状态访问的接口,这就产生了Memento模式。我们看上图,一个对象肯定会有很多状态,这些状态肯定会相互转变而促进对象的发展,如果要想在某一时刻把当前对象回复到以前某一时刻的状态,这个情况用“备忘录模式”就能很好解决该问

.Net 2018-01-02 发布
14 浏览

(一)基于阿里云的MQTT远程控制(Android 连接MQTT服务器,ESP8266连接MQTT服务器实现远程通信控制--...

(一)基于阿里云的MQTT远程控制(Android连接MQTT服务器,ESP8266连接MQTT服务器实现远程通信控制----简单的连接通信)如果不了解MQTT的可以看这篇文章http://www.cnblogs.com/yangfengwu/p/7764667.htmlhttp://www.cnblogs.com/yangfengwu/p/8026014.html关于钱的问题,其实自己是花钱买的云服务,虽然自己现在能支付的起,但是呢为了尽量减少支出,自已还有好多好多文章要写,好多好多元器件要买,所以哈会在自己的淘宝上卖源码2元价格,一元捐出,一元自己留着当亲们支付云服务的费用了,不过后来想了想,感觉有点麻烦还要发链接,还是直接给大家链接吧,然后自己会在最后设置一个一元的支护宝收钱码(一个朋友这样告诉的,感觉也挺好的),然后淘宝里面也出售源码改为一元价格,淘宝的就直接捐出.如果看不懂也没关系,跟着做就可以了,做完以后您会发现原来MQTT这么好用,也如此简单.对了我要尽量把程序写的烂一些,界面做的烂一些,因为既然是学习用的应该

消息系统 2018-01-02 发布
AD 友情赞助
16 浏览

如何在MQ中实现支持任意延迟的消息?

什么是定时消息和延迟消息?定时消息:Producer将消息发送到MQ服务端,但并不期望这条消息立马投递,而是推迟到在当前时间点之后的某一个时间投递到Consumer进行消费,该消息即定时消息。延迟消息:Producer将消息发送到MQ服务端,但并不期望这条消息立马投递,而是延迟一定时间后才投递到Consumer进行消费,该消息即延时消息。定时消息与延迟消息在代码配置上存在一些差异,但是最终达到的效果相同:消息在发送到MQ服务端后并不会立马投递,而是根据消息中的属性延迟固定时间后才投递给消费者。目前业界MQ对定时消息和延迟消息的支持情况上图是阿里云上对业界MQ功能的对比,其中开源产品中只有阿里的RocketMQ支持延迟消息,且是固定的18个Level。固定Level的含义是延迟是特定级别的,比如支持3秒、5秒的Level,那么用户只能发送3秒延迟或者5秒延迟,不能发送8秒延迟的消息。消息队列RocketMQ的阿里云版本(收费版本)才支持到精确到秒级别的延迟消息(没有特定Level的限制)。

消息系统 2018-01-02 发布
11 浏览

回望(总结)2017,展望(规划)2018

回望2017时光匆匆,2017转眼即过,在这一年有坚持、有付出、有悲伤、有开心。所以来总结一下这一年的收获,这也是我第一次年终总结。1.工作上2017年3月份我从公司离职,3月中旬我入职了现在的公司,从北京转战到了天津,从手机程序转到了智能POS机程序。这一年我开发了四个项目,收获就是从中学到了很多知识,比如串口知识,蓝牙知识,MQTT等等,学习了不同的开发框架和网络请求,工作上还有待提高。2.公众号上8月底我正式运营了我的公众号:【安卓干货铺】,一共发了120篇文章,其中70多篇原创。在写公众号上我真是成长了很多,这一年原创的文章主要是总结过去的知识点以及学习新的知识来分享给大家。另外在运营公众号的路上认识了很多志同道合的朋友,也发现自己的不足,自己和技术大牛的差距,这也是我继续奋斗的动力。我也帮助了很多人,我建立了一个Android新人交流群,帮助新人解决问题。群号是:458739310。我想每个人在学习的路上都要有目标,有计划,不要盲目的学习,更不要轻易的放弃。3.生活上工作从北京转到了天津,我可以常回家看看

程序员 1900-01-01 发布
10 浏览

[译] 一个 19 岁萝莉程序媛的内功心法

Lydia才19岁,但她绝对是那种“毕业两年,五年工作经验”的类型。年纪轻轻,却有数年的导师经历。她的内功心法都是非常实用的干货,不鸡汤,不矫揉造作。软件门外汉如何成功进入程序的世界?已经入坑的程序员如何更上一层楼?关于如何学习编程和提升技术技能的教程或资料不计其数,但这些并不是重点,我也不想这篇文章里赘述这类问题。如何调整你的生活、如何接受新事物、如何保持积极的状态,以及如何把精力放在重要的事情上,这些才是最关键的。要注意,这不是一篇提倡十分钟热度的鸡汤文。我已经做了好几年的导师,经常会看到一些学生在中途说一些气馁的话。他们总是把注意力集中在大目标上,却忽略了每一小步的成功,让自己感觉好像离大目标遥遥无期。虽然我也知道这是学习的大忌,但在刚开始时我也难免深受其害。我会觉得自己原地踏步,周围的人都比我厉害,感觉自己再也无法赶上他们。之所以有这种想法,是因为我完全忽略了自己已经做出的每一个小进步。我总是拿自己与那些有多年经验的人相比,所以根本就看不到自己的进步。“我离目标还很远”这样的想法在我的脑子里挥之不去。这种学习障碍是真实

程序员 2018-01-02 发布
14 浏览

再见 2017 你好 2018 ,程序员们的精彩年度总结

弹指一挥间,我们已经从2017迈入了2018。转身回望,有喜有悲,有失望有后悔,也有兴奋和感动。回顾这一年,发生了很多事,有人从学校步入社会,有人开始涉猎新的技术领域,有人挑战新的项目开发,也有人脱单成功,或是为父为母进入人生新阶段。前两天,朋友圈被大家晒的18岁照片刷屏了。看着一张张青涩的脸,不禁感叹时间飞逝。标签易乱,记忆易黄,我们不妨在新年起航之际,写一篇年终总结,留给未来的自己。打开开源中国的博客,看到已经有不少OSCer发布了自己的年度总结博文,讲诉他们的故事。在此,对其中的精彩内容做个简单的汇总,让我们跟随他们的足迹,一起回味2017的喜怒哀乐,并做好准备,迎接属于我们的2018!期待,你也来留下自己的故事……1、2017——关于坚持了一年的事情(@wier)其实一直想写一篇,关于坚持一件事的心得,但看惯了网上大v的方法论,以及遇到各种方法的局限性之后,我便不敢妄下结论进行自行分析,以免使用不当,带偏了一批听信我的人,而这份信任异常难得,被辜负十分可惜。我在想,既然自己反感说教,那自己

程序员 2018-01-02 发布
10 浏览

用算法撩妹都不会,别跟我说你是程序员

原标题:用算法撩妹都不会,别跟我说你是程序员本文由【AI前线】原创,原文链接:http://t.cn/RHOX6g3,作者|SagarHowal,译者|王纯超,编辑|Emily“--2017年马上就要过去了,你还是一个人吗?--废话,难道是一只狗吗?--“单身狗”也算狗。--······我们发现了一个歪国小哥发布的文章,里面详细介绍了如何利用算法确定一个姑娘对你是否有兴趣,至于这个小哥是不是单身······可能人家已经有了女朋友/男朋友了吧。从事数据科学的人都知道贝叶斯定理。本文是我通过贝叶斯解决她是否喜欢我这一两难问题的方法。贝叶斯信念更新方程如下:P(h|d)/P(-h|d)=P(d|h)·P(d|-h)·P(h)/P(-h)后验概率=先验胜率(PriorOdds)*似然比接下来我会用通俗易懂的语言解释这个方程。一个女孩对你感兴趣的几率是女孩喜欢你的初始可能性(InitialLikelihood)乘以量化的新证据。长话短说:第一步:计算女孩对你感兴趣的初

程序员 2018-01-02 发布
9 浏览

图解广告及推荐系统架构流程

广告和推荐系统是机器学习是最成熟的应用领域。那么广告和推荐系统是怎么在线上部署机器学习模型的呢?1.预测函数上线刚刚学习机器学习时候,我认为广告和推荐系统过程如下图所示:线下部分,从用户和广告(物品)属性抽取用户和物品特征,将抽取的特征合并进日志生成训练数据,训练机器学习模型;线上部分,来了一个请求,从用户和广告(物品)属性抽取请求中的用户和物品的特征,将这些特征合并请求生成预测实例,用线上模型得到预测结果。但是这个架构有两个问题:(1)从用户和广告(物品)属性抽取特征的程序有线上线下两套,这两套程序必须保持完全一致。但由于调参的原因,特征抽取是机器学习系统中最经常发生变化的模块。经常变化的模块需要保持一致,这很困难。那么我们能不能强行地用一套程序呢?比如,我们把特征抽取和特征处理模块写成.so文件。这样也有问题:线下要求快速变化以方便工程师调特征,可能会使用一些训练框架(比如Spark);线上要求程序快速实时,要求工程师编码严谨。写成严谨的.so文件,能够保证线上的需求,但无法快速变化,也不能在Spa

软件架构 2018-01-02 发布
19 浏览

ELSE 技术周刊(2018.01.01期)

就在刚刚,微信官方公布了几个小程序爆炸性的新闻,在2017年的年底,这个新闻似乎是在告诉大家,小程序能做的事越来越多,2018年你再也没法再忽视它。前端开发在前端,往往由一个前端团队创建并维护一个Web应用程序,使用RESTAPI从后端服务获取数据。这种方式如果做得好的话,它能够提供优秀的用户体验。但主要的缺点是单页面应用(SPA)不能很好地扩展和部署。在一个大公司里,单前端团队可能成为一个发展瓶颈。随着时间的推移,往往由一个独立团队所开发的前端层越来越难以维护。一份来自Stateofjs的调查数据显示:相比Angular和Vue,React是2017年的主要JS框架,尤其是ReactNative以前所未有的速度提升自己。GitLab最近将前端测试从PhantomJS转向headlessChrome.文章详细解释了该团队作出此决定的缘由及面临的挑战,以及headlessChrome带来的好处。这一年,JavaScript确实发生了很多事情,一起来回顾一下。React之无限滚动p

JavaScript 2018-01-02 发布
18 浏览

译-2018年该学哪一个JavaScript框架?

首先我要定义一下我心中的代码框架,因为这个词存在争议。我认为框架是一个库(注:个人不太同意这个说法),它定义了每一个方面或层的结构,使创建应用程序的任务变得更容易。从层上说,我指的是数据库、模型、控制器、视图、表现层、网络,等等......框架尝试去解决在应用中经常遇到的绝大多数大且已知的问题。它们内置了许多你不需要关心的设计决策,它们同样也有精心制定的指导方针。好的框架有巧妙的默认值以及遵循约定而不是配置的概念,在这方面做得好的是RubyOnRails框架,同时也是我最喜欢的框架之一。在JavaScript领域,头牌JavaScript框架是Angular和Ember。现在我们弄清了这一点,那我就来回答标题的答案:2018年该学哪一个JavaScript框架?我的答案是:没有。我来解释一下为什么。除非你工作中需要你使用一个框架,不要仅仅为了学习而去学一个框架。我在说的是学习如何使用一个框架,这些知识会很快过时。另一方面,你应该学习框架是如何工作的,这是非常珍贵的知识。如果你学习一个框架的动力是得

JavaScript 2018-01-02 发布
AD 友情赞助