java微服务开发(基础环境篇)

我们的目标是~~_浩瀚的宇宙 _~~全栈开发
俗话说的好 _工欲善其事 必先利其器 _对于一个开发者来说 一个好的开发环境可以带来的收益是巨大的
本篇的重点主要是linux上一的一些环境的安装 主要是docker

本篇涉及到的是一些开发时候使用到的环境包括Windows环境和Linux环境

Windows环境

我的日常开发环境就是Windows 虽然大伙都推荐程序员使用mac 但是没办法 _咱们也没有闲钱啊 _ 所以一个正常的Windows开发环境就非常重要了

Windows版本建议使用Windows10或者Windows7
推荐:Windows10 下载安装地址:链接
内存: 推荐内存16G
不会现在还有人用4g内存的Windows10开发微服务吧 不会吧 不会吧

基础环境配置

基础环境没啥好说的 jdk你的会安装配置吧 不管是Windows还是Linux
git的基本使用你得会用吧
现在都是spring boot项目了 maven要会使吧,到处copy jar包到resources spring的几个jar不兼容 maven都可以解决这些难题

Windows基础环境配置主要是jdk,git,maven

jdk

jdk可是Java程序员的命根子了 入门和他打交道 到达架构师级别 也要和他打交道 面试会问jvm 工作要依赖他跑项目 我愿称之为java程序员的一生之敌

jdk是开发Java必备的环境 推荐为jdk1.8及其以上
下载地址:Oracle官网地址:链接 我分享的百度云网盘地址:链接   提取码:9fkc

下载后默认安装

配置环境变量: 百度
不会还有人觉得我会在这里详细写安装jdk和配置环境变量吧

git

git也是工作中常用的工具了,不管你的项目是大还是小 我都建议使用git来管理 并且找一个稳定的git仓库来保存
比如国外的github 国内的gitee 也可以自建gitlab 或者gogs

GIT(分布式版本控制系统)
是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
下载地址: 链接

下载后默认安装

maven

maven啊 通俗一点就是一个管理jar包的工具 让你可以不用手动的去copy jar 管理各个版本的jar包
比如spring4下.的jar 和spring5.x的jar肯定是有兼容问题的 可以通过maven方便的管理 只要给出jar的坐标就可以了

maven是现在主流的项目构建工具,但是目前spring正在淡化maven 转而推荐gradle
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件
maven官网地址: 链接

下载地址: 链接
配置: 链接
配置maven的中央仓库地址
编辑maven_home/config/settings.xml
找到 
在最后添加如下xml代码

     <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>        </mirror>

配置localRepository (本地仓库存放地址 即为存放jar包和坐标的地址)
编辑maven_home/config/settings.xml
找到settings
在下面添加如下代码 (这里的E:\repo为E盘下的repo文件夹 如果没有 请提前创建 可替换成自己的文件夹)

  <localRepository>E:\repo</localRepository>

验证maven安装

C:\Users\Administrator>mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: D:\maven-3.6.3\bin\..
Java version: 11.0.2, vendor: Oracle Corporation, runtime: D:\jdk
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

开发工具配置

开发工具为日常开发中我使用到的一些开发工具

IDEA

IDEA 和 eclipse都是比较常用的java开发ide 在我刚学习的时候我就使用的是eclipse 在后来的某一次使用过IDEA后就很少打开eclipse了

IDEA是我推荐使用的Java开发的IDE也是我正在使用的主力IDE
官网地址: 链接
下载地址: 链接
如何激活 以及其他快捷配置 请问百度: 链接

下载后默认安装
配置IDEA 主要配置maven
打开-File-Settings

