Spring Cloud Alibaba要用到的组件很多,注册中心nacos, 限流sentinel, 数据库,网关等等。由于用到的组件相对较多,部署会很繁琐,最关键的是没有资源服务器,所以在开发过程中我会逐渐将一些组件使用docker-compose部署。

01

环境准备

我手上有一台macbook,这次先用mac部署,有机会再写一个ubuntu的,基本差不多。

先晒出mackbook信息,不是高配,硬件配置和这差不多的应该都没问题。

第一部安装docker-toolbox, 阿里云上有个镜像。

http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/stable/

下载,安装。

安装好以后配置一下硬件信息:

这个时候可以试一下,是否安装好了,terminal试一下docker version:

➜  ~ docker version

Client: Docker Engine - Community

Cloud integration  0.1.18

Version:           19.03.13

API version:       1.40

Go version:        go1.13.15

Git commit:        4484c46d9d

Built:             Wed Sep 16 16:58:31 2020

OS/Arch:           darwin/amd64

Experimental:      false

Server: Docker Engine - Community

Engine:

Version:          19.03.13

API version:      1.40 (minimum version 1.12)

Go version:       go1.13.15

Git commit:       4484c46d9d

Built:            Wed Sep 16 17:07:04 2020

OS/Arch:          linux/amd64

Experimental:     false

containerd:

Version:          v1.3.7

GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175

runc:

Version:          1.0.0-rc10

GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd

docker-init:

Version:          0.18.0

GitCommit:        fec3683

docker-compose version:

➜  ~    docker-compose -version

docker-compose version 1.27.4, build 40524192

正常情况下,我们的环境就全部准备好了,是不是很简单。

当然我们国内的环境(肉身翻墙或者有高速梯子跳过这步)是需要配置一个国内的docker加速器,国内的网速去docker hub下载镜像那得凉凉了。

配置阿里云加速方法如下:

首先申请自己的阿里云私有镜像:

1.登陆阿里云:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

2.进入【控制台】-【镜像仓库】-【镜像中心】-【镜像加速器】

如果找不到菜单就直接搜【镜像仓库】会要求输入密码,输入即可,然后进入【镜像中心】-【镜像加速器】

获得自己的加速地址后:

{

"features": {

"buildkit": true

},

"experimental": false,

"registry-mirrors": [

"https://xxxxxx.mirror.aliyuncs.com"

]

}

重启服务。

用docker info命令查看是否配置成功,看下你的加速地址表示成功:

Registry Mirrors:

https://xxx.mirror.aliyuncs.com/

Live Restore Enabled: false

Docker toolbox安装成功!!

02

docker-compse部署Mysql

创建docker文件夹,用于存放相应文件信息,创建docker-compose.yml文件。文件目录如下:

-rw-r--r--  1 xx  staff   1.1K 10 27 22:00 docker-compose.yml

drwxr-xr-x  3 xx  staff    96B 10 20 15:22 mysql

编写docker-compose.yml文件如下:

version: "3"

services:

mysql:

container_name: mysql

image: mysql:5.7

environment:

- MYSQL_ROOT_PASSWORD=123456

volumes:

- /Users/xxxx/docker/mysql/data:/var/lib/mysql

ports:

- "3306:3306"

restart: always

启动mysql镜像,输入命令:docker-compose up -d mysql, 运行如下:

➜  docker docker-compose up -d mysql

Creating network "docker_default" with the default driver

Pulling mysql (mysql:5.7)...

5.7: Pulling from library/mysql

bb79b6b2107f: Pull complete

49e22f6fb9f7: Pull complete

842b1255668c: Pull complete

9f48d1f43000: Pull complete

c693f0615bce: Pull complete

8a621b9dbed2: Pull complete

0807d32aef13: Pull complete

6d2fc69dfa35: Pull complete

56153548dd2c: Extracting [=======================================>           ]  84.67MB/108.3MB

用docker-compose ps -a 命令查看是否启动成功,看到如下信息说明成功:

➜  docker docker-compose ps -a

Name                      Command                State                   Ports

----------------------------------------------------------------------------------------------------

mysql                  docker-entrypoint.sh mysqld      Up

0.0.0.0:3306->3306/tcp, 33060/tcp

Mysql安装成功!!

03

docker-compse部署Nacos

去github把nacos  的SQL文件下载下来,导入数据库中。

https://raw.githubusercontent.com/alibaba/nacos/develop/distribution/conf/nacos-mysql.sql

用工具导到我们刚搭建好的mysql中:(用本机ip, root/123456, 端口3306)

在docker-compse.yml的后面中加入以下配置:

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

- MYSQL_MASTER_SERVICE_PORT=3306

- MYSQL_MASTER_SERVICE_USER=root

- MYSQL_MASTER_SERVICE_PASSWORD=123456

volumes:

- /Users/xxx/docker/nacos/logs:/home/nacos/logs

ports:

- "8848:8848"

depends_on:

- mysql

restart: always

写好了注意在相应的volumes创建好相应的文件夹

docker-compose up -d nacos

启动nacos

启动完成后通过 http://yourip:8848/nacos/#/login 用nacos/nacos登陆

Nacos安装成功!!

04

docker-compse部署sentinel

在docker-compse.yml的后面中加入以下配置:

sentinel:

image: bladex/sentinel-dashboard:latest

container_name: sentinel

ports:

- "8858:8858"

restart: always

运行命令:

➜  docker docker-compose up -d sentinel

