创建EMQX环境

EMQX 提供 MQTT 协议服务,使用 docker 可以方便部署:

docker run -d --name emqx -p 18083:18083 -p 31002:1883 emqx/emqx:latest

登录账号:admin,密码:public

SpringBoot 取出 JSONString 形式的 requestBody

@PostMapping("/getRequestBodyJson")
public void getRequestBodyJson(HttpServletRequest request) throws IOException {
    BufferedReader reader = new BufferedReader(
        new InputStreamReader(request.getInputStream(), "UTF-8"));
    String line;
    String result = "";
    while ((line = reader.readLine()) != null) {
        result += line;
    }
    System.out.println(result);
}

注意不能使用 @RequestBody 注解,否则会空指针错误。因为 request.getInputStream() 只能被读取一次,然后就会被清空。

tmux 窗口操作

SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。

为了解决这个问题,会话与窗口可以“解绑”:窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话”绑定”其他窗口。Tmux 的作用就是会话与窗口的“解绑”工具,将它们彻底分离。

继续阅读

阿里ECS部署jar包发生无法解析计算机名的问题

在ECS上利用 docker 部署 jar 包时出现如下错误:

redis.clients.jedis.HostAndPort - cant resolve localhost address

是因为spring-redis在初始化时会实例化LocalHost,但是ECS的host name并没有在设置,解决方案是在 /etc/hosts 中设置ECS的host name。

比如:ssh 登录后,界面显示 user@abcdefg ,则在 /etc/hosts 中添加 127.0.0.1 abcdefg

docker 轻量级管理工具 portainer

1、准备好 docker 环境
2、拉取镜像:

docker pull portainer/portainer

3、运行实例:

# 单机(本机)
docker run -d --name portainer -p 9000:9000 -v "/var/run/docker.sock:/var/run/docker.sock" portainer/portainer

# 群集
docker run -d --name portainer -p 9000:9000 portainer/portainer

4、添加 docker registries

名称:microsoft
地址:dockerhub.azk8s.cn

安装 OMV 记录

安装后初始账号密码

admin openmediavault

安装 omv-extend

ssh 登录后,执行:

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash

安装 docker 添加国内镜像

添加 docker registries

名称:microsoft
地址:dockerhub.azk8s.cn

安卓使用 termux

简介

Termux是一个 Android 下一个高级的终端模拟器,开源且不需要 root,支持 apt 管理软件包,十分方便安装软件包,完美支持PythonPHPRubyGoNodejsMySQL等。随着智能设备的普及和性能的不断提升,如今的手机、平板等的硬件标准已达到了初级桌面计算机的硬件标准,用心去打造完全可以把手机变成一个强大的工具。

Google Play下载的版本比酷安要新,有能力建议下载Google PLay版本的。

继续阅读

docker 运行 mongodb

1、准备工作:安装docker

2、docker 安装 mongodb

docker pull mongo
docker run -itd --name mongo -p 27017:27017 mongo --auth

–auth:需要密码才能访问容器服务。

$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
>  db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
# 指定某表管理员
> db.createUser({user:'user',pwd:'123456',roles:[{role:'readWrite',db:'mydb'}]});
# 所有表只读
> db.createUser({user:'user',pwd:'123456',roles:['read']});

3、mongo-express

docker run -it --name mongo-express --link mongo -d -p 8081:8081 -e ME_CONFIG_OPTIONS_EDITORTHEME="3024-night" -e ME_CONFIG_BASICAUTH_USERNAME="mongoexpress" -e ME_CONFIG_BASICAUTH_PASSWORD="mongoexpress" -e ME_CONFIG_MONGODB_ADMINUSERNAME="mongoadmin" -e ME_CONFIG_MONGODB_ADMINPASSWORD="mongoadmin" mongo-express

docker network ls 可以查看当前所有的 Docker NETWORK

4、Docker Compose 实现

创建文件 stack.yml

version: '3.1'

services:

  mongo:
    image: mongo:4.1.6
    ports:
      - 27017:27017
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: mongoadmin
      MONGO_INITDB_ROOT_PASSWORD: mongoadmin

  mongo-express:
    links:
      - mongo
    image: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_OPTIONS_EDITORTHEME: 3024-night
      ME_CONFIG_BASICAUTH_USERNAME: mongoexpress
      ME_CONFIG_BASICAUTH_PASSWORD: mongoexpress
      ME_CONFIG_MONGODB_ADMINUSERNAME: mongoadmin
      ME_CONFIG_MONGODB_ADMINPASSWORD: mongoadmin
docker-compose -f stack.yml up

全文中涉及到的用户名、密码、版本视实际情况修改。
更多使用说明:https://hub.docker.com/_/mongo

docker 运行 rabbitmq

docker 运行 rabbitmq

docker pull rabbitmq:management
docker run -d -p 5672:5672 -p 1883:1883 -p 15672:15672 --name rabbitmq rabbitmq:management

启用插件

# 插件列表
docker exec -it rabbitmq rabbitmq-plugins
# 启用 MQTT
docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_mqtt

管理

管理界面:http://localhost:15672,用户名和密码都是 guest

linux 安装 maven

  1. 下载页面:https://maven.apache.org/download.cgi ,选择 Binary tar.gz archive

  2. 添加环境变量,通常在 /etc/profile~/.profile

# 目录路径按实际修改
export MAVEN_HOME=/home/maven/apache-maven-3.3.9
  1. 添加 PATH
export PATH=$PATH:$MAVEN_HOME/bin
  1. 确认安装成功
# 注销后不用执行
source ~/.profile
mvn -v