![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9qcGVnLzE2OTcxMjcvMTU5NDM2NDkyNTEwMi0wZDRjZmQzYy01OWQ4LTRjYTktYjk1YS1lMDZmYTVmMGM0YjIuanBlZw?x-oss-process=image/format,png#align=left&display=inline&height=575&margin=[object Object]&originHeight=575&originWidth=1025&size=0&status=done&style=none&width=1025)

Visual Studio Code

vs code是微软出的一个ide 目前我也就使用它开发过前端 开发Java我觉得还是idea好

vs code是一个基本上还算是全能的ide了 但是我还是觉得用来开发前端 html vue比较方便
visual studio code官网: 链接

下载地址: 链接
配置vs code

主要在扩展中启用如下扩展

![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY1NTY4NjkzLTI2YjczMTQ3LTI5YmMtNGFjNC1iZDU1LTUyNjI1NWY0M2U4OS5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=524&margin=[object Object]&name=image.png&originHeight=524&originWidth=392&size=57244&status=done&style=none&width=392)

XShell

xshell是目前主流的ssh链接工具 (主要是Free for Home xshell中一个窗口不能超过4个链接Xftp中不能超过2个)
官网: 链接

下载地址: 链接
下载完成后默认安装

Navicat Premium 12

Navicat Premium 12是一款数据库可视化工具 可以用于管理mysql,postgre,oracle,sqlite,sqlserver,mariadb,mongondb链接
官网: 链接

下载地址: 链接
下载完成后解压默认安装

PDMan

PDMan是一款开源免费的数据库模型建模工具,支持Windows,Mac,Linux等操作系统,是PowerDesigner之外,更好的免费的替代方案。他具有颜值高,使用简单的特点。包含数据库建模,灵活自动的自动生成代码模板,自动生成文档等多种开发人员实用的功能。

下载地址: 链接
下载完成后默认安装

AnotherRedisDesktopManager

Redis桌面管理器 - 是一个用于Windows,Linux和MacOS的快速开源Redis数据库管理应用程序。

官网地址: 链接
下载地址: 链接
下载完成后默认安装

Postman

Postman是一款功能强大的网页调试与发送网页HTTP请求的软件

官网地址: 链接
下载地址: 链接
下载完成后解压默认安装


Linux环境

作为一个开发人员 肯定要对Linux环境比较熟悉才行 其实Linux对于开发人员来说 说要掌握的命令并不是很多 日常的命令+一些中间件的操作命令一般就够了

Linux环境对Linux的发行版本没有具体要求 只要不是太老的一般都可以 后面的中间件都是运行在docker上面
Linux的发行版本太多了 我这里推荐 Centos7+ Ubuntu16+ 我使用的是centos7.7

基础环境配置

本次演示使用centos7作为演示
centos7下载地址: 链接

安装Linux

下载上面提供的镜像
在VMware里的前置安装请百度: 地址
建议cpu: 4核 内存: 8G

启动虚拟机后选择install centos 7
![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY3Mjc1OTUxLTlhZTJkNTEwLWU5OTktNDlkNC1iMjI4LTUzYzliNTU0NTZmZS5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=573&margin=[object Object]&name=image.png&originHeight=573&originWidth=821&size=34064&status=done&style=none&width=821)
语言直接默认 点击continue
![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY3MzIyMDkwLTg5ZThlZDIzLWI3MGMtNDQ3Mi1hMDRiLTk2YzAxMzQ4ZThiNi5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=583&margin=[object Object]&name=image.png&originHeight=583&originWidth=801&size=126793&status=done&style=none&width=801)

配置网络

等待一会后点击NETWORK & HOSTNAME
![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY3MzY4MjYyLTU4MmRhYWVmLWFmMjMtNDJhYi05OTQ0LWU1NzE5NzNiZDhhMC5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=608&margin=[object Object]&name=image.png&originHeight=608&originWidth=830&size=145069&status=done&style=none&width=830)
按下图修改
![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY3NjEzOTg1LWQ4OTMyMzY5LWQ3NmEtNGRmZC05Yzc2LTdlYzNkODIwNjg1Zi5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=619&margin=[object Object]&name=image.png&originHeight=619&originWidth=855&size=92384&status=done&style=none&width=855)

配置安装位置

点击INSTALLATION DESTINATION
![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY3NjQ2NDc1LWE4ODI2Zjg3LWY2ZDItNDYxZC1hODhjLWVmYjVjMzNmY2MxMi5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=610&margin=[object Object]&name=image.png&originHeight=610&originWidth=825&size=145273&status=done&style=none&width=825)
选中硬盘 然后点击Done
![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY3NzE5MDA0LTJlOTE1Yjg2LTE4NDMtNDkzZS04NzE2LWIyMGI5NzkyNDc2NS5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=638&margin=[object Object]&name=image.png&originHeight=638&originWidth=856&size=117034&status=done&style=none&width=856)

开始安装

点击Begin Installation
![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY3NzcxMTg1LTc4OTVmZmQyLTE4NDktNGQwZS04M2M2LWY1NTA2YjQzYzdmZi5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=605&margin=[object Object]&name=image.png&originHeight=605&originWidth=830&size=139739&status=done&style=none&width=830)

配置root账号的密码

点击 ROOT PASSWORD
![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY3ODEyNTQzLWIzYzMzYzY4LTVkZjItNGJjNi1iMzBmLTM5NTNjMDI4NTJlMi5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=590&margin=[object Object]&name=image.png&originHeight=590&originWidth=802&size=157101&status=done&style=none&width=802)
输入root密码 两次一致 点击Done 一次不行就两次(实际上是密码太短 点击两次确认使用弱密码)
![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY3ODUxMjI4LTRmYTAxZjYzLTlhZjEtNDU4Mi1iMGM4LTg5NGFjY2FkY2Y2OC5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=642&margin=[object Object]&name=image.png&originHeight=642&originWidth=858&size=65433&status=done&style=none&width=858)
等待一段时间 点击reboot
![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY4MDQ0MzMxLTg4MWRlYWYzLTc3MTMtNDM5YS1iYTM1LWZjYzdlNzgwMjk5Mi5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=581&margin=[object Object]&name=image.png&originHeight=581&originWidth=824&size=92145&status=done&style=none&width=824)

重启完成后登录

用户名:root
密码:你设置的密码

![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY4MTU3MzA0LTUzZDhkNTA1LWU5MzEtNGFkMi04OTY3LWNmYTI1OTNiNTgwNi5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=196&margin=[object Object]&name=image.png&originHeight=196&originWidth=317&size=3329&status=done&style=none&width=317)

验证安装

登录完成后 使用 ip addr 查看你的IP地址

![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY4MTQ1NzY3LThkYmY0NTZjLWY2MDMtNDNkNi05YTRkLTk3ZTZjODE0MDg0ZS5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=190&margin=[object Object]&name=image.png&originHeight=190&originWidth=705&size=14589&status=done&style=none&width=705)
至此 centos的基本安装完毕

配置Linux

XShell登录

使用上节记录查看到的ip地址用XShell登录

![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzY4MjkzNDY5LTI5ZGJjN2VmLWFjZDQtNDE4MS05NjQ5LTZhZjgyZGI4MjZmNS5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=124&margin=[object Object]&name=image.png&originHeight=124&originWidth=477&size=11087&status=done&style=none&width=477)

更新

首先先更新一下centos的依赖

yum update -y

安装vim

这个centos是最小安装的镜像 默认没有安装vim文本编辑
等待上面更新的命令执行完毕后 执行以下命令

yum install vim -y

关闭防火墙

因为是开发环境的配置 为了方便我们开发 所以先关闭掉centos的防火墙

systemctl stop firewalld
systemctl disable firewalld

附: centos防火墙基本使用

启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用: systemctl disable firewalld
开机启用: systemctl enable firewalld

至此 centos的基本配置完毕

Docker安装

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
docker是现在非常火热的容器化平台

基于centos7.7安装docker

卸载旧版本

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine

使用yum 安装依赖

sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2

添加依赖

sudo yum-config-manager \--add-repo \https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

安装docker ce

sudo yum makecache fast
sudo yum install docker-ce -y

启动docker

sudo systemctl enable docker
sudo systemctl start docker

测试 Docker 是否安装正确

docker run hello-world

### 配置docker的镜像加速 ```shell sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://uz6p4blc.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker ``` ### 验证docker镜像加速 > 使用docker info命令

[root@centos ~]# docker info
Client:Debug Mode: falseServer:Containers: 7Running: 6Paused: 0Stopped: 1Images: 7Server Version: 19.03.12Storage Driver: overlay2Backing Filesystem: xfsSupports d_type: trueNative Overlay Diff: trueLogging Driver: json-fileCgroup Driver: cgroupfsPlugins:Volume: localNetwork: bridge host ipvlan macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslogSwarm: inactiveRuntimes: runcDefault Runtime: runcInit Binary: docker-initcontainerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429runc version: dc9208a3303feef5b3839f4323d9beb36df0a9ddinit version: fec3683Security Options:seccompProfile: defaultKernel Version: 3.10.0-862.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 4Total Memory: 7.545GiBName: centosID: 3QOG:3RWM:H72U:QIRL:NBYC:4ZHN:AAUA:AWZI:PWSE:3VTY:TPL3:KZTYDocker Root Dir: /var/lib/dockerDebug Mode: falseRegistry: https://index.docker.io/v1/Labels:Experimental: falseInsecure Registries:127.0.0.0/8Registry Mirrors:https://uz6p4blc.mirror.aliyuncs.com/Live Restore Enabled: false[root@centos ~]# 

看到Registry Mirrors是你刚刚配置的即为配置成功

docker-compose安装

docker-compose是docker三剑客的其中一个 docker-compose可以大量简化我们得Linux命令 只用一个yml文件就可以实现对docker容器得编排
可以说非常方便了 而且以后的k8s里也运用到了大量的yml 这里可以提前熟悉一下这些语法

Docker Compose是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

验证docker-compose是否安装正确

[root@centos ~]# docker-compose -v
docker-compose version 1.25.4, build 8d51620a

开发环境配置

完成docker的以及docker-compose的安装以后 开始陆续进行一些基础中间件的安装
在下面都使用docker-compose进行安装

安装MySQL

mysql可以说是最常用的关系型数据库之一了

# 在/root/新建一个mysql文件夹
mkdir msqyl
cd mysql
# 新建一个mysql.yml的文件
vim mysql.yml
# 按键盘上的i进入插入模式

粘贴下面的任意一个yml配置文件到mysql.yml然后按esc 输入 :wq
MySQL 5.7

version: '3.1'
services:mysql:restart: alwaysimage: mysql:5.7.22container_name: mysqlports:- 3306:3306environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123456command:--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=true--lower_case_table_names=1--max_allowed_packet=128M--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"volumes:- mysql-data:/var/lib/mysqlvolumes:mysql-data:

MySQL 8.x

version: '3.1'
services:db:image: mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: 123456command:--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=true--lower_case_table_names=1ports:- 3306:3306volumes:- ./data:/var/lib/mysql

完成后执行

docker-compose -f mysql.yml up -d

等待启动

验证msyql的运行

输入docker ps
[root@centos mysql]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
31b2d245e8e3        adminer             "entrypoint.sh docke…"   16 seconds ago      Up 15 seconds       0.0.0.0:8080->8080/tcp              mysql_adminer_1
f82b2c585931        mysql               "docker-entrypoint.s…"   16 seconds ago      Up 15 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql_db_1

使用Navicat Premium 12链接msyql
输入连接名 你的主机地址
用户名:root
密码: 123456
显示链接成功即可

![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzcxNTcxODY3LTM5MTNiYjcwLTBjMjItNGQ3Ny1iY2ZlLWEwYWVkNmE4ODk5ZS5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=658&margin=[object Object]&name=image.png&originHeight=658&originWidth=551&size=46183&status=done&style=none&width=551)

安装redis

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助
redis是目前最火热的非关系行数据库 key-value类型的数据库

# 在/root/新建一个redis文件夹
mkdir redis
cd redis
# 新建一个redis.yml的文件
vim redis.yml
# 按键盘上的i进入插入模式

粘贴下面的yml配置文件到redis.yml然后按esc 输入 :wq

version: '3.1'
services:master:image: rediscontainer_name: redis-masterports:- 6379:6379

完成后执行

docker-compose -f redis.yml up -d

等待启动

验证redis的运行

输入docker ps
[root@centos redis]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
5eeb447fc8dc        redis               "docker-entrypoint.s…"   35 seconds ago      Up 34 seconds       0.0.0.0:6379->6379/tcp              redis-master
31b2d245e8e3        adminer             "entrypoint.sh docke…"   6 minutes ago       Up 6 minutes        0.0.0.0:8080->8080/tcp              mysql_adminer_1
f82b2c585931        mysql               "docker-entrypoint.s…"   6 minutes ago       Up 6 minutes        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql_db_1

使用RedisDesktopManager链接redis

点击链接到redis
输入名字 地址后
点击测试链接 显示链接redis服务器成功即可

![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzcxNzE2NTQ4LTYwNDAwZWY4LTMzNDItNGYxMi04NTI1LTMzZTExZDM3NjU1ZC5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=862&margin=[object Object]&name=image.png&originHeight=862&originWidth=600&size=94734&status=done&style=none&width=600)

安装rabbitmq

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
rabbitmq是目前我经常使用的一块消息队列中间件

# 在/root/新建一个rabbitmq文件夹
mkdir rabbitmq
cd rabbitmq
# 新建一个rabbitmq.yml的文件
vim rabbitmq.yml
# 按键盘上的i进入插入模式

粘贴下面的yml配置文件到redis.yml然后按esc 输入 :wq

version: '3.1'
services:rabbitmq:restart: alwaysimage: rabbitmq:managementcontainer_name: rabbitmqports:- 5672:5672- 15672:15672environment:TZ: Asia/ShanghaiRABBITMQ_DEFAULT_USER: rabbitRABBITMQ_DEFAULT_PASS: 123456volumes:- ./data:/var/lib/rabbitmq

完成后执行

docker-compose -f rabbitmq.yml up -d

等待启动

验证rabbitmq的运行

[root@centos rabbitmq]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                                                                        NAMES
f422789ff3f1        rabbitmq:management   "docker-entrypoint.s…"   5 minutes ago       Up 5 minutes        4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp   rabbitmq
5eeb447fc8dc        redis                 "docker-entrypoint.s…"   31 minutes ago      Up 31 minutes       0.0.0.0:6379->6379/tcp                                                                       redis-master
31b2d245e8e3        adminer               "entrypoint.sh docke…"   36 minutes ago      Up 36 minutes       0.0.0.0:8080->8080/tcp                                                                       mysql_adminer_1
f82b2c585931        mysql                 "docker-entrypoint.s…"   36 minutes ago      Up 36 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp                                                            mysql_db_1

浏览器上输入ip:15672

用户名: rabbit
密码: 123456

![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzczNTA0NTcyLTkxMmVjMGMxLWFmNDktNDg2ZC04YzUwLTgwNDk5ZmU1MGY2Zi5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=200&margin=[object Object]&name=image.png&originHeight=200&originWidth=306&size=8738&status=done&style=none&width=306)
![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0MzczNTE4NTAyLWFjNTIzYWRjLTc5NDMtNDdkOC05ZWYxLTA5YzQzMmJhMmIxYS5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=415&margin=[object Object]&name=image.png&originHeight=415&originWidth=559&size=28523&status=done&style=none&width=559)

安装elk日志收集

ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。市面上也被成为Elastic Stack。其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,可见Elasticsearch提供的搜索能力确实强大,市面上很多时候我们简称Elasticsearch为es。Logstash是ELK的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/redis/elasticsearch/kafka等)。Kibana可以将elasticsearch的数据通过友好的页面展示出来,提供实时分析的功能。