启动成功后,http://yourip:8858/  用户名密码sentinel/sentinel登陆

Sentinel安装成功, 至此前期所需要的组件都安装成功, 万里长征迈出第一步,下期我们继续。

Docker composer搭建Spring Cloud Alibaba 运行环境(二)的更多相关文章

  1. Spring Cloud Alibaba 实战(十二) - Nacos配置管理

    本章主要内容是:使用Nacos管理配置以及实现配置管理的原因,配置如何管理以及动态刷新和最佳实现总结,最后是Nacos配置刷新原理解读 该技术类似于Spring Cloud Config 1 配置管理 ...

  2. Spring Cloud Alibaba系列(二)nacos作为服务配置中心

    Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持.使用 Spring Cloud Alibaba Nacos Config,您可 ...

  3. Spring Cloud Alibaba 初体验(二) Nacos 服务注册与发现 + 集成 Spring Cloud Gateway

    一.服务注册 添加依赖: <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>s ...

  4. 从零搭建Spring Cloud Gateway网关(二)—— 打印请求响应日志

    作为网关,日志记录是必不可少的功能,可以在网关出增加requestId来查询整个请求链的调用执行情况等等. 打印请求日志 打印请求日志最重要的就是打印请求参数这些东西,不过RequestBody通常情 ...

  5. Spring Cloud Alibaba环境搭建

    前言:Spring Cloud Alibaba是目前主流的分布式微服务架构,本文主要讲解了在IDEA中如何搭建Spring Cloud Alibaba环境,以及介绍Spring Cloud Aliba ...

  6. Spring Cloud Alibaba学习笔记

    引自B站楠哥:https://space.bilibili.com/434617924 一.创建父工程 创建父工程hello-spring-cloud-alibaba Spring Cloud Ali ...

  7. Spring Cloud 网关服务 zuul 二

    有一点上篇文章忘了 讲述,nacos的加载优先级别最高.服务启动优先拉去配置信息.所以上一篇服务搭建我没有讲述在nacos 中心创建的配置文件 可以看到服务端口和注册中心都在配置文件中配置化 属性信息 ...

  8. Spring Cloud gateway 网关服务二 断言、过滤器

    微服务当前这么火爆的程度,如果不能学会一种微服务框架技术.怎么能升职加薪,增加简历的筹码?spring cloud 和 Dubbo 需要单独学习.说没有时间?没有精力?要学俩个框架?而Spring C ...

  9. Spring Cloud Alibaba(7)---docker-compose搭建nacos1.4.0集群

    docker-compose搭建nacos1.4.0集群 有关Nacos之前写过四篇文章. Spring Cloud Alibaba(3)---Nacos概述 Spring Cloud Alibaba ...

随机推荐

  1. jpeg编解码概述

    本博文为概览性介绍.后面有空了再分几篇博文分别介绍所用到的技术细节. 1.编解码目标 编码和解码是个逆过程.jpeg编码的目的在于图形去冗余,进行数据压缩,解码的目的在于还原图像,使能够进行预览. 2 ...

  2. 一加云耳2和一加云耳z区别

    [解码方式]:云耳Z采用的音源解码方式是AAC,云耳2使用的是APTX: [发声单元]:云耳Z采用的是动圈,云耳2采用的是动圈+动铁组合 [颜色]:云耳Z有4款颜色(宝蓝.薄荷绿.黑色.米白)云耳2有 ...

  3. Python-对迭代器进行切片操作-itertools模块

    案例: 对于某个文件,我只想读取到其中100~200行之间的内容,是否可以通过切片的方式进行读取? 我想: f = open() f[100:200] 可行? 如何解决这个问题? 方法1: 全部读取到 ...

  4. Android Handler MessageQueue Looper 消息机制原理

    提到Android里的消息机制,便会提到Message.Handler.Looper.MessageQueue这四个类,我先简单介绍以下这4个类 之间的爱恨情仇. Message 消息的封装类,里边存 ...

  5. Python练习题 017:三支乒乓球队出赛名单

    [Python练习题 017] 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比.请编程序找 ...

  6. 在sqlserver中创建表

    1:在sql语句中,临时表有两类,分别是局部(local)和全局(global)临时表,局部临时表只在其会话(事务)中可见,全局临时表可以被会话(事务)中的任何程序或者 模块访问 2:创建局部临时表 ...

  7. c++ 动态库的加载

    转载:https://blog.csdn.net/ztq_12345/article/details/99677769 使用ide是vs, 使用Windows.h下的3个函数对动态库进行加载第一个:H ...

  8. Java数组以及内存分配

    Java数组以及内存分配 什么数组(简) 数组初始化 动态初始化 静态初始化 内存分配问题(重) 数组操作的两个常见小问题 什么是数组: 定义格式: 数组类型 [] 数组名 ; 如:常用格式,其他方式 ...

  9. 【记】《.net之美》之读书笔记(二) C#中的泛型

    前言 上一篇读书笔记,很多小伙伴说这本书很不错,所以趁着国庆假期,继续我的读书之旅,来跟随书中作者一起温习并掌握第二章的内容吧. 一.理解泛型 1.为什么要使用泛型?-----通过使用泛型,可以极大地 ...

  10. 学习Jmeter,这一篇就够了

    Jmeter在软件测试中的常用功能,看完你应该就会了 1.Jmeter的下载安装 1.1  Jmeter的官方网址是:http://jmeter.apache.org/:下载最新的包到本地进行解压,路 ...