这是随堂笔记, 详细内容请参考在线笔记:
https://blog.csdn.net/weixin_38305440
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ek7I5eTM-1634803552923)(note.assets/image-20200613174552258.png)]
王海涛
提问:
笔记
http://wanght.blog.csdn.net
https://blog.csdn.net/weixin_38305440/article/details/108609574
随堂笔记
http://code.tarena.com.cn/CGBCode/cgb2106/
Gitee代码仓库
https://gitee.com/benwang6/cgb2106
课前资料,百度网盘:
https://pan.baidu.com/s/19tOuVOYJsplssj3kLvfzcA
服务的注册和发现
搭建eureka注册中心服务器
@EnableEurekaServer
触发 eureka 服务器的自动配置eureka四条运行机制
客户端连接 eureka 注册中心
修改 2,3,4 项目
添加 eureka client 依赖
yml
eureka连接地址: http://eureka1:2001/eureka
02商品服务
--server.port=xxxx
05eureka注册中心
@EnableFeignClients
触发Feign的自动配置Feign 集成 Ribbon 负载均衡和重试
Ribbon的重试
远程调用失败,可以自动发起重试调用
重试参数:
统一的访问入口
新建模块: sp06-zuul
添加依赖:
yml 配置路由转发规则
# **包含深层路径
# * 只包含一层路径
# 服务id设置成访问子路径,是默认规则,
# zuul根据注册表的注册信息完成自动配置
# 最好手动配置,防止注册表不全
zuul:
routes:
item-service: /item-service/**
user-service: /user-service/**
order-service: /order-service/**
启动类添加注解 @EnableZuulProxy
zuul统一权限校验
http://localhost:3001/item-service/t45t4 没有登录不能访问
http://localhost:3001/item-service/t45t4?token=65345rt 已经登录过,可以访问
@Component
注解zuul 的自动配置类可以在 spring 容器中自动发现过滤器实例,完成自动配置
zuul集成Ribbon
默认启用了负载均衡
默认没有启用重试
zuul启用重试(不推荐)
zuul.retryable=true
zuul集成 Hystrix
Hystrix是容错和限流工具
容错 – 降级
调用后台服务出错(异常,阻塞,服务崩溃),可以执行当前服务的一段代码,直接向客户端返回降级结果
添加 Hystrix 降级
@Component
Hystrix 限流 - 熔断
Hystrix数据监控仪表盘
Hystrix日志,是通过 Actuator 工具来暴露出来
Actuator
springboot 提供的一个项目指标工具,可以通过Actuator获取项目的各种日志数据
健康状态
spring容器中所有的对象
spring mvc映射的所有路径
jvm堆内存镜像
…
添加 Actuator
添加 actuator 依赖
暴露监控日志
m.e.w.e.i= "*" 暴露所有日志
m.e.w.e.i= health 暴露健康状态日志
m.e.w.e.i= health,beans,mappings,hystrix.stream 暴露多种日志
查看日志
http://localhost:3001/actuator
搭建 Hystrix dashboard
新建模块: sp07-hystrix-dashboard
添加依赖: Hystrix dashboard
yml配置
允许抓取的服务器列表: localhost
启动类添加注解: @EnableHystrixDashboard
访问 http://localhost:4001/hystrix
Turbine
聚合多台服务器的日志数据,提供给仪表盘显示
新建模块: sp08-turbine
添加依赖
yml
聚合的服务: zuul
为聚合的日志数据命名:new String("default")
启动类注解:@EnableTurbine
合并的日志地址: http://localhost:5001/turbine.stream
VMware 版本: 16+
NAT网络网段使用 64 网段
192.168.64.0
虚拟机镜像
加载虚拟机
root
网卡不可用
# centos 7 禁用 NetworkManager 系统服务
systemctl stop NetworkManager
systemctl disable NetworkManager
# centos 8 开启 VMware 托管
nmcli n on
systemctl restart NetworkManager
# 还原 VMware 虚拟网络
# VMware 虚拟网络不稳定,经常出现故障
# 编辑 -- 虚拟网络编辑器 -- 左下角按钮“还原默认设置” -- 设置 VMnet8 的 64 网段
# 会删除所有虚拟网络,重新创建
上传离线文件到 /root/
参考笔记,从第三步开始安装
https://wanght.blog.csdn.net/article/details/117327543
准备 Git 仓库
把 2,3,4 三个项目的配置文件,存放到git仓库
override-none=true
防止配置中心的配置,覆盖本地命令参数springcloud1
搭建配置中心服务器
新建模块: sp09-config
添加依赖
yml
仓库的地址
存放配置文件的文件夹路径
之后测试如果有问题,果断换仓库
https://gitee.com/xyxyxyxyx/springcolud01
config
启动类注解: @EnalbleConfigServer
确认配置中心服务器是否正确
config-server
的注册信息配置中心的客户端
bootstrap.yml
CONFIG-SERVER
确认
消息队列、消息服务、消息中间件、Broker
搭建Rabbitmq服务器
克隆 docker-base: rabbitmq
设置ip
./ip-static
ip: 192.168.64.140
ifconfig
下载 rabbitmq 镜像
docker pull rabbitmq:management
或者从 code 下载 rabbit-image.gz
上传到服务器,然后执行镜像导入
docker load -i rabbit-image.gz
准备配置文件,配置管理员用户名和密码
启动rabbitmq容器
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
重启 docker 系统服务
systemctl restart docker
mkdir /etc/rabbitmq
vim /etc/rabbitmq/rabbitmq.conf
# 添加两行配置:
default_user = admin
default_pass = admin
docker run -d --name rabbit \
-p 5672:5672 \
-p 15672:15672 \
-v /etc/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf \
-e RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf \
rabbitmq:management
访问管理控制台 http://192.168.64.140:15672
用户名密码是 admin
上传到服务器,然后执行镜像导入
docker load -i rabbit-image.gz
4. 准备配置文件,配置管理员用户名和密码
5. 启动rabbitmq容器
```shell
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
重启 docker 系统服务
systemctl restart docker
mkdir /etc/rabbitmq
vim /etc/rabbitmq/rabbitmq.conf
# 添加两行配置:
default_user = admin
default_pass = admin
docker run -d --name rabbit \
-p 5672:5672 \
-p 15672:15672 \
-v /etc/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf \
-e RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf \
rabbitmq:management
访问管理控制台 http://192.168.64.140:15672
用户名密码是 admin