Fork me on GitHub

通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB)

原文地址 一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB)

一、镜像加速

Docker 默认是从官方镜像地址 Docker Hub 下下载镜像,由于服务器在国外的缘故,导致经常下载速度非常慢。为了提升镜像的下载速度,我们可以手动配置国内镜像加速器,让下载速度飚起来。

国内的镜像加速器选项较多,如:阿里云,DaoCloud 等。

本文主要说说如何配置阿里云的镜像加速器。

2.1 登录阿里云获取加速信息

  1. 首先你需要注册一个阿里云账号,没有的话,通过下面的连接跳转注册:

dev.aliyun.com/

  1. 跳转镜像加速页 cr.console.aliyun.com/,获取加速配置信息:

2.2 配置 Docker

2.2.1 确定 Docker Client 版本

在配置之前,首先需要确定 Docker Client 的版本,推荐是 1.10.0+:

2.2.2 配置镜像加速器

PS: 这里以 CentOS 系统为例,如果你是别的系统,可以参考阿里云配置加速器官方文档。

通过修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器:

执行下面命令:

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://bjtzu1jb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2.3 验证一下速度

以下载 mongodb 为例,看下速度:

配置了加速器过后,速度终于飚起来了。

二、快速安装&搭建 Mysql 环境

本节中,我们将学习如何通过 Docker 快速安装与搭建 Mysql 环境。

2.1 下载 Mysql 镜像

这里以 Mysql 5.7 为例:

1
docker pull mysql:5.7

下载完成后,通过 docker images 检查一下镜像是否下载成功:

2.2 先以最简单方式启动

先以简单的方式启动:

1
2
3
4
5
docker run -d \
--name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7
  • -d:以后台的方式运行;
  • --name mysql:指定容器的名称为 mysql;
  • -p 3306:3306 将容器的 3306 端口挂载到宿主机的 3306 端口上;
  • -e MYSQL_ROOT_PASSWORD=123456:指定 root 的密码为 123456

命令执行完成后,你也可以通过 docker ps命令来确认下容器是否启动成功。若成功,我们需要将容器中的目录文件复制到宿主机中,分别包括:

  • mysql 配置文件;
  • 数据存储目录,以便挂载(PS: 若不挂载到宿主机,每次启动容器数据都会丢失)
1
2
3
4
# 将容器中的 mysql 配置文件复制到宿主机中指定路径下,路径你可以根据需要,自行修改
docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /usr/local/docker/mysql/config
# 将容器中的 mysql 存储目录复制到宿主机中
docker cp mysql:/var/lib/mysql/ /usr/local/docker/mysql/data

完成这一切后,让我们将刚刚运行的容器删除掉。

1
docker rm -f mysql

PS: mysql 是我们运行容器时,指定的名称,当然,你也可以先执行 docker ps, 通过容器 ID 来删除。

2.3 正式运行 Mysql 容器

接下来,正式运行 Mysql 容器:

1
2
3
4
5
6
7
docker run -d \
--name mysql \
-p 3306:3306 \
-v /usr/local/docker/mysql/config/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-v /usr/local/docker/mysql/data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7

其他不变,额外添加了两个挂载子命令:

  • -v /usr/local/docker/mysql/config/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf: 将容器中 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件挂载到宿主机的 /usr/local/docker/mysql/config/mysqld.cnf 文件上;
  • -v /usr/local/docker/mysql/data:/var/lib/mysql: 将容器中 /var/lib/mysql 数据目录挂载到宿主机的 /usr/local/docker/mysql/data 目录下;

执行命令完成后,查看下容器是否启动:

可以看到,容器运行成功

2.4 通过 Mysql 客户端连接一下试试

通过 MySQL 客户端连接刚刚创建的 mysql, 看看能否连接成功:

连接成功了!

三、快速安装&搭建 Redis 环境

本节中,我们将学习如何利用 Docker 安装&搭建 Redis 环境。

阅读更多...

Spring Boot Thymeleaf 热部署

thymeleaf禁用缓存

将thymeleaf的cache属性置为false,不使用thymeleaf的缓存功能。

1
2
3
spring:
thymeleaf:
cache: false

一开始我就配置了,但是修改页面之后,刷新浏览器,修改的内容没有生效。

最终解决办法

这个时候查看target目录下,你修改的html文件,发现刚刚修改的内容并没有编译到该文件中。刷新浏览器自然就没有生效。所以需要我们自己手动build一下。。。

方法1

  1. 首先,需要thymeleaf的缓存设置为false。

  2. 然后使用下面两条命令,均可以。

    ctrl + shift + F9:Recompile (这个一般是修改了java代码,如controller等文件,重新编译)
    ctrl + F9:Build Project (这个,当你修改了静态页面,如html页面,重新build)

