我的移动硬盘是用大盘改的。里有Wⅰn7。在装解压缩软件时,系统提示我,是两台电脑在用一个压缩软件。

般从事软件开发工作的同时通常需要调用远程服务,但是即使是亚马逊、阿里巴巴、腾讯这些巨头提供的服务也可能因为网络或者服务高可用方面的一些问题,或许会遇到超时等异常情况,这时候我们就必需要考虑到异常情况下我们的应用如何能处变不惊处理这些异常,是直接抛出异常还是说可以自动进行一些处理呢? 通常情况下我们首先想到的解决方案一定是重试对吧。 我看过很多代码,他们都怎么写的呢,如下 public String invoke(int times) {
for(int i = 0; i & i ++) {
// do some thing
}catch(Exception e) {
return invoke(i);
上面的代码意思是首先传入一个次数参数,假设我们传递的是3,那么当遇到异常的时候,重新调用当前方法,次数变为2… 你有没有发现如果调用外部服务很多的时候,这样的for循环写的让人不舒服,因为都是重复的代码,而且显的很啰嗦呢,spring boot给我们带来了一些福音,我们看看spring boot框架下如何进行重试 1、 首先引入JAR包 &dependency&
&groupId&org.springframework.retry&/groupId&
本文介绍使用Vue2单页面程序作为前台,以Yii2搭建后台提供API,进行前后端分离开发的入门知识。本文适合Vue2,Yii2爱好者观看。预计花费时间30分钟,跟随教程操作。
【一周源资讯(-)】周鸿祎说很多程序员一看就知道不会创业,但是他们会的东西多着呢,除了编程语言、数据库,还得学学中医养生,西医治病什么的,说多了都是泪啊~
![dubbo](https://static.oschina.net/uploads/img/04558_OCBz.jpg "在这里输入图片标题") # 前言 现在越来越多的互联网公司还是将自己公司的项目进行服务化,这确实是今后项目开发的一个趋势,就这个点再凭借之前的`SSM`项目来让第一次接触的同学能快速上手。 # 浅谈分布式架构 `分布式架构`单看这个名字给人的感觉就是高逼格,但其实从历史的角度来分析一下就比较明了了。 & 我们拿一个电商系统来说: ## 单系统 ![E65B5547-AF84-4D31-836D-EA.png](https://user-gold-cdn.xitu.io//34ab546fec5f5a4174aa.png) 对于一个刚起步的创业公司项目肯定是追求越快完成功能越好,并且用户量也不大。 这时候所有的业务逻辑都是在一个项目中就可以满足。 ## 垂直拆分-多应用 ![QQ056@2x.jpg](https://user-gold-cdn.xitu.io//daa4a5c54d3e6c76779c97.jpg) 当业务量和用户量发展到一定地步的时候,这时一般会将应用同时部署到几台服务器上,在用户访问的时候使用`Nginx`进行反向代理和简单的负载均衡。 ## SOA服务化 当整个系统以及发展的足够大的时候,比如一个电商系统中存在有: * 用户系统 * 订单系统 ...
& 大家知道北哥最近搞了QQ群,本着打造最严谨技术QQ群的理念,有群友提了问题怎么能不写篇文章分享下~ 我们都知道在Yii2的数据库配置中有一项叫做emulatePrepare ```php return [ 'class' =& 'yii\db\Connection', 'dsn' =& 'mysql:host=dbname=yii-', 'username' =& 'root', 'password' =& '', 'charset' =& 'utf8', 'emulatePrepare'=&true ]; ``` 很多同学都知道这其实是一个PDO的属性,代表PDO::ATTR_EMULATE_PREPARES - 是否启用预处理,我们yii默认为null,表示默认PDO对该属性当前的设置,不做处理。当然你可以像上面配置文件一样人为的指定该值为true / false。 关于yii对 emulatePrepare 的处理我们可以在Connection类中轻松发现,它仅仅是yii是否开启PDO::ATTR_EMULATE_PREPARES 的一个开关而已,如下图所示: ![输入图片说明](https://static.oschina.net/uploads/img/04518_GPbX.png "在这里输入图片标题") 因此我们研究的核心问题就回到 PDO的ATTR_EMULATE_PREPARES到底能起到什么作用的问题上来了? 我们先列目录 - 为何预处理能防止SQL注入 - ATTR_EMULATE_PREPARES - 推荐的策略 Begin... # 为何预处理能防止SQL注入 ...
广告位,是收入来源之一,相信大家都接触过它了。简单来说,广告位的管理比较重视独立性,这样方便更新广告、撤出引入广告等...怎样个独立呢?即是在后台,每个广告位都有如下的编辑框,将该广告相关的代码一同编辑在此,不关联其它广告及代码 ![输入图片说明](https://static.oschina.net/uploads/img/14022_N7VB.jpg "在这里输入图片标题") 避免不了的一个问题就是,一个页面需要嵌入两个广告位或是更多。那如何开发会比较合理? 假如一个广告位的示例代码如下: ``` function success_jsonpCallback(data) { var obj = eval(data); if (obj.success) { var contents = eval(obj.data[0].content); if (contents.length & 0) { var content = contents[0]; $('#project-detail-content-button-ad').html(""); } $('#project-detail-content-button-ad').show(); } else { $('#project-detail-content-button-ad').hide(); } } window.addEventListener("load", function () { var url = "/promotion/adv/getAliyunAdv.htm?cback=success_jsonpCallback"; $.ajax({ type: 'POST', url: url, jsonp: "callback", dataType: 'jsonp'...
#MySql-Proxy之多路结果集归并 笔者觉得Cobar之类的分库分表最神奇的部分就是靠一条sql查询不同schema下(甚至不同实例下)的不同的表。例如 ``` select * from t_ // 映射为 |------select * from schema1.t_test |------select * from schema2.t_test ResultSet // 返回结果集为两者的归并 |--schema1.t_test.ResultSet |--schema2.t_test.ResultSet ``` 以笔者这种刨根到底的性格当然要把这个过程DIY出来。 由于Cobar对MySql的连接是BIO的。而笔者喜欢NIO,于是用NIO将Corbar的多节点查询全部重写(基于Netty)。NIO的难度更大,性能也更好,这个重写的过程就记录成博客,以飨读者。 #多路归并原理 #多节点发送select语句 ![lancelot_select](https://static.oschina.net/uploads/img/.png "lancelot_select") 当客户端发送给select * from test后,Lancelot会根据配置将语句将当前语句路由到多个不同的DB实例上,如上图所示。 FrontEnd:用来和client交互,一个FrontEnd可以对应多个Backend BackEnd:用来和DB交互 #多节点归并结果集 ![result_set](https://static.oschina.net/uploads/img/02815_m4GK.png "result_set") 每条语句在一个D...
& 数据库缓存并不麻烦,基本用法依然符合yii2缓存的统一接口,具体方法可以在 http://nai8.me/sapper-view.html?id=27 里查看。 如果要启动数据库缓存,必须要有一个数据库及数据表,这些可以通过cache的配置文件完成 ```php 'cache' =& [ 'class' =& 'yii\caching\DbCache', 'db' =& 'cachedb', 'cacheTable' =& 'cache', ], ``` 参数说明 - db参数如果不设置会使用yii默认的db.php内的配置文件 - cacheTable表需要提前在数据库内建立 cacheTable的初始化脚本 ```sql CREATE TABLE cache ( id char(128) NOT NULL PRIMARY KEY, expire int(11), data BLOB ); ``` 当然我推荐大家重新建立一个数据库来存放缓存表。 虽然DbCache配置和管理并不复杂,但是有些参数还是要注意下 ** keyPrefix ** 缓存键值前缀 ```php 'cache' =& [ 'class' =& 'yii\caching\DbCache', 'db' =& 'cachedb', 'cacheTable' =& 'cache', 'keyPrefix'=&'nai8_' ], ``` 配置后,缓存的键值会增加一个前缀,防止多个系统/模块公用一个缓存数据库带来的冲突问题,如下图所示: ![输入图片说明](https://static.oschina.net/uploads/img/03526_qX9o.png "在这里输入图片标题") ** gcProbabili...
这是从450家企业的招聘信息中统计而来,相对来说还是比较真实的,虽然有些公司的招聘要求万年不变,但还是可以大致反应企业的招聘要求的。 尽管Struts2漏洞频出,但是由于政府、银行以及传统企业遗留项目大部分还是采用Struts2的,所以还是占有一定市场,但绝壁不会增长。新兴互联网公司,一般来说主要是Spring家族居多,spring、spring Mvc以及Spring Boot 出现的频率较多。 从图中可以看出,分布式服务框架应用也是大部分企业招聘的必要条件了,阿里系的Dubbo名列前茅。相应的分布式应用程序协调服Zookeeper也出现在其中。 时下很流行的RESTful架构,准确的来说它是一种标准。也是很多企业考察的对象。 以下是出现次数超过100的一些技能,大家可以做一个参考。 Spring 299 MySQL 290 JavaScript 216 Linux 165 J2EE 151 设计模式 148 Struts2 138 Hibernate 132 Mybatis 130 jQuery 128 HTML 127 TOMCAT 117 iBatis 103 CSS 103 redis 102 多线程 102 dubbo 47 (绝壁不是打酱油的) 相信每个程序员、或者说每个工作者都应该有自己的职业规划,问一下自己对编程到底持有的是一种什么样的态度,是够用就好呢还是不断研究?...
  容器中的磁盘文件生命周期比较短暂,在一些比较复杂的容器应用中会产生一些问题。一、容器crash后,kubelet会重启该容器,但这些文件会丢失掉。二、pod中的多个容器经常需要共享文件。因此,Kubernetes的Volume应然而生,用于解决这些问题。 # 背景   在Docker中,也有[volumes](/engine/tutorials/dockervolumes/)这个概念,volume只是磁盘上一个简单的目录,或者其他容器中的volume。生命周期也不受管理,并且直到最近他们都是基于本地后端存储的。Docker现在也提供了volume driver,但是现在来说功能也较弱(比如官网提到的Ceph volume driver,现在已经没有维护了)。   Kubernetes的volume,有着明显的生命周期——和使用它的pod生命周期一致。因此,volume生命周期就比运行在pod中的容器要长久,即使容器重启,volume上的数据依然保存着。当然,pod不再存在时,volume也就消失了。更重要的是,Kubernetes支持多种类型的volume,并且pod可以同时使用多种类型的volume。   内部实现中,volume只是一个目录,目录中可能有一些数据,pod的容器可以访问这些数据。这个目录是如何产生的,它后端基于什么存储介质,其中的数据内容是什么,...
最近 需要用到 ngx_http_sub_module 来解决局域网边界的问题,但是只有一台Windows服务器可用,所以研究一下怎样在 Windows下添加 ngx_http_sub_module。
首先下载 Nginx 源码 ,需要先安装Mercurial 具体方法可以看 Nginx 官网教程 http://nginx.org/en/docs/howto_build_on_win32.html。 安装完 Mercurial 使用下面命令活动 Nginx 源码。 hg clone http://hg.nginx.org/nginx 安装 MSYS ,启动msys.bat并cd到nginx源码目录下执行: ./auto/configure -–prefix=”c:/nginx” -–with-cc-opt=”-D FD_SETSIZE=4096 -D __NO_MINGW_LFS -D __WATCOMC__” -–with-http_stub_status_module -–with-http_sub_module -–without-http_rewrite_module -–without-http_gzip_module –prefix=”c:/nginx”是Nginx的安装目录,注意一定要写路径中的斜杠,一定要是“/” -D FD_SETSIZE=4096是为了避免出现运行时的错误提示 -D __NO_MINGW_LFS是为了避免编译时出现ssize_t、off_t类型错误 -D __WATCOMC__是为了避免编译时出现Nginx shmtx错误 为了方便,采用–without-http_rewrite_module、–without-http_gzip_module避免Nginx依赖于其他库 执行完毕之后在objs目录下会...
记录学习JSX+ES6开发React的第七篇,按照官网的思路介绍如何使用React开发。
**原文地址:[asynchttpclient源码分析-基于Netty的连接池实现](http://huangzehong.me//-asynchttpclient%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90-%E5%9F%BA%E4%BA%8ENetty%E7%9A%84%E8%BF%9E%E6%8E%A5%E6%B1%A0%E5%AE%9E%E7%8E%B0/)** --- 最近项目重构,有了个机会更多接触一个有别于HttpAsyncClient的异步网络框架AsyncHttpClient,是个基于Netty的支持Http(s)或WebSocket协议的客户端。这东西有很多有趣的地方,特别是连接池的实现简单易懂,没有apache.hc的连接池实现那么蛋疼。如果想深入了解Netty用法的话,这是个不错的案例,很值得深究! --- **这里暂且仅关注连接池的实现,部分涉及Netty的channel输入输出处理、哈希轮定时器算法、事件轮询方式的区别,又或者信号量的使用等等,以后有机会会单独拿出来详解。** 由于是基Netty的实现的,所以连接池实际上就是对channel的管理控制,有趣的是整个管理只用到了信号量+一个定时检测器,略微复杂的也就定时检测的逻辑,其实现方式简单且很好理解,不像httpclient里各种队列各种信号量难以理解。 先上一个简单的例子,事实上使用起来也不复杂。 ``` java public class HttpTest { static AsyncHttpC...
[原文链接](http://cxis.me//SpringMVC%E6%89%A7%E8%A1%8C%E6%B5%81%E7%A8%8B%E5%8F%8A%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/) 在SpringMVC中主要是围绕着DispatcherServlet来设计,可以把它当做指挥中心。这里先说明一下SpringMVC文档给出的执行流程,然后是我们稍微具体的执行流程,最后是流程大致的源码跟踪。关于很很很详细的源码解析,这里暂先不做。 ## 官方文档中的流程 首先看下SpringMVC文档上给的流程图: ![DispatcherServlet.png](https://static.oschina.net/uploads/img/25333_0RIt.png "DispatcherServlet") 这张图片给了我们大概的执行流程: 1. 用户请求首先发送到前端控制器DispatcherServlet,DispatcherServlet根据请求的信息来决定使用哪个页面控制器Controller(也就是我们通常编写的Controller)来处理该请求。找到控制器之后,DispatcherServlet将请求委托给控制器去处理。 2. 接下来页面控制器开始处理用户请求,页面控制器会根据请求信息进行处理,调用业务层等等,处理完成之后,会把结果封装成一个ModelAndView返回给DispatcherServlet。 3. 前端控制器DispatcherServlet接到页面控制器的返回结果后,根据返回的视图名选...
&写在前面 首先,很感谢大家喜欢我的思维导图。 有网友评论说:思维导图实际就是一种比纯文字更贴近人理解的模型——知识关系。的确,思维导图又称为脑图,是一种适合头脑风暴模式,同时又适合梳理点与点之间的一种表现形式。当然,java作为一门语言,设及的的技术很多,知识面也是很广。小小一张思维导图也无法容纳这么多信息,因此想要深入了解思维导图中的每一个节点就需要另外上网查找资料或查看相关书籍。当然,我偶尔也会在节点中给出相关的链接。通过链接至少可以加深对每一个知识点的印象。 &小程序 前段时间吵得很火的小程序,虽然现在有点平静下来的趋势,但也不可能完全磨灭。随着腾讯对个人开发者开发,相信有很多人都想拥有自己的小程序。本次就分享我开发过程中整理的小程序思维导图(还没完成整理完)。希望对初学者,或者想回顾小程序的童鞋有所帮助。 ![0、总览图.png](http://upload-images.jianshu.io/upload_images/1a6d120e87e14.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![1、微信小程序.png](http://upload-images.jianshu.io/upload_images/d5a52cdc6ae7da.png?imageMogr2/auto-orient/strip%7CimageView2/...
几个月前,刚开始接触mxnet和Tensorflow时,编写的自己案例使用的就是简单的数据集iris。因为它足够简单(只有3个分类,150条数据),很容易分析。 和很多研究者不太一样,他们只是跑跑训练程序,看看打印出来的train accuracy就结束了。我训练完模型后,还喜欢继续编一些自定义的数据,然后让模型去做预测或分类,看看模型是否足够好。对Iris数据集,我用mxnet实现了一个MLP模型进行分类。在训练完后(打印出来的train accuracy在0.9以上的),马上做一些自定义数据的预测,结果发现预测分类结果很差,没法用。当时觉得是自己不熟悉Mxnet ,所以才会有这样的结果,就不管了。可是,后来转为用Tensorflow实现类似的MLP模型对iris数据集进行分类,然后预测同样的自定义数据,突然发现Tensorflow的代码表现很不错。这种强烈对比差距让我很惊讶,于是又用mxnet和Tensorflow编写MLP模型测试另外两个数据集,结果还是如此(Tensorflow基本可以分类,mxnet不行)。我把一些测试的数据列出来:
测试1. sonar dataset(两个标签值,60个特征,208条数据。): a)Tensorflow codes : train Accuracy: 0.833333 测试4个新的数据: New samples accuracy: 0. 50000
b) mxnet codes: tr...
用flume-ng 与 kafka 来收取网页无埋点数据,发现flume-ng 在channel配置中,有复制,和根据optional来配置规则来分发到对应的channel, 想通过增加channel针对同一个source做负载均衡来提高flume-ng的处理速度和性能!
整理下思路~
大电商战略时代,越来越多的人选择将消费者引入自己建立的独立商城里面,打造自己的品牌。这时,选择一个开源的电商平台是一个不错的选择,既降低了电商从业者和创业者的进入门槛,又可以进行二次开发,满足更个性化的服务及需求。 接下来,推荐几款相对成熟、稳定,且保持更新的国产优秀的开源电商系统,希望能对大家有所帮助。 1、ShopsN ShopsN 是一款基于 LAMP/WAMP 跨平台的电商系统,允许任何使用场景及商业用途(PC+Wap+微信+安卓+IOS原生开发)。 ShopsN 无阉割版、无收费插件、无云市场等隐藏收费,一般电商的主流程功能也不做额外收费,如三大支付模块、物流信息、团购、优惠等。 2、Fecshop Fecshop 全称为 Fancy ECommerce Shop,是基于 PHP Yii2 框架之上开发的一款优秀的开源电商系统,遵循 OSL3.0 协议。 Fecshop 支持多语言、多货币,架构上支持 pc、手机web、手机 app 和 erp 对接等入口,允许免费快速的定制和部署自己的电商系统。 3、DBShop DBShop 是基于 PHP ZendFramework 2 框架开发的新一代电子商务系统(完美支持 PHP7)。提供良好的用户体验、方便的操作管理、详细的使用教程、自动化的在线处理和简单易用的管理后台。 DBShop 内置多种支付接...
记录学习JSX+ES6开发React的第五篇,按照官网的思路介绍如何使用React开发。
很多网友来信坚持表达了在项目中应使用简单日志函数,而不喜欢日志函数库,我与之反复争论无果,不过话说回来,我也喜欢短小轻快的日志函数库,而不是融入太多功能的臃肿库,比如日志转档我还是坚持用外部shell来实现会更好,这样的日志函数库既可以小很多,也可以更轻快稳定,我只是迫于另外一批功能控网友的“威胁”而加入了太多的功能,他们喜欢极端的一揽子解决方案,并且展示其它诸如log4c也实现了这些功能为由证明他们是正确的,如果我不实现就免谈。 最近在研发一个小型的应用服务器平台tcpdaemon,里面需要日志功能,但整个tcpdaemon代码很少,比iLOG3小的多,于是让我想到最上面的那些网友的...
WebSphere应用服务器使用多个临时地点的原因很多。本博客解释了最常用的临时文件,为什么它们被使用,当它们可以被删除。本博客还将解释文件和目录,可以在配置文件的方向谨慎删除。
项目源码库:https://git.oschina.net/thorqq/RaidenFree
绝大多数游戏在启动后首先出现的是一个“载入中”的场景,此场景的用处是将游戏所需的图片、音乐、数据等资源从存储卡(或磁盘、闪存)读入内存,这样,后面需要用到这些资源时,可以直接从内存读取,以加快游戏的运行,提高流畅性。下面,就对资源的预加载机制做一个介绍。 资源的类型 预加载的目的是为了后续读取的快捷,所以,一般会预加载那些较大较复杂的文件,例如以下这些: 单张大图:背景大图 合成图:可多幅图片合成的大图,这里我们使用TexturePacker合成plist+png文件 骨骼动画:使用Cocos Skeletal Animation Editor创建的骨骼动画文件,ExportJson+plist+png文件 场景:使用Cocos Studio创建的csd文件 声音:ogg音乐文件 本地数据:游戏存档数据(格式为json文件)、游戏配置数据(例如关卡、飞机属性、子弹属性等固定的数据,格式为sqlite数据库文件) 远程数据:由于本游戏是弱联网游戏,所以保存在服务器上的数据不多。这里仅仅实现了用户登录、获取时间的功能 下面,我们将逐一介绍不同资源载入的方法。 加载方法 单张大图 定义std::vector&std::string& m_imageArray,将需要加载的图片...
陈海低头,看向自己的胸膛,顿时绝望,前后透亮,鲜血汩汩,生命力再强也不可能活下去。
“不”他捂着心口,不想死,练拳三十几年,体魄远超常人,神觉敏锐,他发现这个时代太适合他了。
现在天地剧变,不断有神秘果实出现,他可以藉此进化,能将形意拳推向终极境界,那时谁人能敌?
过去形意拳很难练,但现在不同了,只要身体不断进化,他将演化出形意拳传说中的所有“门道”。
他双目暗淡,带着无尽遗憾,还有对死亡的恐惧,直挺挺倒了下去,就此毙命。
通体金黄的山猫还有那头白犀牛悚然,盯着楚风,一时间没敢动手。
后方,数百头异兽一阵骚乱,它们都觉察到这个人类很恐怖。
楚风站在原地没有动,若有所思,大力牛魔拳果然神秘,越是参悟,收获越多。
黄牛曾说过,这套拳法如果演练下去,足以受用终生。
当时楚风还不太相信,因为,他早已将牛魔九式全部练成,觉得没什么可悟的了。
一番激战,他终于明白,黄牛没有骗他,这拳法非同小可。
身体进化后,他自然舒展四肢,随心所欲的挥拳,竟有一种全新的体会,拳印威力大增!
刚才,他双拳如牛魔王之角,无坚不摧,锋锐无匹,右拳印直接...
近期,公司部署在阿里云的测试服务器在一次重启后变得很不稳定,各种搜索、各种途径、各种办法都未能解决。
今天换了下搜索关键词,【linux服务器能ping通,但端口却无法访问】,结果看到一篇文章,提到:仅仅关闭防火墙还不行,要启动一次,然后再关闭一次。
于是,操作了两个命令,service iptables start,service iptables stop,问题得到完美解决。
/lsj9383/translate-set
(1) 先在/etc/rc.d/init.d下用vi 新建文件 mongod,内容如下: #!/bin/bash
#chkconfig:
#description: mongodb
/opt/mongo/bin/mongod --config /opt/mongo/bin/mongodb.conf
/opt/mongo/bin/mongod --config /opt/mongo/bin/mongodb.conf --shutdown
case "$1" in
$"Usage: $0 {start|stop|restart}"
esac (2) 修改/opt/mongo/bin/mongodb.conf,配置文件的内容如下 dbpath=/opt/mongo/data/db
#最好使用data/db这个目录,我之前用了其他的不行,不知道为什么
logpath=/opt/mongo/log/mongodb.log
pidfilepath=/opt/mongo/db.pid
directoryperdb=true
logappend=true
bind_ip= localhost
port=27017
oplogSize=1000
noprealloc=true
nojournal=true
smallfiles=true (3) 增加服务并开机启动 chmod +x /etc/rc.d/init.d/mongod
chkconfig --add mongod
chkconfig --level 345 mongod on
chkconfig --list mongod
service mongod start
最近一段事件一直在研究如何用wifi和PC连接,但是在网上找了很久,也看过很多例子。都没有成功。无奈只好自己研究。最后自己写了一个小Demo。分享一下。 1.在程序中通过 Runtime.getRuntime().exec("su"); 获得手机root权限(手机必须是root之后的)。 2.重新启动adbd exec("stop adbd");
exec("start adbd"); 3.与PC建立连接(我是通过bat文件进程处理的) /**
* 手机连接wifi.
* @param host 手机ip:端口号。例如:192.168.10.124:8888
* @return retcode 成功:1 ,失败:2
public int connectWifi(String host) {
String cmd = ParseProperties.getProperties("dir")
+ "bin/ConnectWifi.bat " +
BufferedReader reader =
int retcode = 0;
Process process = Runtime.getRuntime().exec(cmd);
reader = new BufferedReader(new InputStreamReader(
process.getInputStream()));
@SuppressWarnings("unused")
String line =
String returnLine =
System.out.println("*****************************");
while ((line = reader.readLine()) != null) {
if (line != null)...
任意环境下调试php,debug php 在不管php.ini配置的情况下开启php调试,php debug. 在你需要调试的php文件首行中加入. ini_set('display_errors',1);
//错误信息 ini_set('display_startup_errors',1);
//php启动错误信息 error_reporting(-1);
//打印出所有的 错误信息 ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); //将出错信息输出到一个文本文件 1 2 3 4 ini_set('display_errors',1);
//错误信息 ini_set('display_startup_errors',1);
//php启动错误信息 error_reporting(-1);
//打印出所有的 错误信息 ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); //将出错信息输出到一个文本文件 开发环境调试php,debug php php.ini 配置 ;显示错误信息 display_errors = O显示php开始错误信息 display_startup_errors = O日志记录错误信息 log_errors = On 1 2 3 4 5 6 ;显示错误信息 display_errors = O显示php开始错误信息 display_startup_errors = O日志记录错误信息 log_errors = On...
使用action 实现单文件的上传和下载
使用 struts2实现文件上传和下载相比于Servlet 简单很多 文件下载:
将type的类型修改为
增加几个参数:
contentType:发送到浏览器的MIME类型
决定了下载的文件的类型 通常设为application/octet-stream就可以了
contentLength:设置文件的大小
contentDisposition:设置响应的HTTP头信息中的Content-Disposition参数的值 由两部分组成,例如:attachment 表示 下载时弹出对话框提示用户保存或者直接打开文件,后一部分表示文件的名字,中间使用 ; 隔开
inputName:指定Action中提供的inputStream类型的属性名称
bufferSize:设置读取和下载文件时的缓冲区大小
Action中要有一个inputStream类型的属性 :下载文件使用的输入流
contentType对应的文件类型 文件类型 contentType设置 Word application/msword Excel Application/vnd.ms-excel PPT Application/vnd.ms-powerpoint 图片 image/gif
image/jpeg 文件文件 text/plain HTML网页...
import java.util.S
io流实现登录注册版本
1.启动系统类;
2.数据库类
以Properties类和io流的结合
操作文本为主体
3.注册接口
4.登录接口
public class start {
static int dengLuCount = 3;// 所允许登录次数记录
public static void main(String[] args) {
System.out.println("---登录请输入1,注册请输入2---");
Scanner sc = new Scanner(System.in);
int n = 0;
if ((n = sc.nextInt()) == 1) {
System.out.println("您将进入登录界面!");
System.out.println("您将进入注册界面!");
private static void zhuCe() {
System.out.println();
System.out.println("----注册界面----");
System.out.println("请输入注册用户名:");
String user = new Scanner(System.in).nextLine();
System.out.println("---请输入密码:---");
String mima = new Scanner(System.in).nextLine();
boolean b = new shuJuKu().shuJuKu_zhuCe(user, mima);
System.out.println("注册成功!");
System.out.println("注册失败");...
MQ介绍与选型,图片缺失,参见/view/1e
1、本文的受众 如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写程序,查数据,下电影)。 公司为了防止我们用XX软件封锁了它的端口或者服务器地址。 公司不让我们上XX网站,限制了网址甚至IP。 公司不让我们看关于XX的信息,甚至花血本买了XX设备,能够对内容进行过滤。一看XX内容,链接就中断了。 我爸是搞电脑的,他在家里的路由器上动了手脚,我不能看XXX了。 带着这些问题,我们先从什么是ssh隧道开始。 2、什么是SSH隧道 首先看下面这张图,我们所面临的大部分情况都和它类似。我们的电脑在右上角,通过公司带有防火墙功能的路由器接入互联网(当然可能还有交换机什么的在中间连接着你和路由器,但是在我们的问题中交换机并不起到什么关键性的作用)。右下脚的部分是一个网站的服务器,它是我们公司防火墙策略的一部分,也就是说公司不希望我们访问这个服务器。在右上角还有一台机器,它也是属于我们的。但是这台机器并不在我们公司里面,换句话说他不受到公司防火墙的限制。最后也是最重要的一点是,我们能够在公司通过互联网直接访问这台机器。或者说这台位于公司防火墙外面的机器需要拥有一个独...
下载Zxing的core.jar http://repo1.maven.org/maven2/com/google/zxing/core/ android studio打开模拟器 android studio导入Zxing/android项目,新建libs目录并加入core.jar,右击core.jar选择加入库,运行
上拉菜单$ionicActionSheet 在安卓手机中样式错乱、 cancelText不显示 问题解决
MySQL 使用过程中遇到的问题
在刷hackerrank上正则表达式题时,发现问号的作用不仅仅只是匹配或不匹配前面的模式,问号在python正则中的用法可谓变化多端,本篇文章总结常用问号用法。正则表达式的水很深,关键是要多实践。 tags:
1、当我们重用cell的时候,老是报错,提示我们找不到cell的标识 2、事实上,我们已经写了判断语句(如果在缓存池中找不到cell的话,就重新创建cell)
Confluence是一个非常不错的文档管理工具,以前我们一直使用他,不过现在我们已经有了替代的方式,我们今天看看,替代方案是怎么样的吧: 文档库列表 卡片式 列表式 全文检索过滤 当然,这个时候,你也可以进行收藏或者关注。 文档管理 界面概览 左边是目录树,图中有一部分有重复显示,是截屏软件的BUG,请忽略之。 从界面上可以看到: 文档空间操作区 文档目录树 文档内容显示区 内容分享及数据统计区 文档操作区 文档扩展操作区 附加功能区 接下来,我们慢慢介绍一下相关功能 文档空间操作区 可以点击当前文档下拉框选择其他文档空间 也可以输入部分内容,快速过滤 也可以点击全部空间,返回空间列表界面 点击,可以进入文档编辑界面 当前位置,表示点击添加文档时显示的是那篇文档,它是后面同级文档和下级文档的相对位置的开始。如果选择同级文档,会添加到当前文档的兄弟节点;如果选择下级文档,会添加到当前文档的子节点。当然,也可以通过点击更改位置来修改当前的起始位置。 文档编辑过程中,可以把图像文件直接拖入编辑窗口,即可完成文件上传;也可以通过粘贴的方式直接把图片帖到编辑其中,大大的方便了用户并提高了编辑速度。 下面的标题和内容,大家都是非常...
自学iOS也有一段时间了,期间发现iOS和Android一样,有很多非常优秀的开源库可以使用。但无奈国内几乎没有太多关于此方面资料,唯有在Github上摸索。今天就写一篇关于PKRevealController的使用。本文章假定你已经具有一定的Objective-C开发技术技术,若需要入门教程请咨询谷歌君。
毫无疑问,Google Chrome 备受开发者青睐,它提供了一套Chrome DevTools,是 Web开发和性能调试的必备工具,旨在为开发人员提供更轻松的生活。 但是 Chrome 能做的远不止你平常用的那么简单:Chrome的功能通过成千上万的附加组件和扩展功能进行扩展,让开发者们可以在开发过程中运用各种技巧测试网站和应用程序;尝试其他字体和布局;以及大大提高效率。 本文列出了一些对开发者的最有用的、用户友好和功能丰富的扩展工具并附上评分。开发者们可根据自己的需要进行选择。 1、网站分析工具 Wappalyzer 当前评分:5/5 Wappalyzer 是一个实用的跨平台网站分析工具,用于帮助开发者、研究者和设计者检测网页使用的是什么技术,以更好地衡量自己的项目中该使用什么技术。Wappalyzer 的功能和 BuiltWith 类似,可检测内容管理系统(CMS),电子商务平台、Web服务器、JavaScript框架和已安装的分析工具等。在这里查看Wappalyzer检测到的应用程序列表。 2、代码特效图 Marmoset 当前评分:5/5 Marmoset 由一段 Nginx 代码组成,可以在短短几秒钟内帮助你制作漂亮的代码截图,输出线框和标记代码。 此外,您可以添加主题和其他效果,它支持多种常见及不常见的代码语言类型,内建...
&思维导图的好处 最近看了一些文章的思维导图,发现思维导图真是个强大的工具。了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的时候一目了然,快速知道自己的短板。 思维导图不仅仅只有简单明了这个好处,它还能加深人对主题的印象和理解,能达到快速阅读的好处,就好像一本书的目录大纲,当你阅读了导图之后再带有目的的去找资料往往能达到事半功倍的效果。 就从java基础开始吧。花了3天的晚上的时间把[菜鸟教程的java教程](/java/java-tutorial.html)用思维导图的方式表达出来。 废话不都说,直接上图哈 ![java基础思维导图整理.png](http://upload-images.jianshu.io/upload_images/cadc10.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![1、Java 简介.png](http://upload-images.jianshu.io/upload_images/4120002-febccf0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![2、java主要特性.png](http://upload-images.jianshu.io/upload_images/a40fd0180afaa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![3、java发展历史...
阿拉丁期货反向跟单软件特点: 1、阿拉丁期货反向跟单软件操作逻辑性强,页面简单明了,用户可以很容易学会操作; 2、阿拉丁期货反向跟单软件适用的柜台接口多,目前的柜台接口有:CTP BGP(模拟)CTS 鑫管家 金牛 吉投 源深 奇正 融航 天财 一融 知富
易盛 直达 环球等(根据市场需求来增加柜台接口); 3、阿拉丁期货反向跟单支持登录账户的多寡取决于用户电脑的承受能力,因为账户越多数据量越大,会导致软件反应延迟的现象,所以为了保证跟单速度,一套软件登录的跟单账户最好在50个账户以内; 4、非零滑点跟单软件要求跟单软件的速度一定要快,这样滑点才会小,但是零滑点的跟单软件没有这样的顾虑,保证能够成交,并且不会有掉单漏单现象; 阿拉丁期货反向跟单注意事项: 一、控制模拟样本账户的资金,根据自己实盘账户的资金来平均分配,预防因模拟账户的总资金超过实盘资金导致因实盘账户保证金不足部分单子跟不进去的情况出现; 二、限制操盘手每日的下单次数,因为商品的波动毕竟没有股指那么大,如果高频交易会导致手续费的浪费,正常一天盘手的开仓次数不超过五次,补仓不计算在内,严禁盘手锁仓; 三、挑选几个波动较大的合约让盘手分开来做单,一个盘手只...
本文将会展示一些可帮助创建美观且可自定义的仪表盘的 JavaScript 库。
本帖提供三套学习路线,JAVA工程师学习路线(赠送,可免费索取),java架构师学习路线(收费),和大数据架构师三种学习路线(收费),针对不同的攻城狮,可以选择不同的学习路线(这三套视频是同时提供的,只要少许服务费,全部打包带走,资源加起来有IT左右,本人也是大数据架构师,免费提供技术方面的解答,付款后加技术群,后期群里资源持续更新,全部免费群里分享)Q:(非诚勿扰),废话不说上图:
一、java架构师学习路线 1、java架构师模块 (几乎涵盖所有的互联网应用,分布式架构设计,dubbo,mycat,nosql,负载均衡) 2、某网校高级架构师课程(分两阶段)
(1)高级架构师阶段一 (2)高级架构师阶段二 3、设计模式基础+设计模式项目实战
4、某机构高级架构师四个月课程
5、Java软件系统功能设计实战训练视频教程 6、JAVA互联网架构师(netty、mina、nio)
(1)、JAVA NIO流篇 (2)、Mina视频教程 (3)、Netty快速入门教程 7、JAVA架构师实战篇
(1)、初级篇 (2)、进阶篇 (3)、高级篇 (4)、架构篇 8、JAVA高级架构师(2016整理版)
9、JAVA架构师系统篇(old boy) 10、Spring boot+shiro
分布式发号器
一、Hello world 1、前期环境准备 准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章《一台机器同时启动多个tomcat》。 nginx官网下载解压版nginx。 创建一个简单的web项目。为了直观的区分访问的哪个tomcat,在页面写上标记。 分别部署到对应的tomcat下。如图:
2、配置nginx 进入nginx-1.10.1\conf路径,修改配置文件nginx.conf。 1、配置服务器组,在http{}节点之间添加upstream配置。(注意不要写localhost,不然访问速度会很慢) upstream nginxDemo {
server 127.0.0.1:8081;
#服务器地址1
server 127.0.0.1:8082;
#服务器地址2
} 2、修改nginx监听的端口号80,改为8080。 server {
} 3、在location\{}中,利用proxy_pass配置反向代理地址;此处“http://”不能少,后面的地址要和第一步upstream定义的名称保持一致。
location / {
index.html index.
proxy_pass http://nginxD #配置方向代理地址
} 如下图: 3、启动nginx和tomcat,访问 我是Windows系统,所以直接在nginx-1.10.1目录下双击ngi...
各位道友大家好:
“Angular2.0视频教程”来了!这是全球第一个完整的Angular 2.0系列视频教程,到目前为止也是唯一的,该系列的视频在优酷和youtube同步播出。
还是大漠穷秋老师,还是熟悉的声音,还是淡淡的小幽默。3年前,大漠老师在慕课网发布了“AngularJS实战” /learn/156 系列视频教程,迄今为止已经有14万人学习,整体评分9.6分。很多道友反馈说,通过学习这门课程找到了心仪的工作,大漠老师感到非常开心,说明他的付出是有价值的。
这一次,大漠老师再度倾力打造,从开发环境到完整案例,涵盖了Angular2的方方面面。如果你自己看文档,或者在网上寻寻觅觅,看那些碎片化的文章,可能需要几十个小时,甚至几个月才能摸到门道。而你来听大漠老师的系统讲解,只要8小时,你就是Angular开发专家了!整个课程全部基于大漠老师自己开发的NiceFish这个小项目,如果你想先睹为快,请自己检出代码上手试玩 http://git.oschina.net/mumu-osc/NiceFish 。
同时,大漠老师还给大家带来了一波小福利,每一节课都会送出2本《揭秘Angular2》,/.html ,整个课程共送...
当前,作为大部分移动app和云服务后台之间的标准连接方式,REST API已经得到了绝大部分开发者的认可和广泛的应用。近年来,在新兴API经济模式逐渐兴起,许多厂商纷纷将自己的后台业务能力作为REST API开放出来,给更广泛的第三方开发者使用。
但是,管理REST API并非是一件容易的工作。由于缺乏有效的接口数据schema约束,加上设计REST API时resource endpoint的安排,以及发送http请求的方式又都五花八门,REST API开发完成后,大多数情况下API开发者仍然需要手动书写API文档,让用户能按照文档的说明接入。并且在API发生变化时需要重写文档,这个过程费时费力而且容易出错。比如,一个REST API文档最少必须列明以下的基本信息:
* API的名称 * API所在的URL资源路径 * http请求方法(GET, POST, PUT等) * API提交数据的方式(查询参数、表单提交、JSON提交等) * 调用API返回数据的格式
在上面提供的REST API信息中,从API返回的JSON数据在大部分情况下甚至只能用“举例”的方法说明数据的结构,而无法精确表达出这段JSON数据中每个字段的精确含义和类型定义。这都是因为REST API缺少对JSON数据的schema定义而导致,而这种“举例”的方式毫无疑问是一种很无奈很...
Spring Boot官方文档中文翻译(更新至 20.1 属性默认值)
每周为您推送最有价值的开源技术内参!
如今的人们生活在在一个互联互通的数据时代中,生活中所使用的一切数据交换,其背后都离不开数据中心的支持,数据中心已成为信息社会的关键基础设施,是ICT技术的核心载体。 作为数据中心供配电系统的重要组成部分,UPS供电系统在保障负载用电、改善电能质量、防止电网对负载造成的危害等方面起着十分重要的作用。伴随着一个个超大数据中心的兴建,技术含量更高的超大功率UPS(≥500KVA)市场份额逐步提升,已逐渐取代小功率UPS成为市场的主角。然而,现有的UPS产品还无法做到两全其美:一直面临着效率与可靠性之间的取舍难题,追求最高效率的代价是损失可靠性,从而将数据中心置于危险境地。 客户深陷在风险管理、资本储备、运行费用等问题不能自拔。 作为全球能效管理和自动化领域专家的施耐德电气敏锐地洞察到了客户的问题痛点,并针对此问题推出了全新的三相UPS Galaxy VX! Galaxy VX商业价值 (基于客户面临的挑战) 适用于Colo托管型数据中心,工业、半导体、金融及工业制造业的大型及超大型数据中心用户的GalaxyVX,具有创新的四电平逆变专利技术、自如切换的三种运行模式、冗余模块化设计以及兼容锂电池在内的多样化储能选择,帮助用户实现风险管理,便于资本储备,在满...
笔者在本文中会结合自身实践和 GitHub 趋势对比最受欢迎的 Node.js E2E 测试解决方案,期望对大家的技术选型有帮助
阿拉丁股票资产管理系统是针对PC端运营的一款杠杆融资风控管理系统,安装部署后能迅速生成企业级的杠杆风控管理系统,独立的交易客户端和管理客户端。 支持全行业客户拓展,可以接入行情指数API.
功能模块: 包含系统管理,账号管理,报表管理,融资审核。 技术参数: JAVA + C++ + Mysql(Oracle)+ Linux
部署环境: 1台独立服务器,Windows Server操作系统,最少独享10M服务器带宽
适用平台: PC(windows操作系统)
软件包内容:交易客户端、管理客户端. 选择实盘账户所在券商 支持券商 A 爱建证券 安信证券 B 渤海证券 C 长城国瑞 长城证券 长江证券 财富证券 财通证券 财富里昂 D 大同证券 大通证券 德邦证券 东兴证券 东方证券 东莞证券 东北证券 东海证券 东吴证券 第一创业 F 方正证券 G 国盛证券 国信证券 国开证券 国元证券 国泰君安国联证券 国金证券 国海证券 广发证券 广州证券 光大证券 H 华泰证券 华龙证券 华西证券 华信证券 华鑫证券华林证券 华安证券 华宝证券 华福证券 华融证券 宏信证券 宏源证券 红塔证券 海通证券 恒泰证券 J 江海证券 金元证券 九州证券 K 开源证券 L 联合证券 联讯证券 M 民生证券 民族证券 N 南京证券 P 平安证券...
XXL-API是一个简洁易用API管理平台,提供API的"管理"、"文档"、"Mock"和"测试"等功能。现已开放源代码,开箱即用。
# Spring Boot JMS与IBM WebSphere MQ集成配置 [TOC] ## 前言 Spring Boot作为简化Spring开发的框架,已经为我们集成了ActiveMQ和RabbitMQ。只需在Spring Boot配置几个MQ的连接方式即可开箱即用。大大简化了开发配置过程。 Spring的JavaConfig相比传统的XML的配置方式使得配置更加的可靠和方便。 本文将会说明如何用JavaConfig的方式将Spring与IBM WebSphere MQ(以下简称IBM MQ)集成配置,也可以作为其他MQ的配置参考。 ## 开发工具 - IntelliJ Idea - JDK 1.8.0_121 - Maven ## 解决依赖 ### 获取IBM MQ依赖包 IBM MQ相关的连接依赖包为`com.ibm.mq.allclient.jar`,该包不存在于公共Maven仓库,所以我们需要找到该依赖包并手动安装到我们本机的Maven仓库中。 该依赖包位于`[IBM MQ 安装路径]\java\lib`下,Windows下的默认安装路径为`C:\Program Files\IBM\WebSphere MQ\`,Linux下的默认安装路径为`/opt/mqm/`。可以将该包复制到开发机上。 通过以下命令安装该包到本地仓库 ``` mvn install:install-file -Dfile=[jar包所在路径] -DgroupId=com.ibm -DartifactId=mq.allclient -Dversion=1.0 -Dpackaging=jar ``` & 在Idea中可以按四次Shift键调出全局搜索框,键入Exe...
Python的强大之处有许多,其中重要的一点就是Python包含许多的第三方库。因此,懂得如何制作、导入自制模块或第三方模块就显得非常重要。此外,熟悉python模块的查看方式有利于编程者缩短python语言的学习使用时间。本文从python模块的制作、导入、查看和使用入手,重点介绍在WINDOWS环境下如何处理和使用python模块。最后一部分介绍一些python常用的模块供读者参考。
商业推动着各行各业的发展,也同样阻碍着各行各业的发展。
作为团队里一名还未毕业的前端妹子,这周接到了接到了阿里巴巴-蚂蚁金服的三轮电面,我大概是从二月中旬的时候就陆续投一些公司的简历,想找一下比较好的暑假实习,一些大公司从二月份中下旬就开始发内推了,貌似我是在牛客网的讨论区刷到内推的机会的,然后就发了简历。等到了最近三月的7/8/10号这三天,我经历了杭州蚂蚁金服的一二三面(电话),面完第三面不知道结果怎么样,还是和大家分享一下吧。 一.第一次电面 ( 下午 5:30开始,持续半小时) (一)问题: 1.基础问题: 说说js的继承实现 js的闭包 2.项目问题: 说说你做过的项目
你在项目中的角色 (我说前后端,用node) 在项目中遇到的问题 假如让你重新做这个项目,你会怎么做? 这个项目有哪些你觉得会保留的,哪些你觉得需要改进的? 为什么用grunt 产品存放在哪里 有没有上线 node版本的区别 (二)我问的问题总结: 这次和面试官的沟通中,我了解到Angular慢慢地使用减少了,react、ej6、vue现在比较热门。(不过后来听师兄师姐说,阿里影视为了兼容问题暂时还在用 Angular1,而阿里UC也有使用Angular2的,所以还是有必要学习的 )另外,面试官介绍个github账号antdesign给我学习。 (三)个人总结: ...
  当跳槽不是加薪最好选择的时候,那么就存在着申请加薪的情况。   当然职场申请加薪,也是一个技术活,要怎么和老板说我要加薪呢?说不好可能给老板留下唯利是图的不好印象,怎么才能获得加薪还能让老板认识到我们的努力和认真。   不要涉及到个人私事   加薪的理由是在工作中的业绩,用事实告诉老板,我应该加薪了,而不是用自己的私事来要求老板加薪。当然特例除外。   不要用别的同事的薪资作比较   不要拿别的同事的薪资,作为加薪的依据。也不要说同事做的不如自己甚至做的不好,而工资却比我多,这样的理由,表现了你对公司的怀疑,甚至是对老板的怀疑。而且同事的工资你可能不知道全部事实,贸然拿来比较会让人陷入尴尬。   你要做的是和你所在的行业的平均水平来比较。   在自己不确定的情况下,不要贸然决定   有时候,老板并不像你希望的直接给你加薪,而且给了你另外的选择。这时候最好不要马上表示同意或反对,在你还不确定的情况下,很容易做出错误的决定。应该跟老板说给点时间考虑下,并且表明会尽快去办公室找他。   如果不理想不要闹情绪,下最后通牒,甚至威胁   如果你还打算在这家公司工作,或者还没到合适的跳槽机会,这时候要...
过滤语句为 从所有数据中查找一个结果集,查询语句则是标示的是查找一个精确的结果集合信息; 查询语句会询问每个文档的字段值与特定值的匹配程度如何 一条过滤语句会询问每个文档的字段值是否包含着特定值: 一条查询语句会计算每个文档与查询语句的相关性,会给出一个相关性评分 _score ,并且 按照相关性对匹配到的文档进行 排序。 这种评分方式非常适用于一个没有完全配置结果的全文本搜索 注:红色部分没有明白什么意思,如果有知道的烦请给予帮助,谢谢。。。。 1、索引中的数据为: curl -i -XGET 'http://localhost:9200/dsltest/dsltesttype/_search?pretty'
"took" : 3,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
"hits" : {
"total" : 2,
"max_score" : 0.2876821,
"hits" : [
"_index" : "dsltest",
"_type" : "dsltesttype",
"_id" : "2",
"_score" : 0.2876821,
"_source" : {
"age" : 30,
"date" : "",
"public" : true,
"full_text"
/view/837d09bbb8f67c1cfad6b8ec.html
文章完全是按照自己的理解写的,如果有什么不对的地方,请指正.... CyclicBarrier可以让几个线程准备好,等全部线程准备好了,再一起执行。举个例子,张三、李四、王五约好一起吃饭,只有三个人到期了才开始吃,这个例子自认为举得不错,给自己一点掌声,下面请看代码 package com.lujiawei.
import java.util.concurrent.CyclicB
* CyclicBarrier用法
* @version
日上午1:11:07
public class CyclicBarrierTest {
public static void main(String[] args) {
//初始化一个CyclicBarrier,后面3表示需要三个线程准备好了才能进行一起执行
CyclicBarrier cyclicBarrier = new CyclicBarrier(3);
Thread zhangsan = new Thread(new Runnable() {
public void run() {
System.out.println("张三准备到了,准备吃饭....");
cyclicBarrier.await();
//等待其他线程准备好
System.out.println("张三开吃");
} catch (Exception e) {
e.printStackTrace();
Thread lisi = new Thread(new Runnable() {
Osc乱弹歌单(2017)请戳(这里) 【今日歌曲】 @亲亲小软 :@小小编辑 点歌《桜唄》yuyu 《桜唄》- yuyu 手机党少年们想听歌,请使劲儿戳(这里) @shan变的人 :每天叫醒我的不是梦想,而是bug 起床推开窗, 看外面的景色, @巴拉迪维
:北方的春,久违了! @grath :一个人在家 好寂寞。 为什么一个人啊, 妈妈出差啦? @凝小紫 :老妈最近出差了家里断粮了,我和笨狗真的是饿的呀,前几天发现笨狗总是去邻居帅哥家蹭吃的,然后我也忍不住去蹭饭了,帅哥端出来饭后又去厨房忙了,就在我吃的正香的时候,帅哥端着菜出来了…… “ 妹子,那是给狗吃的,这才是你的 ” …… 就算是你自己和笨狗在家, 相信我, 你也吃不饱, 相信我,他们是怕你变胖了。 @达尔文 : 朕没有胖 是这世界变小了 这个世界都是朕的。 @邦尼酱 :小猪 @落落酱 :一脸享受。 落落,你知道真相是啥么? 我的喵生就是统治地球。 @TigaPile :Why cats are so weird 别怕, “外星人也内讧。” 所以我们及时享乐, @局长 :我的人生追求不过如此。 看你嚣张的样子, 忍不住打击你, @不是simaguo :来一波解毒 其实你在别人眼中这样的, @BENNEE :生动形象 我们的形象就是很丑的外星人么...
周末在捣鼓SpringMVC,用IDEA创建了个maven-archetype-webapp项目以供接下来的研究学习。在配置&context:component-scan/& 的 base-package 属性时(启用对类包进行扫描),才发现在main文件夹下没有Java源文件夹,刚创建好的项目结构如下图, 于是着手创建,右键-&New-&Directory,输入文件夹名Java,创建完成,现在才是标准Maven项目的结构。
创建好文件夹后就要创建Java类包了,但这时候点击右键-&New,是没有创建Package(也没有Java Class)的选项的。为什么呢,其实根据IntelliJ IDEA的图标也能判断,我们刚才创建的是一个普通的文件夹,而不是Java源文件夹。当你需要建立一个package时,它是自动建立到source folder下,也只能建立在这个目录之下。所以得想办法把这个普通文件夹转换成Java源文件夹。
按快捷键Ctrl+Alt+Shift+S打开Project Structure,点击Moudles,找到刚才创建的文件夹,右键,选择Sources文件夹变成蓝色,设置完成。或者通过点击下图箭头所指的Marks as Sources来设置。当然,有些朋友可能已经看到旁边的快捷键Alt+S了,三种方法效果是一样的。
在源文件夹里就能创建Package和Java Clas...
nfs的安装和配置,经常安装,做个比较复制快些。 1. yum 安装 yum install nfs-utils -y
yum install rpcbind -y
yum install mount.nfs -y
2. 选择好要nfs的目录 mkdir /var/exportfs
mkdir /var/exportfs/upload
mkdir /var/exportfs/share 如果是挂载的其它盘则使用 cat /etc/fstab
/var/redis
ext4 defaults 0 0
/var/exports
ext4 defaults 0 0 mount -a
//挂载 或者: mount [-t type] [-o option] device dir
mount -t ext4 /dev/vdb1 /var/redis
umount /dev/vdb1
或umount /var/redis
3. 编写exports文件(nfs配置文件) cat /etc/exports
/var/exportfs/upload
10.30.196.147/32(rw,no_root_squash,no_all_squash,sync) 10.30.196.142/32(rw,no_root_squash,no_all_squash,sync) 10.27.109.112/32(rw,no_root_squash,no_all_squash,sync) 10.27.110.20/32(rw,no_root_squash,no_all_squash,sync) 10.27.110.13/32(rw,no_root_squash,no_all_squash,sync)
/var/exportfs/share
10.30.196.147/32(rw,no_root_squash,no_all_squash,sync) 10.30.196.142/32(rw,no_root_squash,no_all_squash,sync) 10.27.109.112/32(rw...
import java.util.S
io流实现登录注册版本
1.启动系统类;
2.数据库类
以Properties类和io流的结合
操作文本为主体
3.注册接口
4.登录接口
public class start {
static int dengLuCount = 3;// 所允许登录次数记录
public static void main(String[] args) {
System.out.println("---登录请输入1,注册请输入2---");
Scanner sc = new Scanner(System.in);
int n = 0;
if ((n = sc.nextInt()) == 1) {
System.out.println("您将进入登录界面!");
System.out.println("您将进入注册界面!");
private static void zhuCe() {
System.out.println();
System.out.println("----注册界面----");
System.out.println("请输入注册用户名:");
String user = new Scanner(System.in).nextLine();
System.out.println("---请输入密码:---");
String mima = new Scanner(System.in).nextLine();
boolean b = new shuJuKu().shuJuKu_zhuCe(user, mima);
System.out.println("注册成功!");
System.out.println("注册失败");...
曾一度为android适配感到头疼,碎片化严重不说,android中特有的尺寸概念UI设计人员基本不懂;一般UI设计人员设计的尺寸都是用px标注的,开发人员在布局时无法直接对号入座;针对以上情况,特总结一下适配方案。 一.基本概念 屏幕尺寸 含义:手机对角线的物理尺寸 单位:英寸(inch),1英寸=2.54cm Android手机常见的尺寸有5寸、5.5寸、6寸等等 屏幕分辨率 含义:手机在横向、纵向上的像素点数总和 一般描述成屏幕的"宽x高”=AxB 含义:屏幕在横向方向(宽度)上有A个像素点,在纵向方向 (高)有B个像素点 例子:,即宽度方向上有1080个像素点,在高度方向上有1920个像素点 单位:px(pixel),1px=1像素点 UI设计师的设计图会以px作为统一的计量单位 Android手机常见的分辨率:320x480、480x800、720xx1920 屏幕像素密度 含义:每英寸的像素点数 单位:dpi(dots per ich) 假设设备内每英寸有160个像素,那么该设备的屏幕像素密度=160dpi 安卓手机对于每类手机屏幕大小都有一个相应的屏幕像素密度:
密度类型 代表的分辨率(px) 屏幕像素密度(dpi) 低密度(ldpi) 240x320 120 中密度(mdpi) 320x480 160 高密度(hdpi) 480x800 240 ...
GC参数整理: -XX:+UseSerialGC:在新生代和老年代使用串行收集器 -XX:SurvivorRatio:设置eden区大小和survivior区大小的比例 -XX:NewRatio:新生代和老年代的比 -XX:+UseParNewGC:在新生代使用并行收集器 -XX:+UseParallelGC :新生代使用并行回收收集器 -XX:+UseParallelOldGC:老年代使用并行回收收集器 -XX:ParallelGCThreads:设置用于垃圾回收的线程数 -XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器 -XX:ParallelCMSThreads:设定CMS的线程数量 -XX:CMSInitiatingOccupancyFraction:设置CMS收集器在老年代空间被使用多少后触发 -XX:+UseCMSCompactAtFullCollection:设置CMS收集器在完成垃圾收集后是否要进行一次内存碎片的整理 -XX:CMSFullGCsBeforeCompaction:设定进行多少次CMS垃圾回收后,进行一次内存压缩 -XX:+CMSClassUnloadingEnabled:允许对类元数据进行回收 -XX:CMSInitiatingPermOccupancyFraction:当永久区占用率达到这一百分比时,启动CMS回收 -XX:UseCMSInitiatingOccupancyOnly:表示只在到达阀值的时候,才进行CMS回收...
Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。 Linux的man手册共有以下几个章节:
代號 代表內容 1 使用者在shell中可以操作的指令或可执行档 2 系統核心可呼叫的函数与工具等 3 一些常用的函数(function)与函数库(library),大部分是C的函数库(libc) 4 装置档案的说明,通常在/dev下的档案 5 设定档或者是某些档案的格式 6 游戏(games) 7 惯例与协定等,例如Linux档案系统、网络协定、ASCII code等等的說明 8 系統管理員可用的管理指令 9 跟kernel有关的文件 如:man 5 ls 1 Executable programs or shell commands 2 System calls (functions provided by the kernel) 3 Library calls (functions within program libraries) 4 Special files (usually found in /dev) 5 File formats and conventions eg /etc/passwd 6 Games 7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7) 8 System administration commands (usually only for root) 9 Kernel routines [Non standard] 1、Standard commands (标准命令) 2、System calls (系统调用) 3、Library functions (库函数) 4、...
导读 3月24日消息,据BBC报道,商铺和零售商正在接管城市街头所有摄像头,监视着购物者的一举一动。2015年对IT服务公司Computer Services Corporation的150名零售高管进行调查显示,1/4的英国商铺和59%的零售店利用面部识别软件。在线零售分析公司Hoxton Analytics首席运营官邓肯·曼恩(Duncan Mann)说,随着线下门店正试图追赶在线零售商的脚步,面部识别技术变得越来越重要。
图:与面部识别相比,监视鞋子的侵扰性更低吗? 曼恩表示:“在线零售商会收集有关购物者的所有信息,实体店也希望能够了解人们在门店中的行为。”但他承认:“这些店铺和商家使用的技术有些具有很强的侵扰性。”Hoxton Analytics提出通过测量脚步了解购物者的新方法,实际上就是拍摄人们的鞋子。 这种类似福尔摩斯的系统可以根据购物者的鞋子,推测出相当多预期有关的信息,包括年龄、性别以及社会阶层等。曼恩解释说:“我们在距离地面50厘米高的地方安置摄像头,它的镜头朝下,只会拍摄到鞋子。因此与面部识别技术相比,其侵扰性也更小。”但令人感到吃惊的是,这种系统的推测非常精确,判定性别的准确率高达80%,比面部识别技术效果更好。 城市效率 城市正变得越来越拥挤,到2050年,全...
最近调试 一款 IQS333 电容触摸按键芯片IC,调了好几天发现I2C端口上没数据。最后追STM Clock tree 和STM 提供的I2C_Timing_Configuration工具解决了这个问题。现在分享给大家。 1. 首先我们观察Clock tree 查看 I2C clock source的缘由。 由 Clock tree可以得出I2C clock source 可以选择使用内部8MHz时钟,还是选用的系统SYSCLK. 本人选用的是STM32F030开发板。开发使用的是8MHz的外部晶振。所以采用外部8MHz时钟为例。 根据下面的 clock source时钟走势进行RCC 模块配置: 从走势我们可以看出我们需要确定PREDIV,PLLSRC,PLLMUL,SW和I2C1的源输入选择。 Clock configuration register 2 (RCC_CFGR2) Clock configuration register (RCC_CFGR) 最后配置RCC相应的PREDIV,PLLSRC,PLLMUL,SW得到PLLCLK为48MHz. 并且STM32厂商提供得了I2C时钟配置的工具。I2C_Timing_Configuration_V1.0.0.xls Note: The “Reset” button resets the input parameters to their default configuration. To get the value of the timing register, follow these steps: 1. Select device mode by choosing “Master” or “Slave” in the list box. 2. Configure the speed mode by select...
前端那些事之node相关命令
修改conf/tomcat-users.xml &role rolename="manager"/& &role rolename="manager-gui"/& &role rolename="admin"/& &user username="user" password="password" roles="admin,manager,manager-gui"/& 同时还需要修改,如无新建conf/Catalina/localhost/manager.xml 内容如下: &Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager"&
&Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /& &/Context& 无须重启tomcat即可生效。
引用原文: Each deployed webapp has a context.xml file that lives in $CATALINA_BASE/conf/[enginename]/[hostname] (conf/Catalina/localhost by default) and has the same name as the webapp (manager.xml in this case). If no file is present, default values are used. So, you need to create a file conf/Catalina/localhost/manager.xml and specify the rule you want to allow remote access....
C++计算机视觉 CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 OpenCV—它提供C++, C, Python, Java 以及 MATLAB接口,并支持Windows, Linux, Android and Mac OS操作系统。 通用机器学习 MLPack DLib ecogg shark Closure通用机器学习 Closure Toolbox—Clojure语言库与工具的分类目录 Go自然语言处理 go-porterstemmer—一个Porter词干提取算法的原生Go语言净室实现 paicehusk—Paice/Husk词干提取算法的Go语言实现 snowball—Go语言版的Snowball词干提取器 通用机器学习 Go Learn— Go语言机器学习库 go-pr —Go语言机器学习包. bayesian—Go语言朴素贝叶斯分类库。 go-galib—Go语言遗传算法库。 数据分析/数据可视化 go-graph—Go语言图形库。 SVGo—Go语言的SVG生成库。 Java自然语言处理 CoreNLP—斯坦福大学的CoreNLP提供一系列的自然语言处理工具,输入原始英语文本,可以给出单词的基本形式(下面Stanford开头的几个工具都包含其中)。 Stanford Parser—一个自然语言解析器。 Stanford POS Tagger —一个词性分类器。 Stanford Name Entity Recognizer—Java实现的名称识别器 Stanford Word Segmenter—分词器,很多NLP工作中都要用到的标...
指令的一般格式为 INSTRUCTION arguments ,指令包括 FROM 、 MAINTAINER 、 RUN 等。 FROM 格式为 FROM &image& 或 FROM &image&:&tag& 。 第一条指令必须为 FROM 指令。并且,如果在同一个Dockerfile中创建多个镜像时,可以使用多个 FROM 指令(每个镜像一次)。 MAINTAINER 格式为 MAINTAINER &name& ,指定维护者信息。 RUN 格式为 RUN &command& 或 RUN ["executable", "param1", "param2"] 。 前者将在shell终端中运行命令,即 /bin/sh -c ;后者则使用 exec 执行。指定使用其它终端可以通过第二种方式实现,例如 RUN ["/bin/bash", "-c", "echo hello"] 。 每条 RUN 指令将在当前镜像基础上执行指定命令,并提交为新的镜像。当命令较长时可以使用 \ 来换行。 CMD 支持三种格式 CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式; CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用; CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数; 指定启动容器时执行的命令,每个Dockerfile只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。 如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。 EXPO...
###这个人有什么目的?: 我多多少少听过一些安全圈的大牛说到类似的思路,大意是可以通过扫描各种程序和服务的配置文件(比如SVN的文件,RSYNC的配置文件等), 从中发现敏感信息,从而找到入侵的突破口。沿着同样的思路扩展,管理员们用着各种各样的管理工具(SSH,FTP,mysql之类等等的管理工具), 这类工具通常都在本地存着密码,如果这些工具中配置信息被恶意扫描读取走,有可能会造成极其重大的损失。 所以我想尝试验证看看各种管理工具的敏感信息是不是容易读取并解码出来,二来这过程中有思考,也会有各种资料和动手实践,能很好地练习、复习编程技能。 基于总有刁民想害朕的想法,我比较希望操作系统或者安全软件能提供更加精细的权限控制,毕竟不管是百度还是360或者迅雷的全家桶,这些公司的软件底线比较低, 如果这些软件或者其它软件没有读取我们敏感数据的权限的话,我们会更放心一些。 **sqlyog是一款商业开源的非常不错的mysql管理工具。** #####安装sqlyog后,会把配置文件存在用户目录下: C:\Users\%user%\AppData\Roaming\SQLyog\sqlyog.ini 取环境变量%AppData% +上 SQLyog\sqlyog.ini 就可以。 ###以下是 sqlyog.ini文件片段: ``` [UserInterface] Langu...
安装 zookeeper支持brew安装。 $brew info zookeeper
zookeeper: stable 3.4.6 (bottled), HEAD
Centralized server for distributed coordination of services
https://zookeeper.apache.org/
/usr/local/Cellar/zookeeper/3.4.6_1 (208 files, 13M) *
Poured from bottle
From: /Homebrew/homebrew/blob/master/Library/Formula/zookeeper.rb
==& Options
--with-perl
Build Perl bindings
--with-python
Build with python support
Install HEAD version
==& Caveats
To have launchd start zookeeper at login:
ln -sfv /usr/local/opt/zookeeper/*.plist ~/Library/LaunchAgents
Then to load zookeeper now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.zookeeper.plist
Or, if you don't want/need launchctl, you can just run:
zkServer start
安装 $brew install zookeeper
==& Downloading /bottles/zookeeper-3.4.6_1.mavericks.bottle.2.tar.gz
######################################################################## 100.0%
==& Pouring zookeeper-3.4.6_1.mav...
从第一行开始显示文件内容 cat -n filename 从第一行开始显示文件内容,并标记行 $ cat
/etc/man_db.conf tac filename
从最后一行开始显示 nl filename
从第一行开始显示文件内容,并输出行号 more filename
一页一页的显示文件内容 空格键:
向下翻一页 Enter:
向下翻一行 q:
上一页 less
可以翻页显示 空格键:下一页 [pagedown]:下一页 [pageup]:上一页 q:离开 head [-n number] filename
只看前几行 $head -n 10 /etc/man_db.conf $head
/etc/man_db.conf
默认显示前10行 $head -n 15 /etc/man_db.conf tail [-n number] filename
只看最后几行 $tail /etc/man_db.conf
默认显示10行
环境准备 ubuntu-12.04.1-desktop-i386.iso jdk-7u7-linux-i586.tar.gz paohaijiao@ubuntu:~$ sudo -s [sudo] password for paohaijiao: root@ubuntu:~# vi /etc/lightdm/lightdm.conf [SeatDefaults] user-session=ubuntu greeter-session=unity-greeter greeter-show-manual-login=true allow-guest=false root@ubuntu:~# sudo passwd root Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully root@ubuntu:~# reboot -h now 以root用户登录 root@ubuntu:~# mkdir /usr/lib/java root@ubuntu:~# getconf LONG_BIT 32 root@ubuntu:~# cd /usr/lib/java root@ubuntu:/usr/lib/java# ls jdk1.7.0_07
jdk-7u7-linux-i586.tar.gz export JAVA_HOME=/usr/lib/java/jdk1.7.0_07 export JRE_HOME=${JAVA_HOME}/jre export CLASS_PATH=.:${JAVA_HOME}/lib:$JRE__HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH root@ubuntu:/usr/lib/java# source ~/.bashrc root@ubuntu:/usr/lib/java# apt-get install ssh root@ubuntu:~# /etc/init.d/ssh start Rather than invoking init scripts through /etc/init.d, use the service(8) utility,...
#MySql-Proxy之多路结果集归并 笔者觉得Cobar之类的分库分表最神奇的部分就是靠一条sql查询不同schema下(甚至不同实例下)的不同的表。例如 ``` select * from t_ // 映射为 |------select * from schema1.t_test |------select * from schema2.t_test ResultSet // 返回结果集为两者的归并 |--schema1.t_test.ResultSet |--schema2.t_test.ResultSet ``` 以笔者这种刨根到底的性格当然要把这个过程DIY出来。 由于Cobar对MySql的连接是BIO的。而笔者喜欢NIO,于是用NIO将Corbar的多节点查询全部重写(基于Netty)。NIO的难度更大,性能也更好,这个重写的过程就记录成博客,以飨读者。 #多路归并原理 #多节点发送select语句 ![lancelot_select](https://static.oschina.net/uploads/img/.png "lancelot_select") 当客户端发送给select * from test后,Lancelot会根据配置将语句将当前语句路由到多个不同的DB实例上,如上图所示。 FrontEnd:用来和client交互,一个FrontEnd可以对应多个Backend BackEnd:用来和DB交互 #多节点归并结果集 ![result_set](https://static.oschina.net/uploads/img/02815_m4GK.png "result_set") 每条语句在一个D...
& 背景:公司登录基础服务是C开发,业务是Java开发,需要Java调用C的服务验证登录、获取登录信息 & 实现方式: * 交互通过发送Socket通讯,socket连接池,Google Protobuf 协议,发送心跳保持TCP连接 * 自定义ExecutorCompletionService,实现一个包含Map&& /shawntime/shawn-common-utils/tree/master/src/main/java/com/shawntime/common/socket ### Google Protobuf 协议定义 定义.proto文件:头文件(head_outer_class.proto)、登录(login_logic.proto)、心跳(login_proxy.proto) * 字段类型:bool,int32,float,double,string * 支持消息嵌套 * 支持enum * 索引号要按顺序指定 * 字段前缀:required:必须的;optional:可选的;repeated:可以重复的 ``` enum ENUM_HEAD_TYEP { enum_cs_head_type_cs = 0x1; //0x1表示CSHead enum_cs_head_type_sc = 0x2; //0x2表示SCHead enum_cs_head_type_ss = 0x3; //0x3表示SSHead }; enum ENUM_CS_HEAD_COMMAND { enum_cs_head_cmd_medal = 0x1; //勋章系统 enum_cs_head_cmd_login = 0x2; //登录系统 enum_cs_head_cmd_guild = 0x3; //公会推荐 enum_cs_head_cmd_user_info = 0x4; //用户信息 };...
分布式发号器
当前,作为大部分移动app和云服务后台之间的标准连接方式,REST API已经得到了绝大部分开发者的认可和广泛的应用。近年来,在新兴API经济模式逐渐兴起,许多厂商纷纷将自己的后台业务能力作为REST API开放出来,给更广泛的第三方开发者使用。
但是,管理REST API并非是一件容易的工作。由于缺乏有效的接口数据schema约束,加上设计REST API时resource endpoint的安排,以及发送http请求的方式又都五花八门,REST API开发完成后,大多数情况下API开发者仍然需要手动书写API文档,让用户能按照文档的说明接入。并且在API发生变化时需要重写文档,这个过程费时费力而且容易出错。比如,一个REST API文档最少必须列明以下的基本信息:
* API的名称 * API所在的URL资源路径 * http请求方法(GET, POST, PUT等) * API提交数据的方式(查询参数、表单提交、JSON提交等) * 调用API返回数据的格式
在上面提供的REST API信息中,从API返回的JSON数据在大部分情况下甚至只能用“举例”的方法说明数据的结构,而无法精确表达出这段JSON数据中每个字段的精确含义和类型定义。这都是因为REST API缺少对JSON数据的schema定义而导致,而这种“举例”的方式毫无疑问是一种很无奈很...
Python的强大之处有许多,其中重要的一点就是Python包含许多的第三方库。因此,懂得如何制作、导入自制模块或第三方模块就显得非常重要。此外,熟悉python模块的查看方式有利于编程者缩短python语言的学习使用时间。本文从python模块的制作、导入、查看和使用入手,重点介绍在WINDOWS环境下如何处理和使用python模块。最后一部分介绍一些python常用的模块供读者参考。
笔者在本文中会结合自身实践和 GitHub 趋势对比最受欢迎的 Node.js E2E 测试解决方案,期望对大家的技术选型有帮助
之前对 Nginx,WSGI(或者 uWSGI,uwsgi),Flask(或者 Django),这几者的关系一存存在疑惑。通过查阅了些资料,总算把它们的关系理清了。
一、Hello world 1、前期环境准备 准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章《一台机器同时启动多个tomcat》。 nginx官网下载解压版nginx。 创建一个简单的web项目。为了直观的区分访问的哪个tomcat,在页面写上标记。 分别部署到对应的tomcat下。如图:
2、配置nginx 进入nginx-1.10.1\conf路径,修改配置文件nginx.conf。 1、配置服务器组,在http{}节点之间添加upstream配置。(注意不要写localhost,不然访问速度会很慢) upstream nginxDemo {
server 127.0.0.1:8081;
#服务器地址1
server 127.0.0.1:8082;
#服务器地址2
} 2、修改nginx监听的端口号80,改为8080。 server {
} 3、在location\{}中,利用proxy_pass配置反向代理地址;此处“http://”不能少,后面的地址要和第一步upstream定义的名称保持一致。
location / {
index.html index.
proxy_pass http://nginxD #配置方向代理地址
} 如下图: 3、启动nginx和tomcat,访问 我是Windows系统,所以直接在nginx-1.10.1目录下双击ngi...
# Spring Boot JMS与IBM WebSphere MQ集成配置 [TOC] ## 前言 Spring Boot作为简化Spring开发的框架,已经为我们集成了ActiveMQ和RabbitMQ。只需在Spring Boot配置几个MQ的连接方式即可开箱即用。大大简化了开发配置过程。 Spring的JavaConfig相比传统的XML的配置方式使得配置更加的可靠和方便。 本文将会说明如何用JavaConfig的方式将Spring与IBM WebSphere MQ(以下简称IBM MQ)集成配置,也可以作为其他MQ的配置参考。 ## 开发工具 - IntelliJ Idea - JDK 1.8.0_121 - Maven ## 解决依赖 ### 获取IBM MQ依赖包 IBM MQ相关的连接依赖包为`com.ibm.mq.allclient.jar`,该包不存在于公共Maven仓库,所以我们需要找到该依赖包并手动安装到我们本机的Maven仓库中。 该依赖包位于`[IBM MQ 安装路径]\java\lib`下,Windows下的默认安装路径为`C:\Program Files\IBM\WebSphere MQ\`,Linux下的默认安装路径为`/opt/mqm/`。可以将该包复制到开发机上。 通过以下命令安装该包到本地仓库 ``` mvn install:install-file -Dfile=[jar包所在路径] -DgroupId=com.ibm -DartifactId=mq.allclient -Dversion=1.0 -Dpackaging=jar ``` & 在Idea中可以按四次Shift键调出全局搜索框,键入Exe...
原生函数(native function)是 JavaScript 语言的一部分,这些函数有别于开发者编写的自定义函数。当我们在 profiler 中查看代码的调用栈时,这些函数是被过滤掉的。我们在 profiler 中看到的只有自己写的代码。
位运算是一种比较特别的数学运算。一般情况下,位运算的运算效率比加减乘除等常规数学运算要高得多。此外,位运算具备一些常规数学运算所没有的特点和规律,我们可以利用位运算的相关特性来完成一些非常巧妙的程序设计。
本文会对Tomcat进行简单说明,作为后续配置web.xml的铺垫。说明主要围绕server.xml这一配置文件进行。
我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过`JSON.stringify`后的字符串是怎样的?**先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看,写完再去仔细对比你的控制台输出,如果有误记得看完全文并评论,哈哈。** ```javascript var friend={ firstName: 'Good', 'lastName': 'Man', 'address': undefined, 'phone': ["1234567",undefined], 'fullName': function(){ return this.firstName + ' ' + this.lastN } }; JSON.stringify(friend);//这一行返回什么呢? ``` 第二个问题,如果我想在最终JSON字符串将这个'friend'的姓名全部变成大写字母,也就是把"Good"变成"GOOD",把"Man"变成"MAN",那么可以怎么做? 基于以上两个问题,我们再追本溯源问一下,JSON究竟是什么东西?为什么JSON就是易于数据交换?JSON和JS对象的区别?JS中`JSON.parse`、`JSON.stringify`和不常见的`toJSON`,这几个函数的参数和处理细节到底是怎样的? 欢迎进入本次“深挖JSON之旅”,下文将从以下几个方面去理解JSON: - 首先是对“JSON是一种轻量的数据交换格式”的理解; - 然后来看经常被混为一谈的JSON和JS对象的区别; - 最后...
mod_expires&mod_headers可以减少10%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求。 在使用之前,首先要确认一下”mod_expires”模组是否有启用.如果是自己安装Apache来架设网页主机的话,这里我们可以透过编辑Apache的”httpd.conf”设定档来处理
首先我要说,开源托管,必须得 @红薯 家的。 上一次本人写过一篇博客《长URL转短连接的简单设计与实现》,由于写得比较仓促,是缺少设计的,因此方案也是不完整的,看到大家非常有热情,阅读的阅读收藏的收藏,我就深深的为写了这么不够深入的博客而感到不安,于是就有了这一篇博客,以及背后的开源代码。 确实,这次花费时间比较多,大概有大半天的时间设计并写代码。 需求 首先说明一下这次的主要关注点: 可以满足多种场景下的短链接生成需求 可以满足多重序列号机制 可以满足多种短链接生成方式 自由&可扩展性--秉承一贯的设计原则,觉得框架实现的好就用,觉得不满足就替换之 主要接口说明 字符串生成接口 package org.tinygroup.
* 随机字符串发生器
* Created by luoguo on .
public interface StringGenerator {
String generate(String url);
void setLength(int length);
} setLength用于指定生成的长度,generate用于生成对应长度的短链接字符串。 上片文章里面被人喷说生成逻辑不够好,这次好了,随便你写你喜欢的。 当然,为了满足懒人,也有一个默认的实现,大致就是把上次的算法挪下来了 /**
* 随机字符串发生器的默...
本人 JFinal脑残粉,最近公司几个项目都需要跟硬件交互,这就得用到长连接,之前一直没接触过该领域,本来还想花时间研究下netty,讲真挺难啃的,找资料的时候翻到 talent-aio,略微了解发现似乎学习成本极低,没想到作者本人也极其nice,解答我这个门外小伙子好多个问题,顺利用上此框架,刚好解了我的燃眉之急。 什么是 talent-aio? talent-aio是基于java aio实现的即时通讯框架,源于作者另一个久经考验的talent-nio框架,但在易用性、性能及代码可读性方面又远远超越了talent-nio。 顺便放上传送门:https://my.oschina.net/talenttan/blog/863545 废话不说,下面正题: 下载talent-aio的demo,demo极其简单,主要还是看HelloAbsAioHandler这个类的编码协议,剩下的就是看Aio的类了,api 貌似都在这。具体不介绍了,上面有链接,要注意的是Client端与Server端协议要一致。在这里说下我之前踩的坑,比如talent-aio的demo代码中的协议是有header的,Server端对客户端没有要求,但必须遵循交互协议,所以若是你用百度出来的socket实例连Server要注意,这里我们用回本身提供的Client代码就可以了。 导入talnet-aio依赖。
&dependency&
&groupId&com.tale...
  上篇《Docker基础入门及示例》文章介绍了Docker部署,以及相关.net core 的打包示例。这篇文章我将以oss.offical.site站点为例,主要介绍下在linux机器下完整的部署流程,.net core在docker容器中的运行已经介绍,这里.net core运行环境我会介绍直接在linux运行的场景,内容主要包含以下几个部分: 1. 基础工具和Linux环境准备 2. .Net Core环境安装及端口配置 3. Nginx的安装配置 4. Supervisor守护进程安装配置   一. 基础工具和Linux环境准备  
工具介绍:   Ubuntu:azure云端linux主机   Xshell:免费的linux客户端工具   FileZilla: 免费文件上传(sftp、ftp)工具    vs2017:
开发工具   本次部署主要是通过Nginx负载代理.net core服务,提供对外站点访问。.net core 本身的宿主则通过其自带的Kestrel服务运行。如果你是云主机请记得在管理控制台添加80访问端口。   那这里我先创建一个www文件夹,作为后边存放站点文件的根目录,同时设置相关权限,这里可能会有一个小的需要注意的问题,现在很多云主机直接登录后权限是很低的,需要使用:sudo -s 命令提升权限,否则创建文件夹会出现权限不足的错误。   1. mkdir /home/www/ossoffic...
优秀应用算法都大量用到位运算,而位运算在工作中很少用到,所以借助其算法,我们看一下位运算的优势以及应用,但是大多数教材只会教大家二进制和十进制如何互换,都是死记硬背式的,并没有去讲解真正含义,换一个进制之后,依然不会,我们回到最根本的一些计数方法上,从10进制来推算,希望用一种更简单的方式介绍其原理
想使用微服务,却不知从何入手的同学或者有如下疑问的,可以看看这个项目实例。 参考我在解决如下问题的思路,这里只是简单的介绍,更多的内容靠源码表达了。有时间再单独就微服务的每一块写博客。
非常多的时候,我们不想在分享的时候采用长长的链接,主要的原因有: URL太长占显示空间、难于输入,转成二维码点点小,难于识别 长的URL提供的信息太多,不利于信息安全,甚至容易造成倒库 其他理由...... 今天的理由不是重点,重点是如何用一点点代码实现这个短链接的生成。 我们的注意点有: 生成的短链接地址长度可调整,毕竟不能因为4位、5位、6位的长度变化就让我们重新写一套程序 要有防冲突处理机制,不能因为算法导致两个长链接地址生成的短地址一样就把前一个覆盖掉 有时候,一个地址用过之后觉得不需要使用了,哪么这个地址失效之后,短地址可以有效收回。 首先设计接口 /**
* Created by luoguo on .
public interface UrlShortener {
* 设置产生短链接长度
* @param length
void setLength(int length);
* 返回短链接长度
int getLength();
* 返回指定地址对应的短链接
* @param url
String get(String url);
* 存储对应关系
* @param url
* @param shortUrl}

我要回帖

更多推荐

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

点击添加站长微信