zoukankan      html  css  js  c++  java
  • SpringCloud Alibaba微服务实战一

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

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

    用到的组件有:

    • 注册中心、配置中心 Nacos
    • 限流 Sentinel
    • 分布式事务 Seata
    • 网关 SpringCloud Gateway
    • 认证授权 Spring Cloud Oauth2
    • docker、docker-compose

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

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

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

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

    容器化

    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
      image.png

    • 停止容器,由于加了--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日知录的配置。
    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微服务实战 - 基础环境准备”篇也就该结束啦,咱们下期有缘再见!

    个人公众号:JAVA日知录 , javadaily.cn
    在这里插入图片描述

  • 相关阅读:
    第四周查漏补缺20165307
    第四周作业 20165307
    第三周作业 20165307
    20165307 第一次测试总结
    20165307 预备作业3 Linux安装及学习
    20165307 学习基础和C语言基础调查
    20165307 我期望的师生关系
    第十周课下补做
    20165336 2016-2017-2 《Java程序设计》第9周学习总结
    20165336 实验三 敏捷开发与XP实践
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13295927.html
Copyright © 2011-2022 走看看