Springboot 开发助力

开发涉及到文档

1. Linux 安装CentOS7

链接:https://pan.baidu.com/s/1P5aAjk9aML7Iw8VmCNN2Gw
提取码:7ksd

2.Docker环境搭建

参考官方文档Linux CentOS安装:https://docs.docker.com/engine/install/centos/
Docker.pdf 已放到百度网盘

Docker CE JIANDAN简单操作
卸载原有的环境:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装对应的依赖环境和镜像地址
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装过慢设置镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo
直接安装docker CE
sudo yum install -y docker-ce docker-ce-cli containerd.io

3. Git安装和TortoiseGit

Git安装包:Git-2.26.2-64-bit 已放到百度网盘
TortoiseGit安装包:TortoiseGit-2.10.0.2-64bit 已放到百度网盘
安装文档:Git安装和TortoiseGit详细使用教程【基础篇】

4. 人人开源学习网址(gitee)

Gitee网址:https://gitee.com/renrenio
image

5. SpringCloudAlibaba

GitHub地址(中文介绍):https://github.com/alibaba/spring-cloud-alibaba/blob/2.2.x/README-zh.md

  • 注册中心:Nacos
  • 配置中心:Nacos
  • 负载均衡:Ribbon
  • 声明式服务调用:OpenFegin
  • 服务容错:Sentinel
  • 网关服务:Gateway
  • 链路监控:Sleuth
  • 分布式事务:Seata

  介绍SpringCloudAlibaba家族成员以及主要功能。一定要引入Manager后才可以引入spring-cloud-alibaba-***,否则cloud与boot会冲突

6. cloud与boot版本对应的映射

Spring Boot单体应用升级Spring Cloud微服务最佳实践:官方文档

7. Nacos搭建

  Nacos具有注册中心与配置中心,两大功能:GitHub查看并下载  官方配置文档(中文)

8. Mybatis Plus

Mybatis Plus中文文档

9.Vue 合集

Vue 3文档
其中也包含了比较有名的插件

10. Element Plus

  前端很火的UI插件,网上教程或者公司都爱使用

以上两个使用需要Vue加载对应组件后,方可使用。二者使用层面上,有的地方向通,有的地方不通。

11. 优雅转换mapstruct-plus

  mapstruct-plus对标BeanUtil的方法,BeanUtil是通过反射的方式完成赋值的,要求属性名称相同,而mapstruct-plus是通过get/set完成赋值的,且可以做不同字段名的映射。推荐~!!!

官方文档

12. 阿里云 OOS

  OOS主要是用于存储一些不是很大,但很重要的文件、图片等。以流的方式存到云端,可以前台存储、读取,也可以后端存储、读取,

  阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。您可以通过本文档提供的简单的REST接口,在任何时间、任何地点、任何互联网设备上进行上传和下载数据。基于OSS,您可以搭建出各种多媒体分享网站、网盘、个人和企业数据备份等基于大规模数据的服务。

开通阿里云OOS 接口文档
OSS Java SDK

13. ElasticSearch相关安装

ElasticSearch&Kibana 学习资料已经存放到百度网盘(ElasticSearch学习资料.md)

###############
# 索引 <==> 数据库
# 文档 <==> 数据库中的表
# 文本内容 <==> 表中的数据
# ES  <==>  MYSQL/ORACLE
# Kibana <==> navicat/sqlyog
###############

ElasticSearch

  ElasticSearch在整个系列中类似MySql。数据存储为json格式,其索引以key-vakue存储,名为倒排索引。

Linux下使用docker安装 es
1. 拉取镜像
docker pull elasticsearch:7.4.2

2. docker创建容器需要挂载(以实际情况进行调整)
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "http.host : 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml

3. docker 创建容器
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.4.2

4. 启动项目
4.1 elasticsearch.yml配置文件的 : 两边需要添加空格,否则报错
4.2 chmod -R 777 /mydata/elasticsearch/ 挂载文件要有权限,否则报错

5. 验证启动
浏览器测试访问:http://192.168.56.100:9200,返回200并显示json数据为启动陈宫

注意:
  ES最新版本不支持jdk8,启动报错,需要下载以前版本:elasticsearch-7.6.1(此版本最佳适配jdk11,但jdk8也能启动.。7.4.2似乎适配JDK8未测试)

Kibanan

  Kibanan的安装就相当于安装MySQL的客户端SQLYog。它的存在就是配合ES来使用的。读取的也是ES中数据。
  但下载时需注意,应选择与Elasticsearch对应版本的Kibana  Kabanan版本下载页面

  Kibana安装与配置(windows版)

