From 2f4c48dafd890f2a4d54a55ce11273e536912a6d Mon Sep 17 00:00:00 2001 From: 3y Date: Mon, 10 Jan 2022 20:39:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BD=BF=E7=94=A8=E5=A7=BF?= =?UTF-8?q?=E5=8A=BF=E4=BB=A5=E5=8F=8A=E5=AE=89=E8=A3=85=E6=95=99=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- INSTALL.md | 261 +++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 34 +++++++ 2 files changed, 295 insertions(+) create mode 100644 INSTALL.md diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..dc93282 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,261 @@ + + +## 01、安装MySQL + +**一**、下载并安装mysql: + +``` +wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm +yum -y install mysql57-community-release-el7-10.noarch.rpm +yum -y install mysql-community-server +``` + +**二**、启动并查看状态MySQL: + +``` +systemctl start mysqld.service +systemctl status mysqld.service +``` + +**三**、查看MySQL的默认密码: + +``` +grep "password" /var/log/mysqld.log +``` + +[![img](https://tva1.sinaimg.cn/large/008i3skNgy1gwg6eiwyqfj313402mgm8.jpg)](https://tva1.sinaimg.cn/large/008i3skNgy1gwg6eiwyqfj313402mgm8.jpg) + +**四**、登录进MySQL + +``` +mysql -uroot -p +``` + +**五**、修改默认密码(设置密码需要有大小写符号组合—安全性),把下面的`my passrod `替换成自己的密码 + +``` +ALTER USER 'root'@'localhost' IDENTIFIED BY 'my password'; +``` + +**六**、开启远程访问 (把下面的`my passrod `替换成自己的密码) + +``` +grant all privileges on *.* to 'root'@'%' identified by 'my password' with grant option; + +flush privileges; + +exit +``` + +**七**、在云服务上增加MySQL的端口 + +## 02、安装Docker和Docker-compose + +首先我们需要安装GCC相关的环境: + +``` +yum -y install gcc + +yum -y install gcc-c++ +``` + +安装Docker需要的依赖软件包: + +``` +yum install -y yum-utils device-mapper-persistent-data lvm2 +``` + +设置国内的镜像(提高速度) + +``` +yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo +``` + +更新yum软件包索引: + +``` +yum makecache fast +``` + +安装DOCKER CE(注意:Docker分为CE版和EE版,一般我们用CE版就够用了) + +``` +yum -y install docker-ce +``` + +启动Docker: + +``` +systemctl start docker +``` + +下载回来的Docker版本:: + +``` +docker version +``` + +运行以下命令以下载 Docker Compose 的当前稳定版本: + +``` +sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +``` + +将可执行权限应用于二进制文件: + +``` +sudo chmod +x /usr/local/bin/docker-compose +``` + +创建软链: + +``` +sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose +``` + +测试是否安装成功: + +``` +docker-compose --version +``` + +## 03、安装Kafka + +新建搭建kafka环境的`docker-compose.yml`文件,内容如下: + +```yml +version: '3' +services: + zookepper: + image: wurstmeister/zookeeper # 原镜像`wurstmeister/zookeeper` + container_name: zookeeper # 容器名为'zookeeper' + volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录 + - "/etc/localtime:/etc/localtime" + ports: # 映射端口 + - "2181:2181" + + kafka: + image: wurstmeister/kafka # 原镜像`wurstmeister/kafka` + container_name: kafka # 容器名为'kafka' + volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录 + - "/etc/localtime:/etc/localtime" + environment: # 设置环境变量,相当于docker run命令中的-e + KAFKA_BROKER_ID: 0 # 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://ip:9092 # TODO 将kafka的地址端口注册给zookeeper + KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 # 配置kafka的监听端口 + KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + KAFKA_CREATE_TOPICS: "hello_world" + ports: # 映射端口 + - "9092:9092" + depends_on: # 解决容器依赖启动先后问题 + - zookepper + + kafka-manager: + image: sheepkiller/kafka-manager # 原镜像`sheepkiller/kafka-manager` + container_name: kafka-manager # 容器名为'kafka-manager' + environment: # 设置环境变量,相当于docker run命令中的-e + ZK_HOSTS: zookeeper:2181 + APPLICATION_SECRET: xxxxx + KAFKA_MANAGER_AUTH_ENABLED: "true" # 开启kafka-manager权限校验 + KAFKA_MANAGER_USERNAME: admin # 登陆账户 + KAFKA_MANAGER_PASSWORD: 123456 # 登陆密码 + ports: # 映射端口 + - "9000:9000" + depends_on: # 解决容器依赖启动先后问题 + - kafka +``` + +文件内**// TODO 中的ip**需要改成自己的,并且如果你用的是云服务器,那需要把端口给打开。 + +在存放`docker-compose.yml`的目录下执行启动命令: + +``` +docker-compose up -d +``` + +可以查看下docker镜像运行的情况: + +``` +docker ps +``` + +进入kafka 的容器: + +``` +docker exec -it kafka sh +``` + +创建一个topic(这里我的**topicName**就叫austinTopic,你们可以改成自己的) + +``` +$KAFKA_HOME/bin/kafka-topics.sh --create --topic austinTopic --partitions 4 --zookeeper zookeeper:2181 --replication-factor 1 +``` + +查看刚创建的topic信息: + +``` +$KAFKA_HOME/bin/kafka-topics.sh --zookeeper zookeeper:2181 --describe --topic austinTopic +``` + +## 04、安装Redis + +首先,我们新建一个文件夹`redis`,然后在该目录下创建出`data`文件夹、`redis.conf`文件和`docker-compose.yaml`文件 + +`redis.conf`文件的内容如下(后面的配置可在这更改,比如requirepass 我指定的密码为`austin`) + +```Java +protected-mode no +port 6379 +timeout 0 +save 900 1 +save 300 10 +save 60 10000 +rdbcompression yes +dbfilename dump.rdb +dir /data +appendonly yes +appendfsync everysec +requirepass austin +``` + +`docker-compose.yaml`的文件内容如下: + +```yaml +version: '3' +services: + redis: + image: redis:latest + container_name: redis + restart: always + ports: + - 6379:6379 + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf:rw + - ./data:/data:rw + command: + /bin/bash -c "redis-server /usr/local/etc/redis/redis.conf " +``` + +配置的工作就完了,如果是云服务器,记得开redis端口**6379** + +启动Redis跟之前安装Kafka的时候就差不多啦 + +```shell +docker-compose up -d + +docker ps + +docker exec -it redis redis-cli +``` + +## 05、安装Apollo + +部署Apollo跟之前一样直接用`docker-compose`就完事了,在GitHub已经给出了对应的教程和`docker-compose.yml`以及相关的文件,直接复制粘贴就完事咯。 + +**https://www.apolloconfig.com/#/zh/deployment/quick-start-docker** + +**https://github.com/apolloconfig/apollo/tree/master/scripts/docker-quick-start** + +部门的创建其实也是一份"配置",输入`organizations`就能把现有的部门给改掉,我新增了`boss`股东部门,大家都是我的股东。 + +![](https://tva1.sinaimg.cn/large/008i3skNgy1gy8usif8ipj31n80iimyq.jpg) \ No newline at end of file diff --git a/README.md b/README.md index 7bdc777..e4f8a33 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,40 @@ austin项目**核心流程**:`austin-api`接收到发送消息请求,直接 **Answer 3**:`autsin-admin`是`austin`项目的**管理后台**,负责管理消息以及查看消息下发的情况。业务方可根据通过`austin-admin`管理后台直接**定时**发送消息,而`austin-cron`就是承载着定时任务的工作了。 +## 使用姿势 + +目前引用的中间件教程的安装姿势均基于`Centos 7.6`,austin项目强依赖`MySQL`/`Redis`/`Kafka`/`apollo`。 + +缺少相关的组件可戳:[安装相关组件教程](INSTALL.md) + +**1**、austin使用的MySQL版本**5.7x**。如果目前使用的MySQL版本8.0,注意改变`pom.xml`所依赖的版本 + +**2**、适配`application.yml`的配置信息(`srping.datasource`) + +**3**、执行`sql`文件夹下的`austin.sql`创建对应的表 + +**4**、填写Kafka配置的`bootstrap-servers`地址和端口以及对应的`topicName` + +**5**、填写Redis的`host`、`port`和`password` + +**6**、填写apollo的`appid`/`namespace` + +**7**、以上配置信息都在`application.yml`文件中修改。 + +**8**、由于使用了Apollo且我是在云服务器上安装的,我这边会直接跳过`metaserver`服务发现,在`AustinApplication`需要配置对应的apollo地址 + +**9**、目前短信和邮件账号的信息都配置在**apollo**,配置的示例参照`com.java3y.austin.utils.AccountUtils#getAccount`中的注释 + +**10**、调用http接口`com.java3y.austin.controller.SendController#send`给自己发一条短信或者邮件感受 + +```shell + +curl -XPOST "127.0.0.1:8080/send" -H 'Content-Type: application/json' -d '{"code":"send","messageParam":{"receiver":"13788888888","variables":{"title":"yyyyyy","contentValue":"6666164180"}},"messageTemplateId":1}' + +``` + + + ## 将要实现的项目架构模块 2021-11~2021-12实现功能: