商城微服务项目组件搭建(六)——MinIO、Gitea、Zipkin等安装

商城微服务项目组件搭建(六)——MinIO、Gitea、Zipkin等安装

首页枪战射击GZ穿越火线2.21更新时间:2024-04-16

1、本文属于mini商城系列文档的第0章,由于篇幅原因,这篇文章拆成了6部分,本文属于最后一部分。

2、mini商城项目详细文档及代码见CSDN:
https://blog.csdn.net/eclipse_2019/article/details/132141211

3、本文主要讲解MinIO、gitea、Zipkin、Maven、docker compose的安装部署以及Ideal连接GitHub和Flutter环境配置。

2.21 MinIO部署

98虚拟机中安装,本项目只安装单机版就好了

2.21.1 单机部署

1、下载

下载地址:

GNU/Linux

https://dl.min.io/server/minio/release/linux-amd64/minio

2、新建minio安装目录,执行如下命令

mkdir -p /usr/local/eclipse2019/minio/data

mkdir -p /usr/local/eclipse2019/minio/bin

3、挂载磁盘

在98虚拟机中挂载单独一个盘(10G大小)

fdisk -l #查看磁盘 mkfs.ext4 /dev/sdc #格式化磁盘 mount /dev/sdc /usr/local/eclipse2019/minio/data #挂载

4、把minio二进制文件上传到run目录后,执行:

chmod x minio #给予权限

同时在run目录下创建start.sh文件

export MINIO_ACCESS_KEY=minioadmin #创建账号

export MINIO_SecRET_KEY=minioadmin #创建密码

#默认的端口为:9000

#自定义端口方式:自定义启动端口号以及控制台端口号,不设置则控制台会自动配置其他端口号,非常不方便

nohup /usr/local/eclipse2019/minio/bin/minio server --address :9098 --console-address :9099 /usr/local/eclipse2019/minio/data > /usr/local/eclipse2019/minio/data/minio.log &

然后直接执

sh start.sh

#查看状态

ps -ef|grep minio

5、访问地址:192.168.8.98:9098

输入账号密码后:

进行创建桶,名字自取,创建完成后服务器/usr/local/eclipse2019/minio/data下也会创建这个文件目录

必须将规则设置成readwrite ,才可进行读取文件,否则只存或者只能读。

2.21.2 集群部署

1、环境说明

服务器节点

数据目录

运行目录

192.168.8.74

/opt/minio/data

/opt/minio/run

192.168.8.75

/opt/minio/data

/opt/minio/run

192.168.8.76

/opt/minio/data

/opt/minio/run

192.168.8.98

/opt/minio/data

/opt/minio/run

run:启动脚本及二进制文件目录; data:数据存储目录; /etc/minio:配置文件目录; 注意:/minio 目录必须是挂载的单独硬盘,否则后面启动报is part of root drive, will not be used错误

2、创建数据目录及配置目录,在四个节点分别创建

mkdir -p /opt/minio/{run,data1,data2}

mkdir -p /etc/minio

3、下载minio二进制文件,并上传到两个两个节点的运行目录里

4、集群启动文件创建,四个节点都创建

采用默认端口9000,access_key和secret_key设置为minioadmin、minioadmin

vim /opt/minio/run/start.sh #创建启动文件

文件内容如下

#!/bin/bash

export MINIO_ACCESS_KEY=minioadmin

export MINIO_SECRET_KEY=minioadmin

/opt/minio/run/minio server --config-dir /etc/minio \

--address :9000 \

http://192.168.8.74/opt/minio/data1 http://192.168.8.74/opt/minio/data2 \

http://192.168.8.75/opt/minio/data1 http://192.168.8.75/opt/minio/data2 \

http://192.168.8.76/opt/minio/data1 http://192.168.8.76/opt/minio/data2 \

http://192.168.8.98/opt/minio/data1 http://192.168.8.98/opt/minio/data2

#MINIO_ACCESS_KEY:用户名,长度最小是5个字符;

#MINIO_SECRET_KEY:密码,密码有复杂度要求,长度最小是8个字符;