Kibanan.yml 文件中需要注意的几个参数
# 服务端口号
server.port: 5601

# 允许访问的IP,如果允许任何IP访问此处输入0.0.0.0
server.host: "localhost"

# 服务名称
server.name: "kibana"

# The URLs of the Elasticsearch instances to use for all your queries.
# ES服务地址
elasticsearch.hosts: ["http://localhost:9200"]

# 创建的索引   有需求打开
#kibana.index: ".kibana"

# 登录ES使用的用户名和密码   有需求打开
#elasticsearch.username: "kibana"
#elasticsearch.password: "pass"

# 设置kibana为中文
i18n.locale: "zh-CN"

14. Kibana语言之 DSL

kibana DSL语言查看文档
大佬的文档内容很全,适合忘记时查看语句。但如果想学习,建议还是要看视频一点一点写。
DSL关键字简述

15.boot集成es版本配置

es-java-rest-high-maven.html
  这个路径是官方推荐maven使用版本。但Spring boot的集成包(spring-boot-dependencies)已经加载了对应的es版本,二者最好统一一下。

16. Nginx:反向代理、负载均衡

  1. 官网下载(Linux/Window)

  2. Windows安装使用

  3. 路径规则

注:

  • 反向代理,就是代理客户端向服务端发送请求。反向代理时,host需要手动添加。
    server {
        listen  80;  // 这个是端口号
        server_name  malleds;  // 这个是域名
        location / {
			proxy_set_header Host $host;
            proxy_pass   http://127.0.0.1:8070;   # 指向某一具体地址,算配置完成了
        }

    }
  • 负载均衡,就是做服务器集群
http {

	# 做成集群的方式
	upstream malleds {
		server 127.0.0.1:8070;
		server xxx.x.x.x:xxxx;
		server xxx.x.x.x:xxxx;
		server xxx.x.x.x:xxxx;
	}

	server {
		listen  80;
		server_name  malleds;

		# 我将所有的 js、css、png等静态文件,放在html目录下。
		# root 后面的地址,可以写相对地址,或者绝对地址。
		# 相对地址 是从nginx1.20.x 根目录开始的。
		location /static/ {
			root html;
		}

		location / {
			proxy_set_header Host $host;
			proxy_pass   http://malleds;   # 指向集群别称,算配置完成了
		}
	}
}

17. JMeter 压力测试

18. 压测

  硬件决定上限(单看nginx测试就能区分,我与老师的电脑性能差别)
  软件(中间件)越多,性能损失就越大,大多数的损失都是在数据的交互。
  添加索引,确实会添加吞吐量,增长多少,要看硬件设备

压力测试内容 压力测试的线程数 吞吐量/s 90%响应时间 99%响应时间
Nginx 50 7,385 10 70
Gateway 50 23,170 3 14
单独测试服务 50 23,160 3 7
Gateway+服务 50 8,461 12 46
Nginx+Gateway 50
Nginx+Gateway+服务 50 2,816 27 42
一级菜单 50 1,321 48 74
三级分类压测 50 12 4000 4000
首页全量数据(DB-Themleaf) 50 2
一级菜单(DB-索引) 50 1900 40 70
三级分类压测(索引) 50 34 1599 1700
首页全量数据(DB-Themleaf-放开缓存) 50 30 。。。 。。。

个人测试

压力测试内容 压力测试的线程数 吞吐量/s 90%响应时间 99%响应时间
Nginx 单测,自测 50 2820 19 34
Gateway 单测,自测 50 4030 18 72
Nginx+Gateway 自测 50 845 77 129
一级菜单 自测 50 670 120 314
一级菜单 自测,添加索引 50 897 97 218
三级分类压测 自测,添加索引 50 21.8 3149 4157
全网页 自测,动静分离 50 180 389 916
三级分类压测 自测,优化代码 50 892
三级分类压测 自测,redis 50 2090 29 189

19. 性能分析工具-jvisualvm

工具:(这两个工具都是JDK自带的工具,可以通过搜索框找到。)

  • jconsole 功能简单
  • jvisualvm 功能全(重点),安装Visual GC直观显示堆变化

  在搜索插件时,如果发现无内容或者无反应,问题点在插件地址错误,需要结合你的jdk的版本来选择对应的插件的版本

20. 分布式缓存:击穿、穿透、雪崩

// Redis 引入
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

Redis的分布式缓存问题
Redis中文网(非官网,但够用)

SpringCahe分布式缓存使用

posted @ 2024-04-21 21:54  之士咖啡  阅读(8)  评论(0编辑  收藏  举报