# 在/root/新建一个elk文件夹
mkdir elk
cd elk
# 新建一个elk.yml的文件
vim elk.yml
# 按键盘上的i进入插入模式

复制如下内容到elk.yml

elk.yml

version: "3"
services: elasticsearch:image: registry.cn-hangzhou.aliyuncs.com/yalong_lee_release/elasticsearch:v7.4.1ports:- "9200:9200" - "9300:9300"restart: "always" container_name: elasticsearch hostname: elasticsearchenvironment:- "discovery.type=single-node"- "cluster.name=EsForLog" - "ES_JAVA_OPTS=-Xms512m -Xmx512m" volumes:- ./data:/usr/share/elasticsearch/datakibana: image: registry.cn-hangzhou.aliyuncs.com/htsec/kibana:7.4.1 restart: "always" container_name: kibana hostname: kibanavolumes:  - ./kibana.yml:/usr/share/kibana/config/kibana.ymllinks:- elasticsearch:es01  depends_on:- elasticsearch ports:- "5601:5601" logstash: image: registry.cn-hangzhou.aliyuncs.com/logss/logstash:7.4.1  restart: "always" container_name: logstash hostname: logstashvolumes:- ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf links:- elasticsearch:es01 depends_on:- elasticsearchports:- "5044:5044"  

在elk目录下创建一个data 并且给与权限

mkdir data
chmod 777 data

在elk下创建kibana配置文件

vim kibana.yml

复制如下内容到kibana.yml
kibana.yml

elasticsearch.hosts: http://es01:9200
server.host: "0.0.0.0"
server.name: kibana
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: zh-CN

在elk下创建logstash配置文件

vim logstash.conf

复制如下内容到logstash.conf
logstash.conf

input {tcp {mode => "server"host => "0.0.0.0"port => 5044codec => json_lines}
}
output {elasticsearch {hosts => ["http://es01:9200"]index => "%{[appname]}-%{+YYYY.MM.dd}"}stdout {codec => rubydebug}
}

完善上述操作后执行

docker-compose -f elk.yml up -d

等待elk的运行

[root@centos elk]# docker ps
CONTAINER ID        IMAGE                                                                       COMMAND                  CREATED             STATUS              PORTS                                                                                        NAMES
eb6edbb49907        registry.cn-hangzhou.aliyuncs.com/htsec/kibana:7.4.1                        "/usr/local/bin/dumb…"   21 minutes ago      Up 14 minutes       0.0.0.0:5601->5601/tcp                                                                       kibana
c99c65029eb8        registry.cn-hangzhou.aliyuncs.com/logss/logstash:7.4.1                      "/usr/local/bin/dock…"   21 minutes ago      Up 14 minutes       0.0.0.0:5044->5044/tcp, 9600/tcp                                                             logstash
346cfcaf5f89        registry.cn-hangzhou.aliyuncs.com/yalong_lee_release/elasticsearch:v7.4.1   "/usr/local/bin/dock…"   21 minutes ago      Up 14 minutes       0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp                                               elasticsearch
f422789ff3f1        rabbitmq:management                                                         "docker-entrypoint.s…"   50 minutes ago      Up 50 minutes       4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp   rabbitmq
5eeb447fc8dc        redis                                                                       "docker-entrypoint.s…"   About an hour ago   Up About an hour    0.0.0.0:6379->6379/tcp                                                                       redis-master
31b2d245e8e3        adminer                                                                     "entrypoint.sh docke…"   About an hour ago   Up About an hour    0.0.0.0:8080->8080/tcp                                                                       mysql_adminer_1
f82b2c585931        mysql                                                                       "docker-entrypoint.s…"   About an hour ago   Up About an hour    0.0.0.0:3306->3306/tcp, 33060/tcp                                                            mysql_db_1

验证elk的运行

在浏览器输入ip:5601进入kibana的后台页面
![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvMTY5NzEyNy8xNTk0Mzc2MTYwNzA5LTM2NmY2OTg1LTgyMjYtNDk5Ny1iYTg0LWNkZDZkZTA2NzY5Ni5wbmc?x-oss-process=image/format,png#align=left&display=inline&height=499&margin=[object Object]&name=image.png&originHeight=499&originWidth=1600&size=77837&status=done&style=none&width=1600)

附录: docker常用命令

### 查看运行容器
docker ps### 查看所有容器
docker ps -a## 进入容器
### 其中字符串为容器ID:
docker exec -it d27bd3008ad9 /bin/bash### 停用全部运行中的容器:
docker stop $(docker ps -q)### 删除全部容器:
docker rm $(docker ps -aq)### 一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)### docker所有命令查看:
docker help

java微服务开发(基础环境篇)相关推荐

  1. 华为云鲲鹏服务器部署文档-修正版-CentOS+java微服务开发

    华为云鲲鹏服务器部署文档 河南中电高科计算机技术有限公司 http://www.ceht.com.cn 2020.5.12 适用于java微服务开发运行基础软件环境部署,实测通过. CentOS 7. ...

  2. Java微服务开发指南-Java环境下的微服务

    本文涉及的内容,能让你学到什么? 本书适用于开发微服务的Java开发人员和架构师.我们在开始介绍微服务架构前,先讲述一些抽象的基本概念.不幸的是,使用新技术并不能神奇地解决分布式系统问题.但是我们通过 ...

  3. Java微服务开发指南 -- Java环境下的微服务

    Java环境下的微服务 本文涉及的内容,能让你学到什么? 本书适用于开发微服务的Java开发人员和架构师.我们在开始介绍微服务架构前,先讲述一些抽象的基本概念.不幸的是,使用新技术并不能神奇地解决分布 ...

  4. Java微服务开发流程及详细案例

    微服务开发流程及详细案例 文章目录 微服务开发流程及详细案例 一. 微服务示例简介 二. IDEA创建父Maven工程及子项目 2.1 使用IDEA创建Maven项目 2.2创建子项目模块 2.3父项 ...

  5. Java微服务开发指南-使用Dropwizard构建微服务

    Dropwizard的历史要早于Spring Boot和WildFly Swarm,它最早是在2011.12发布的v0.1.0版本,在本文编写的过程中,它已经发布了v0.9.2版本,而v1.0.0版本 ...

  6. 微服务框架-基础框架

    微服务框架-基础框架 转自:http://www.open-open.com/lib/view/open1479194438544.html 对于微服务基础框架可以看作是微服务治理架构的核心内容,包括 ...

  7. Java微服务篇2——SpringCloud

    Java微服务篇2--SpringCloud 1.微服务架构 1.1.单体应用架构 的⽤户量.数据量规模都⽐较⼩,项目所有的功能模块都放在一个工程中编码. 编译.打包并且部署在一个Tomcat容器中的 ...

  8. Java微服务篇1——SpringBoot

    Java微服务篇1--SpringBoot 1.什么是springboot 1.1.Spring出现的问题 Spring是Java企业版(Java Enterprise Edition,JEE,也称J ...

  9. 十款优质企业级Java微服务开源项目(开源框架,用于学习、毕设、公司项目、私活等,减少开发工作,让您只关注业务!)

    Java微服务开源项目 前言 一.pig 二.zheng 三.SpringBlade 四.SOP 五.matecloud 六.mall 七.jeecg-boot 八.Cloud-Platform 九. ...

最新文章

  1. 适合数据科学小白的必备Python工具! ! !
  2. JavaScript浏览器的对象
  3. 他修复了程序员吃饭的bug,估值已超过10亿美金!9.9元,2顿饭.....
  4. 【嵌入式Linux】嵌入式Linux驱动开发基础知识之设备树模型
  5. 2018-2019-2 20165222《网络对抗技术》Exp9 Web安全基础
  6. Linux 命令(28)—— tee 命令
  7. X-006 FriendlyARM tiny4412 u-boot移植之Debug串口用起来
  8. NodeJS收发GET和POST请求
  9. 服务器刷课源码,国开刷课
  10. 移动硬盘在Windows和Mac上同时使用的巨坑
  11. 计算机快捷键大全常见的,电脑快捷键大全_计算机常用技巧
  12. 【UVM基础】uvm_resource_db 使用介绍
  13. 使用51单片机编写计时器(分钟,秒钟分离版)
  14. 数据分析师笔试题(一)
  15. 读书笔记-成功需要努力勤奋和坚持不懈
  16. python 调用 C# dll 库读取电脑硬件信息
  17. java三角形海伦公式_java 海伦公式编程,海伦公式是什么?
  18. BroadLink智能遥控器
  19. wifi性能测试(精简)
  20. 美图秀秀插件上传若干问题

热门文章

  1. 《创业时代》这部剧或许大家都有看过,里面的郭鑫年(黄轩饰),最终创业成功了吗?
  2. 计算机基础知识大眼睛,眼睛知识
  3. 2019-6-26 [JavaSE] For循环 4个练习题
  4. 红米2电信 android go,超能玩手机:如何让红米2电信版正确支持“全网通”?
  5. 一张新型肺炎地区分布地图是怎么制作的?
  6. 关于ROS功能包里package.xml和CMakeList.txt的源码分析
  7. FFmpeg进行音频的解码和播放
  8. 比金蝶1000元服务还强的SQL语句
  9. APP性能测试_帧率测试
  10. ROS的代价地图与AMCL定位原理