如果只是修改了静态页面,建议使用ctrl + F9。

方法2

可能你觉得每次修改之后,按一下快捷键也很麻烦。那么就需要配置一下IDEA。开启IDEA的自动build功能。使用spring-boot-devtools进行热部署。

  1. 首先,还是需要把thymeleaf的缓存设置为false。

  2. pom.xml加入,引入devtools:

1
2
3
4
5
6
7
8
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>2.0.4.RELEASE</version>
<!-- 启用 -->
<optional>true</optional>
</dependency>
  1. 修改IDEA的两处配置
    ①file —> setting —>Compiler,启用自动build

ps:这里有可能IDEA的版本不一样,没有这个选项,有可能是make project automatically

​ ②IDEA中按下快捷键:ctrl + shift +alt + / ,调出如下面板

OK。这个时候,修改文件,再刷新一下浏览器。会发现刚刚改的东西生效了(java代码和静态页面得修改都会自动生效)。修改controller里面的代码,不用重新编译,也自动生效了。

Java 生态核心知识点整理

原文链接 Java 生态核心知识点整理

下载地址 Java核心知识点整理

又到了求职的金三银四的黄金月份,我相信有不少小伙伴已经摩拳擦掌的准备寻找下一份工作。

就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。

但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。

我偶然从一个网友群中发现了整理的这份资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。

也不知道这位作者是谁,里面的内容也大多整理来自于互联网,但很明显的是这位作者为了整理这份资料用了很多心,在此表示感谢。

注,后来联系上了作者是美团的一位大佬,再次表示感谢!

我随后截了几张图,大家可以仔细查看左边的菜单栏,覆盖的知识面真的很广,而且质量都很不错。

imgimgimgimg

说实话,作为一名 Java 程序员,不论你需不需要面试都应该好好看下这份资料。我大概撸了一边,真的是堪称典范。

PostgreSQL关闭session链接,删除数据库方法

原文链接 PostgreSQL 关闭session链接,删除数据库方法

问题描述

PostgreSQL 中 有时候想删除数据库(drop database swiftliveqaapi;),发现提示“ERROR: database “xxxxxx” is being accessed by other users DETAIL: There are 30 other sessions using the database.”

意思是 有其他用户在连接数据库,不能删除。

解决方法:

1
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='数据库名' AND pid<>pg_backend_pid(); 

然后就可以删除数据库了。

图床软件推荐(原创)

之前七牛云图床翻车了,现在微博图床也不能用了,下定决心使用github作为图床,还是美帝的便宜好占。

搜了下发现这款图床软件不错,所以推荐一下。

PicGo

图片上传+管理新体验

官网 PicGo

应用截图

img

picgo-menubar

应用说明

PicGo在上传图片之后自动会将图片链接复制到你的剪贴板里,可选5种复制的链接格式。

PicGo目前支持了

  • 微博图床 v1.0
  • 七牛图床 v1.0
  • 腾讯云COS v4\v5版本 v1.1 & v1.5.0
  • 又拍云 v1.2.0
  • GitHub v1.5.0
  • SM.MS v1.5.1
  • 阿里云OSS v1.6.0
  • Imgur v1.6.0

GitHub图床配置

1
2
3
4
5
6
7
{
"repo": "", // 仓库名,格式是username/reponame
"token": "", // github token
"path": "", // 自定义存储路径,比如img/
"customUrl": "", // 自定义域名,注意要加http://或者https://
"branch": "" // 分支名,默认是master
}

1. 首先你得有一个GitHub账号。注册GitHub就不用我多言。

2. 新建一个仓库

img

记下你取的仓库名。

3. 生成一个token用于PicGo操作你的仓库:

访问:https://github.com/settings/tokens

然后点击Generate new token

img

把repo的勾打上即可。然后翻到页面最底部,点击Generate token的绿色按钮生成token。

img

注意:这个token生成后只会显示一次!你要把这个token复制一下存到其他地方以备以后要用。

img

4. 配置PicGo

注意:仓库名的格式是用户名/仓库,比如我创建了一个叫做test的仓库,在PicGo里我要设定的仓库名就是Molunerfinn/test。一般我们选择master分支即可。然后记得点击确定以生效,然后可以点击设为默认图床来确保上传的图床是GitHub。

img

至此配置完毕,已经可以使用了。当你上传的时候,你会发现你的仓库里也会增加新的图片了:

img

打造 Mac 下高颜值好用的终端环境

原文链接 打造 Mac 下高颜值好用的终端环境

如果你觉得当前的终端操作不符合你的气质,可以看看我今天来介绍的 Mac 终端利器,不过不会介绍太多细节操作。

biezhi iterm

