[图片] SpringCloud Aibaba 现在这么火,我一直想写个基于 SpringCloud Alibaba 一步一步构建微服务架构的系列博客,终于下定决心从今天开始本系列文章的第一篇 - 基础环境准备。 该系列文章内容主要基于三个微服务:用户服务AccountService,订单服务OrderService, ..

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

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

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

用到的组件有:

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

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

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

容器化

MySQL

由于 nacos 需要依赖于 MySQL 作为资源存储,所以在编写完整 docker-compose 之前我会先用 docker 启动临时的 MySQL 容器,然后准备好 nacos 需要的数据库。

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日知录的配置。
image.png
nacos 安装成功!

MySQL

使用客户端工具连接上 MySQL 服务,查看his_config_info表,确认是否有刚刚的配置
image.png
MySQL 安装成功!

sentinel

访问http://192.168.136.129:8858使用账号 sentinel/sentinel 登录
image.png
sentinel 安装成功!

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

  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    47 引用 • 104 回帖 • 78 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    660 引用 • 1234 回帖 • 758 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    74 引用 • 347 回帖
  • 云计算
    55 引用 • 65 回帖
1 回帖
请输入回帖内容...
  • junl2

    你品,你细品