#–config-dir:指定集群配置文件目录;

5、创建minio系统服务,四个节点都创建

vim /usr/lib/systemd/system/minio.service

文件内容如下

[Unit]

Description=Minio service

Documentation=https://docs.minio.io/

[Service]

WorkingDirectory=/opt/minio/run/

ExecStart=/opt/minio/run/start.sh

Restart=on-failure

RestartSec=5

[Install]

WantedBy=multi-user.target

6、启动集群,l两个节点执行同样操作

修改启动文件权限

chmod x /usr/lib/systemd/system/minio.service

chmod x /opt/minio/run/minio

chmod x /opt/minio/run/start.sh

启动集群

systemctl daemon-reload #重新加载服务

systemctl start minio #启动服务

systemctl enable minio #加入自启动

systemctl status minio.service #查看集群状态

tail -f /var/log/messages #查看日志

7、通过任意节点的ip都可以进行操作,可通过界面或者接口进行操作,如果要均衡访问,可通过nginx做负载均衡 通过如下连接访问minio的web界面 http://192.168.8.74:9000/ 也可通过75节点访问 http://192.168.8.75:9000/

2.22 ideal连接GitHub

1、本地安装git工具

参考:https://blog.csdn.net/weixin_44486583/article/details/122704375

安装完成之后,用cmd进命令提示符,输入where git,就知道位置了。

2、在idea配置GitHub账号

快捷键ctrl alt s打开设置

正常测试结果是下面出现一个版本号。

然后点左侧的GitHub,点右边的“ ”号,下面的时间设置最好改一下,这玩意就算改成60s也时不时超时,毕竟GitHub有点那个。。。然后右下角点应用点OK就行

这里用Token登录,用户名和密码登录一直显示没有权限。

获取Token的方式:

3、在idea里面操作上传项目

然后在idea的VCS点这个share project这个,就正常点点点就行了,没多的操作,这一步主要是容易出现奇奇怪怪的超时,这个应该取决于你目前和GitHub网站的访问流畅程度和你前面操作也就是前面连接GitHub的时间操作有关系,可以多试几次。

4、更新项目

VCS的git里面有commit file选项(第一个)。

点了之后在左侧这边可以选择性写写更新信息,然后commit。

然后点击push选项

2.23 Gitea私有仓库安装

137服务器中安装

1、安装

docker run -d --name gitea -p 3000:3000 -p 2221:22 -v /usr/local/eclipse2019/gitea/data:/data \ -v /usr/local/eclipse2019/gitea/timezone:/etc/timezone:ro \ -v /usr/local/eclipse2019/gitea/localtime:/etc/localtime:ro \ -e USER_UID=1000 -e USER_GID=1000 gitea/gitea:latest

2、配置

(1)通过浏览器访问 nextcloud 的登录网页,当首次登录时,会进入配置界面,访问:http://192.168.8.137:3000,进入后如下图所示:

(2)指定MySQL服务器,这里的服务器为上面安装的,如下图所示:

(3)配置访问信息

(4)点击安装

注意:当没有创建管理员用户的时候,注册的第一个用户便是管理员用户

用户名:eclipse2019

密码:123456

要增加其他员工账号只需添加用户即可

(5)创建库

(6)通过ideal上传代码

添加刚才创建的库地址就好了,然后push

2.24 Zipkin安装

这里介绍两种部署流程:

2.24.1 Zipkin ES

最简单的单机安装,将链路日志直接推送到 Zipkin Server 进行聚合,存储到 ElasticSearch 中,最后再用 Zipkin UI 展示链路过程。

本msd系统采用的是这种部署方式

这种方式使用与配置起来比较简单,并且在 Kubernetes 中能够很容易的横向扩展来处理一定的链路日志数据,不过如果服务过多,链路日志数据量过大还是可能造成 Zipkin Server 的崩溃,所以比较适合服务数量不大的境中。

docker run -itd -p 9411:9411 --restart=always --name zipkin -e STORAGE_TYPE=elasticsearch -e ES_HOSTS=192.168.8.138:9200 openzipkin/zipkin2.24.2 Zipkin ES Kafka

