java.nio.channels.IllegalBlockingModeException

编写一个 NIO 程序 demo 时,抛出了如下异常:
java.nio.channels.IllegalBlockingModeException

经排查,是 SocketChannle 如果要用多路复用器 Selector,需要将 SocketChannel 的对象设置为非阻塞。

2年 ago

高性能计算集群如何工程化

随着人工智能的发展,高性能服务出现在工程师的日程上,模型训练可谓热火朝天,但是问题也就此而来:资源分配和任务调度缺乏统一管理,无法及时获悉任务执行情况,造成资源浪费;资源占用不能直观监控,不能及时获知服务性能情况;每次跑模型任务都需要安装依赖软件,算法工程师还需要维护服务环境,精力浪费在核心工作之外;甚至部分数据从线下环境操作,数据安全也是一大隐患等。

2年 ago

PhpStorm 2019.2.1激活码

PhpStorm 2019.2.1激活码,亲测可用,持续更新。 建议大家购买正版,此激活码仅用于学习。如若有问题,责任自负。

PhpStorm 2019.2.1
Build #PS-192.6262.66, built on August 22, 2019
Licensed to Jig F
Subscription is active until June 13, 2020
Runtime version: 11.0.3+12-b304.39 x86_ 64
VM: OpenJDK 64- Bit Server VM by JetBrains s.r.o

2年 ago

MacOS编译NGINX1.17

使用Mac的开发者大多数的时候通过 brew 命令安装各类软件,比如 PHP、Python、Nodejs,Nginx 也不例外。

默认情况下Nginx安装在/usr/local/Cellar/nginx,通过brew link nginx加软连接到/usr/local/bin/nginx,虽然这样完全满足开发且符合 Mac 软件的管理,但是却不方便移植(比如想给不懂开发的用户一键部署部署的应用包,做私有化部署的同学应该对此不陌生)。

从源码编译 NGINX 程序比安装预编译的安装包要灵活很多,可以添加特定的模块(来自NGINX官方或者第三方的,比如给 Fastdfs 提供 HTTP 访问文件能力的 fastdfs-nginx 模块),当然自己编译源码拉取的可以是已修复 bug 和新增特性的最新分支。

2年 ago

首页

点击数:7

2年 ago

浅谈分布式锁

随着架构系统的演进,由纯真的单机架构到容器化编排的分布式架构,可以说是一个大型互联网企业发展的必然走向。在网站初创时,应用数量和用户较少,可以把Tomcat和Mysql部署在同一台机器上。随着用户数量增多,访问量增大,并发升高,Tomcat和MySQL竞争资源,此时,单机已经扛不住了,需要把Tomcat和MySQL分离在不同的机器上,用于提升单台机器的处理能力。业务从来没有减少,产品越做越大。应用也越来越复杂,原来的大应用,拆分成多个小应用,加入各级缓存,做了反向代理负责均衡,最后坠入分库分表的深渊。

2年 ago

git未跟踪文件通过合并覆盖错误的解决方法

在开发标注平台系统的时候,项目原同事将dubbo的注册缓存通过配置项的方式将其放在项目根目录,在 IDEA 中运行项目,每次都会生成该文件,导致项目目录有点乱,于是将其改变,放在当前用户目录的.dubbo-registry目录,且隐藏起来,减少人为操作引起的 RPC 调用问题。

经过这么已改造,保存项目并提交到 git 仓库,其他同事拉取项目之后,提交时出现如下错误:

error: The following untracked working tree files would be overwritten by merge:
~/.dubbo-registry/data-web-registry.properties
~/.dubbo-registry/data-web-registry.properties.lock
Please move or remove them before you merge.
Aborting

2年 ago

shell多进程执行任务

管道就像水管,有流入才会有流出,水管数水流的通道,管道是数据的通道。管道分为无名管道和有名管道。

无名管道:常用的|就是管道,只不过是无名的,可以直接作为两个进程的数据通道,比如:cat file.txt | grep test

有名管道:mkfilo 可以创建一个管道文件,比如:mkfiflo testfifo

管道有一个特点,如果管道中没有数据,那么取管道数据的操作就会阻塞,直到管道内进入数据,然后读出后才会终止这一操作,同理,写入管道的操作如果没有读取操作,这一个动作也会阻塞。

2年 ago

[转]怎么回答面试官:你对Spring的理解?

Java面试中不可避免的都会问到Spring相关的问题,经常会遇到的就是IOC、AOP、Bean的实例化等,虽然有时候我们能回答上这些问题,但是如果没有从源码中领悟Spring的架构原理,也就不知道spring背后做了哪些事,我们项目中会遇到哪些问题。本文作者bravo1988从BeanDefinition和BeanPostProcessor层面阐述了spring中的设计思想以及spring核心原理。

2年 ago