Java日志Log4j或者Logback的NDC和MDC功能

Java中使用的日志的实现框架有很多种,常用的log4j和logback以及java.util.logging,而log4j是apache实现的一个开源日志组件(Wrapped implementations),logback是slf4j的原生实现(Native implementations)。需要说明的slf4j是Java简单日志的门面(The Simple Logging Facade for Java),如果使用slf4j日志门面,必须要用到slf4j-api,而logback是直接实现的,所以不需要其他额外的转换以及转换带来的消耗,而slf4j要调用log4j的实现,就需要一个适配层,将log4j的实现适配到slf4j-api可调用的模式。

4年 ago

Springboot启动时开启一个或多个线程

最近项目基于springboot做微信机器人,从网上看了一下,一般都是单个用户登录,然后一个线程死循环,类似监听器,如果有信息就处理信息。但是,我们的要求是需要可以多个用户登录,所以,每次登录一个用户,开启一个线程,用户意外退出或者接口响应错误的情况下,该线程回收。

4年 ago

01-从0开始学习Docker

Docker is the world’s leading software containerization platform.

Docker是世界领先的软件容器化平台。

Docker公司开发,开源,托管在GitHub,开源部分现改名为Moby,docker由docker公司商业化。

优点:跨平台、支持Windows、MacOS、Linux。

4年 ago

Maven将Scala项目打包为war包

war包即对WEB应用程序进行打包,用于应用容器的部署,比如tomcat,netty等。编译Scala需要引入scala-maven-plugin插件,编译java需要引入maven-compiler-plugin插件。大多数的时候我们的项目是scala和java的混编,所以,编译的时候需要这两个插件。

4年 ago

Nginx截断response的body

在前后端分离实践中,借助于nginx的反向代理,既能解决负载问题,也能解决跨域问题,是一个完美的实现方案。最近解决写了一个多级菜单列表的接口,数据大小有200k。通过ip访问,返回数据是完整的,但是通过代理域名访问,返回只有60-80k之间的数据。

5年 ago

SVN冲突解决方法

在ubuntu中,使用svn控制代码版本(其实个人喜欢GIT的,但是team使用的svn),出现冲突问题,做程序员就得上刀山下火海,不怕问题来找你,所以,本着职业的精神,好吧,解决吧。

第一次使用markdown写博客,写的时间有点久,语法不熟悉,看着语法手册一步一步创建的,大家凑合着看吧。

5年 ago

Mac 下 Nginx、PHP、MySQL 和 PHP-fpm 的安装和配置

手动搭建nginx+php+mysql是phper的一件必备的技能,PHP界众所周知LAMP或者LNMP是Linux+Apache(Nginx)+Mysql+PHP的一套运行环境,而Linux和Mac有相似之处,其核心来源于Unix,所以Linux中的大部分命令在Mac中也是完美支持的,本文就MNMP环境的搭建做一个经验总结。

我们知道nodes与npm,java与maven(或者gradle),php与composer,Ubutun与apt-get,Centos与yum等等,均属于开发语言或操作系统与库或者安装包的依赖管理,而Mac上则常用的包管理器是homebrew。

5年 ago

基于Coding的Hook部署代码

Webhook 允许第三方应用监听 Coding.net 上的特定事件,在这些事件发生时通过 HTTP POST 方式通知( 超时5秒) 到第三方应用指定的 Web URL。 例如项目有新的内容 Push,或是 Merge Request 有更新等。 WebHook 可方便用户实现自动部署,自动测试,自动打包,监控项目变化等。

6年 ago