本系列文章使用SpringCloud Alibaba一步一步构建你的微服务架构体系,这是第一篇“基础环境准备”,欢迎大家持续关注!
Springcloud Aibaba现在这么火,我一直想写个基于Springcloud Alibaba一步一步构建微服务架构的系列博客,终于下定决心从今天开始本系列文章的第一篇 - 基础环境准备
本系列文章内容主要基于三个微服务:用户服务AccountService
,订单服务OrderService
,产品服务ProductService
用到的组件有:
注册中心、配置中心 Nacos
限流 Sentinel
分布式事务 Seata
网关 SpringCloud Gateway
认证授权 Spring Cloud Oauth2
docker、docker-compose
由于用到的组件相对较多,部署会很繁琐,最关键的是没有资源服务器,所以在开发过程中我会逐渐将一些组件使用docker-compose部署。
本篇内容就是使用Dokcer-compose部署Nacos,Sentinel,Mysql,作为后面的系列文章的基础环境。
如果你对docker或者docker-compose不是很熟悉的话,你可以翻看我之前的两篇文章,看完后相信你能很快入手。
Docker基础与实战,看这一篇就够了
Docker-Compose基础与实战,看这一篇就够了
容器化
mysql
由于nacos需要依赖于Mysql作为资源存储,所以在编写完整docker-compose之前我会先用docker启动临时的mysql容器,然后准备好nacos需要的数据库。
启动临时容器
docker run -p3306:3306 --rm --name mysql -e MYSQL_ROOT_PASSWORD=123456 -v /app/cloud/mysql/data:/var/lib/mysql mysql:5.7
此处需要挂载宿主机目录,在启动docker-compse后就不需要再次初始化数据。用mysql客户端连接你的容器,然后导入nacos的数据表
https://github.com/alibaba/nacos/tree/develop/distribution/conf/ nacos-mysql.sql
停止容器,由于加了
--rm
参数,所以容器会自动删除docker stop 3475ef078d3a
nacos
我们来看看NACOS的环境变量,如下表所示:
配置项
描述
可选参数
默认值
MODE
模式 cluster/standalone
cluster/standalone
cluster
PREFER_HOST_MODE
是否支持 hostname
hostname/ip
ip
NACOS_SERVER_PORT
服务端口号
8848
SPRING_DATASOURCE_PLATFORM
单机模式支持 mysql
mysql / empty
empty
MYSQL_MASTER_SERVICE_HOST
mysql 主节点 host
MYSQL_MASTER_SERVICE_PORT
mysql 主节点 port
3306
MYSQL_MASTER_SERVICE_DB_NAME
mysql 主节点数据库名
MYSQL_MASTER_SERVICE_USER
mysql 主节点用户名
MYSQL_MASTER_SERVICE_PASSWORD
mysql 主节点密码
MYSQL_SLAVE_SERVICE_HOST
mysql 从节点 host
MYSQL_SLAVE_SERVICE_PORT
mysql 从节点 port
3306
Nacos支持主从配置,考虑到资源问题,我们只配置一台单独的mysql服务器,有资源的同学可以搭建主从环境。
sentinel
sentinel比较简单,直接配置sentinel-dashboard
镜像即可。(在系列的开始不需要引入sentinel组件,为了后面不再单独介绍,本次我也把他加到我的docker-compose中)
seata
seata由于一些原因,还没发布官方镜像,暂时搁浅。
docker-compose
以下是我编写的docker-compse文件,大家可以自行修改
version: "3"services: mysql: container_name: mysql image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=123456 volumes: - /app/cloud/mysql/data:/var/lib/mysql ports: - "3306:3306" restart: always nacos: image: nacos/nacos-server:1.1.4 container_name: nacos environment: - PREFER_HOST_MODE=hostname - MODE=standalone - MYSQL_DATABASE_NUM=1 - SPRING_DATASOURCE_PLATFORM=mysql - MYSQL_MASTER_SERVICE_HOST=mysql - MYSQL_MASTER_SERVICE_DB_NAME=nacos_config - MYSQL_MASTER_SERVICE_PORT=3306 - MYSQL_MASTER_SERVICE_USER=root - MYSQL_MASTER_SERVICE_PASSWORD=123456 volumes: - /app/cloud/nacos/logs:/home/nacos/logs ports: - "8848:8848" depends_on: - mysql restart: always sentinel: image: bladex/sentinel-dashboard:latest container_name: sentinel ports: - "8858:8858" restart: always
将其上传至你的服务器,执行docker-compose up -d
命令启动
环境验证
nacos
访问nacoshttp://192.168.136.129:8848/nacos
,使用账号密码nacos/nacos登录,添加一个name=JAVA日知录
的配置。nacos安装成功!
mysql
使用客户端工具连接上mysql服务,查看his_config_info
表,确认是否有刚刚的配置mysql安装成功!
sentinel
访问http://192.168.136.129:8858
使用账号sentinel/sentinel登录sentinel安装成功!
至此前期所需要的组件都安装成功,那么本期的“SpringCloud Alibaba微服务实战 - 基础环境准备”篇也就该结束啦,咱们下期有缘再见!
温馨提示
如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。
戳我留言
↙
点击下方“阅读原文”查看更多
本文分享自微信公众号 - JAVA日知录(javadaily)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。