java微服务开发(基础环境篇)
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微服务开发(基础环境篇)相关推荐
- 华为云鲲鹏服务器部署文档-修正版-CentOS+java微服务开发
华为云鲲鹏服务器部署文档 河南中电高科计算机技术有限公司 http://www.ceht.com.cn 2020.5.12 适用于java微服务开发运行基础软件环境部署,实测通过. CentOS 7. ...
- Java微服务开发指南-Java环境下的微服务
本文涉及的内容,能让你学到什么? 本书适用于开发微服务的Java开发人员和架构师.我们在开始介绍微服务架构前,先讲述一些抽象的基本概念.不幸的是,使用新技术并不能神奇地解决分布式系统问题.但是我们通过 ...
- Java微服务开发指南 -- Java环境下的微服务
Java环境下的微服务 本文涉及的内容,能让你学到什么? 本书适用于开发微服务的Java开发人员和架构师.我们在开始介绍微服务架构前,先讲述一些抽象的基本概念.不幸的是,使用新技术并不能神奇地解决分布 ...
- Java微服务开发流程及详细案例
微服务开发流程及详细案例 文章目录 微服务开发流程及详细案例 一. 微服务示例简介 二. IDEA创建父Maven工程及子项目 2.1 使用IDEA创建Maven项目 2.2创建子项目模块 2.3父项 ...
- Java微服务开发指南-使用Dropwizard构建微服务
Dropwizard的历史要早于Spring Boot和WildFly Swarm,它最早是在2011.12发布的v0.1.0版本,在本文编写的过程中,它已经发布了v0.9.2版本,而v1.0.0版本 ...
- 微服务框架-基础框架
微服务框架-基础框架 转自:http://www.open-open.com/lib/view/open1479194438544.html 对于微服务基础框架可以看作是微服务治理架构的核心内容,包括 ...
- Java微服务篇2——SpringCloud
Java微服务篇2--SpringCloud 1.微服务架构 1.1.单体应用架构 的⽤户量.数据量规模都⽐较⼩,项目所有的功能模块都放在一个工程中编码. 编译.打包并且部署在一个Tomcat容器中的 ...
- Java微服务篇1——SpringBoot
Java微服务篇1--SpringBoot 1.什么是springboot 1.1.Spring出现的问题 Spring是Java企业版(Java Enterprise Edition,JEE,也称J ...
- 十款优质企业级Java微服务开源项目(开源框架,用于学习、毕设、公司项目、私活等,减少开发工作,让您只关注业务!)
Java微服务开源项目 前言 一.pig 二.zheng 三.SpringBlade 四.SOP 五.matecloud 六.mall 七.jeecg-boot 八.Cloud-Platform 九. ...
最新文章
- 适合数据科学小白的必备Python工具! ! !
- JavaScript浏览器的对象
- 他修复了程序员吃饭的bug,估值已超过10亿美金!9.9元,2顿饭.....
- 【嵌入式Linux】嵌入式Linux驱动开发基础知识之设备树模型
- 2018-2019-2 20165222《网络对抗技术》Exp9 Web安全基础
- Linux 命令(28)—— tee 命令
- X-006 FriendlyARM tiny4412 u-boot移植之Debug串口用起来
- NodeJS收发GET和POST请求
- 服务器刷课源码,国开刷课
- 移动硬盘在Windows和Mac上同时使用的巨坑
- 计算机快捷键大全常见的,电脑快捷键大全_计算机常用技巧
- 【UVM基础】uvm_resource_db 使用介绍
- 使用51单片机编写计时器(分钟,秒钟分离版)
- 数据分析师笔试题(一)
- 读书笔记-成功需要努力勤奋和坚持不懈
- python 调用 C# dll 库读取电脑硬件信息
- java三角形海伦公式_java 海伦公式编程,海伦公式是什么?
- BroadLink智能遥控器
- wifi性能测试(精简)
- 美图秀秀插件上传若干问题
热门文章
- 《创业时代》这部剧或许大家都有看过,里面的郭鑫年(黄轩饰),最终创业成功了吗?
- 计算机基础知识大眼睛,眼睛知识
- 2019-6-26 [JavaSE] For循环 4个练习题
- 红米2电信 android go,超能玩手机:如何让红米2电信版正确支持“全网通”?
- 一张新型肺炎地区分布地图是怎么制作的?
- 关于ROS功能包里package.xml和CMakeList.txt的源码分析
- FFmpeg进行音频的解码和播放
- 比金蝶1000元服务还强的SQL语句
- APP性能测试_帧率测试
- ROS的代价地图与AMCL定位原理