SpringCloud Alibaba微服务实战 – 基础环境准备

SpringCloud Alibaba微服务实战 - 基础环境准备

Springcloud Aibaba现在这么火,我一直想写个基于Springcloud Alibaba一步一步构建微服务架构的系列博客,终于下定决心从今天开始本系列文章的第一篇 – 基础环境准备。

该系列文章内容主要基于三个微服务:用户服务 AccountService ,订单服务 OrderService产品服务 ProductService

用到的组件有:

由于用到的组件相对较多,部署会很繁琐,最关键的是没有资源服务器,所以在开发过程中我会逐渐将一些组件使用docker-compose部署。

SpringCloud Alibaba微服务实战 - 基础环境准备

本篇内容就是使用Dokcer-compose部署Nacos,Sentinel,Mysql,作为后面的系列文章的基础环境。

如果你对docker或者docker-compose不是很熟悉的话,你可以翻看我之前的两篇文章,看完后相信你能很快入手。

  • Docker基础与实战,看这一篇就够了
  • Docker-Compose基础与实战,看这一篇就够了

SpringCloud Alibaba微服务实战 - 基础环境准备

容器化

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/na…

nacos-mysql.sql`

SpringCloud Alibaba微服务实战 - 基础环境准备

  • 停止容器,由于加了 --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

访问nacos http://192.168.136.129:8848/nacos ,使用账号密码nacos/nacos登录,添加一个 name=JAVA日知录 的配置。

SpringCloud Alibaba微服务实战 - 基础环境准备

nacos安装成功!

mysql

使用客户端工具连接上mysql服务,查看 his_config_info 表,确认是否有刚刚的配置

SpringCloud Alibaba微服务实战 - 基础环境准备

mysql安装成功!

sentinel

访问 http://192.168.136.129:8858 使用账号sentinel/sentinel登录

SpringCloud Alibaba微服务实战 - 基础环境准备

sentinel安装成功!

至此前期所需要的组件都安装成功,那么本期的“SpringCloud Alibaba微服务实战 – 基础环境准备”篇也就该结束啦,咱们下期有缘再见!

个人公众号:JAVA日知录 , javadaily.cn

SpringCloud Alibaba微服务实战 - 基础环境准备

原文 

https://segmentfault.com/a/1190000021154812

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » SpringCloud Alibaba微服务实战 – 基础环境准备

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址