将链路日志推送到 Kafka,然后启动 Zipkin Server 聚合日志,监听 Kafka ,如果有新的消息则进行拉取存入到 ElasticSeach,最后再用 Zipkin UI 展示链路过程。

这种方式使用与配置比较复杂,需要 Kubernetes 集群中部署 Kafka 与 Zookeeper,通过将链路日志数据写入 Kafka 进行削峰,再由 Kafka 写入 Zipkin Server 进行聚合,所以比较适合数据量大、服务多的环境。

Kubernetes 部署 Zipkin

1、部署 Zipkin Server Zipkin Server 是用于收集链路日志信息进行聚合,然后保存数据,并通过 UI 展示数据的组件,这里新建部署文件,然后执行 Kuberctl 命令在 Kubernetes 集群创建 Zipkin Server,并且由于 Zipkin Server 需要监听 Kafka,所以这里也要设置 Kafka 相关配置。

apiVersion: v1 kind: Service metadata: namespace: springcloud name: zipkin labels: app: zipkin spec: type: NodePort #指定为 NodePort 方式暴露出口 ports: - name: server port: 9411 targetPort: 9411 protocol: TCP selector: app: zipkin --- apiVersion: apps/v1 kind: Deployment metadata: namespace: springcloud name: zipkin labels: name: zipkin spec: replicas: 1 selector: matchLabels: app: zipkin template: metadata: labels: app: zipkin spec: containers: - name: zipkin image: openzipkin/zipkin:2.15 ports: - containerPort: 9411 env: - name: JAVA_OPTS value: " -Xms512m -Xmx512m -Dlogging.level.zipkin=DEBUG -Dlogging.level.zipkin2=DEBUG -Duser.timezone=Asia/Shanghai " - name: STORAGE_TYPE value: "elasticsearch" #设置数据存储在ES中 - name: ES_HOSTS value: "elasticsearch.logging:9200" #ES地址 - name: ES_INDEX #设置ES中存储的zipkin索引名称 value: "zipkin" - name: ES_INDEX_REPLICAS #ES索引副本数 value: "1" - name: ES_INDEX_SHARDS #ES分片数量 value: "3" #- name: ES_USERNAME #如果ES启用x-pack,需要设置用户名、密码 # value: "" #- name: ES_PASSWORD # value: "" - name: KAFKA_BOOTSTRAP_SERVERS #Kafka 地址 value: "kafka-svc.kafka:9092" - name: KAFKA_TOPIC #Kafka Topic名称,默认为"zipkin" value: "zipkin" - name: KAFKA_GROUP_ID #Kafka 组名,默认为"zipkin" value: "zipkin" - name: KAFKA_STREAMS #消耗Topic的线程数,默认为1 value: "1" resources: limits: cpu: 1000m memory: 512Mi requests: cpu: 500m memory: 256Mi

2、部署 Zipkin-Dependencies

zipkin-dependencies 是一个聚合数据依赖关系的服务,这里启动服务后它会自动从 ElasticSearch 中获取索引,分析依赖关系然后再以 zipkin索引名称-dependency-yyyy-mm-dd 命名创建新索引存入 ElasticSearch。

并且这个服务内置 Crond 定时任务,默认每隔一小时会执行分析 ElasticSearch 中索引关系的任务(在 Kubernetes 中将其设置一个 Job 任务来使用也是可以的,因为它每次启动时候都会先进行分析依赖数据,当然也可以用容器内部的 Crond 来执行定时任务)。

注意:下面 yaml 中一定要设置 command 命令来启用 crond 定时任务,否则之后执行一次分析依赖关系任务后程序自动关闭。

vi zipkin-dependencies.yaml