它们是谁?

  • iTerm2:号称 Mac 下最好的终端工具(嗯,我也这么认为,毕竟我不会别的了)
  • zsh:一款强大的终端工具,能帮助你更高效地编写和执行命令。

安装 iTerm2

下面的安装我几乎都用 brew 方式了,如果你还不懂什么是 brew 可以看看 这个

所以下面我假设你已经安装了 Homebrew

如果你从来没有运行过 brew cask 命令,可以先执行:

1
brew tap caskroom/cask

多执行也不会怀孕的,放心!

然后开始安装 iTerm2

1
brew cask install iterm2

安装成功后在 Launchpad 中可以看到有一个新图标出现,打开 iTerm2。

代码配色

默认的界面还是略显丑陋的,我们来设置一下代码配色吧。

iTerm2 设置

先检查下终端颜色配置为 xterm-256color,位置在 iTerm2 -> Preferences -> Profiles -> Terminal

iTerm2 终端颜色值

阅读更多...

Spring Cloud 开源软件都有哪些?

原文链接 http://www.ityouknow.com/springcloud/2018/08/06/spring-cloud-open-source.html

学习一门新的技术如果有优秀的开源项目,对初学者的学习将会是事半功倍,通过研究和学习优秀的开源项目,可以快速的了解此技术的相关应用场景和应用示例,参考优秀开源项目会降低将此技术引入到项目中的成本。为此抽了一些时间为大家寻找了一些非常优秀的 Spring Cloud 开源软件供大家学习参考。

上次写了一篇文章Spring Boot 2 (三):Spring Boot 开源软件都有哪些 给大家介绍优秀的 Spring Boot 开源项目,本篇文章给介绍 Spring Cloud 的优秀开源项目。Spring Cloud 开源项目主要集中在 Github/码云 ,本文所有项目地址也均来自于这两个网站。

1、 awesome-spring-cloud

首先给大家介绍的就是 Spring Cloud 中文索引,这是一个专门收集 Spring Cloud 相关资料的开源项目,也有对应的导航页面。

产品主页

http://springcloud.fun/

项目主页

https://github.com/ityouknow/awesome-spring-cloud

产品截图

img

2、 PiggyMetrics

一个简单的个人财务系统,基于 Spring Boot,Spring Cloud 和 Docker 简单演示了微服务的架构模式,整个项目几乎包含了 Spring Cloud 的所有特性包括 配置中心、Gateway zuul API 网关、Eureka 服务发现、Hystrix、Turbine仪 表盘应用健康监控等等。

PiggyMetrics 被分解为三个核心微服务。这些服务都是围绕某些业务能力组织的可独立部署的应用程序。

img

PiggyMetrics 的项目架构图

img

项目主页

https://github.com/sqshq/PiggyMetrics

产品截图

img

3、 spaascloud-master

spring cloud + vue 全家桶实战,模拟商城,完整的购物流程、后端运营平台,可以实现快速搭建企业级微服务项目。

功能点: 模拟商城,完整的购物流程、后端运营平台对前端业务的支撑,和对项目的运维,有各项的监控指标和运维指标。

技术点: 核心技术为springcloud+vue两个全家桶实现,采取了取自开源用于开源的目标,所以能用开源绝不用收费框架,整体技术栈只有 阿里云短信服务是收费的,都是目前java前瞻性的框架,可以为中小企业解决微服务架构难题,可以帮助企业快速建站。由于服务 器成本较高,尽量降低开发成本的原则,本项目由10个后端项目和3个前端项目共同组成。真正实现了基于RBAC、jwt和oauth2的 无状态统一权限认证的解决方案,实现了异常和日志的统一管理,实现了MQ落地保证100%到达的解决方案。

产品主页

http://mall.paascloud.net/index

项目主页

https://github.com/paascloud/paascloud-master

产品截图

img

阅读更多...

Java企业级开源项目推荐

本文整理自视频 https://www.bilibili.com/video/av49644128

1. Halo

✍ Halo 可能是最好的 Java 博客系统

项目地址

https://github.com/halo-dev/halo

Author JDK GitHub release Travis CI Docker Build Status

2. hutool

img

项目地址

https://github.com/looly/hutool

A set of tools that keep Java sweet.

img img img img img img gitee star github starnetlify

3. piggy metrics

基于springcloud微服务框架,个人记账本项目

image-20190420125240570

项目地址

https://github.com/sqshq/piggymetrics

piggymetrics项目分析

https://cloverat.github.io/categories/%E9%A1%B9%E7%9B%AE%E5%88%86%E6%9E%90/

4. codesheep Spring Boot实战合集

项目地址

https://github.com/hansonwang99/Spring-Boot-In-Action

程序羊博客

https://www.codesheep.cn

  • Copyrights © 2015-2023 高行行
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信