apiVersion: v1 kind: Service metadata: namespace: springcloud name: zipkin labels: app: zipkin spec: type: NodePort #指定为 NodePort 方式暴露出口 ports: - name: server port: 9411 targetPort: 9411 protocol: TCP selector: app: zipkin --- apiVersion: apps/v1 kind: Deployment metadata: namespace: springcloud name: zipkin labels: name: zipkin spec: replicas: 1 selector: matchLabels: app: zipkin template: metadata: labels: app: zipkin spec: containers: - name: zipkin image: openzipkin/zipkin:2.15 ports: - containerPort: 9411 env: - name: JAVA_OPTS value: " -Xms512m -Xmx512m -Dlogging.level.zipkin=DEBUG -Dlogging.level.zipkin2=DEBUG -Duser.timezone=Asia/Shanghai " - name: STORAGE_TYPE value: "elasticsearch" #设置数据存储在ES中 - name: ES_HOSTS value: "elasticsearch.logging:9200" #ES地址 - name: ES_INDEX #设置ES中存储的zipkin索引名称 value: "zipkin" - name: ES_INDEX_REPLICAS #ES索引副本数 value: "1" - name: ES_INDEX_SHARDS #ES分片数量 value: "3" #- name: ES_USERNAME #如果ES启用x-pack,需要设置用户名、密码 # value: "" #- name: ES_PASSWORD # value: "" - name: KAFKA_BOOTSTRAP_SERVERS #Kafka 地址 value: "kafka-svc.kafka:9092" - name: KAFKA_TOPIC #Kafka Topic名称,默认为"zipkin" value: "zipkin" - name: KAFKA_GROUP_ID #Kafka 组名,默认为"zipkin" value: "zipkin" - name: KAFKA_STREAMS #消耗Topic的线程数,默认为1 value: "1" resources: limits: cpu: 1000m memory: 512Mi requests: cpu: 500m memory: 256Mi [root@k8s-master01 zipkin]# ls zipkin-dependencies.yaml zipkin-server.yaml [root@k8s-master01 zipkin]# cat zipkin-dependencies.yaml apiVersion: apps/v1 kind: Deployment metadata: namespace: springcloud name: zipkin-dependencies labels: name: zipkin-dependencies spec: replicas: 1 selector: matchLabels: app: zipkin-dependencies template: metadata: labels: app: zipkin-dependencies spec: containers: - name: zipkin image: openzipkin/zipkin-dependencies:2.3.1 ports: - containerPort: 80 command: ["sh","-c","crond -f"] env: - name: JAVA_OPTS value: "-Xms512m -Xmx512m" - name: STORAGE_TYPE value: "elasticsearch" - name: ES_HOSTS value: "elasticsearch.logging:9200" - name: ES_INDEX #设置ES中存储的zipkin索引名称 value: "zipkin" #- name: ES_USERNAME #如果ES启用x-pack,需要设置用户名、密码 # value: "" #- name: ES_PASSWORD # value: "" resources: limits: cpu: 1000m memory: 512Mi requests: cpu: 500m memory: 256Mi

访问 Zipkin Web UI:192.168.8.138:9411/zipkin

2.25 Flutter环境配置

1、官网下载flutter sdk

2、设置环境变量

3、测试flutter安装

4、运行 flutter doctor

5、flutter doctor --android-licenses

一直输入Y就可以了,大概是8次的一个输入

6、Ideal插件中安转Flutter插件

7、Ideal安装Android SDK

2.26 maven安装

在192.168.8.139服务器上

官网下载:https://maven.apache.org/download.cgi

然后将安装包放到/usr/local/eclipse2019/目录下

通过命令解压:tar zxf apache-maven-3.8.3-bin.tar.gz 再执行:ln -s apache-maven-3.8.3 maven vi /etc/profile 在文件末尾加上 MAVEN_HOME=/usr/local/eclipse2019/maven export PATH=$MAVEN_HOME/bin:$PATH 保存退出后执行 source /etc/profile 查看maven版本 mvn -version2.27 docker compose安装

1、下载compose

下载地址:https://github.com/docker/compose

2、上传文件到系统/usr/local/bin,并且重命名mv docker-compose-linux-x86_64 docker-compose

3、修改文件权限并配置环境变量

chmod 777 docker-compose

4、修改配置

vi /etc/profile

内容:

export PATH=$PATH:/usr/local/bin/

source /etc/profile

5、执行docker-compose -v 查看版本

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved