# 第三阶段第五模块-SpringCloud组件设计原理及实战(下) **Repository Path**: wwtang/springcloud-2 ## Basic Information - **Project Name**: 第三阶段第五模块-SpringCloud组件设计原理及实战(下) - **Description**: 第三阶段第五模块-SpringCloud组件设计原理及实战(下) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-08-06 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring cloud-2 ## nginx 1.需要配置host文件 ```text # nginx 域名 127.0.0.1 www.abc.com ``` 2. nginx.conf ```text server { # 虚拟主键监听的端口 listen 8099; # 虚拟主机的访问ip/域名/ip:port server_name www.abc.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location /api { proxy_pass http://localhost:9002; proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; } location / { root html/static/; index index.html index.html; } } ``` 3 静态页面 静态页面已经放到nginx中 ## 访问说明 1.http://www.abc.com:8099 ![](./images/index.png) * 页面加载完成请求http://www.abc.com:8099/api/user/info,后端网关服务gateWay会进行拦截,获取token,token为空或者通过token没有获取用户为空,则页面中进行重定向到登录页 2.http://www.abc.com:8099/login.html ![](./images/login.png) * 当用户发起登录请求时,网关服务会进行拦截,进行参数判断,登录成功后,会将token写入到cookie中并存入数据库,当用户访问首页时,后端从cookie中获取token进而获取邮箱地址 3.http://www.abc.com:8099/registry.html ![](./images/registry.png) * 当用户点击获取验证码时,首先判断该邮箱地址是否已经注册,如果已经注册,重定向到登录页,没有注册进而请求发送验证码服务;点击注册请求用户服务的注册功能,注册成功后,重定向到登录页 ## spring cloud alibaba 1.启动nacos server集群 ```bash ./startup.cmd -m cluster ``` ![](./images/nacosconfigfile.png) 2.启sentinel 控制台 ```bash java -jar sentinel-dashboard-1.7.1.jar ``` 3.分别启动自定义的服务 ServiceEmailApp8082 -> ServiceCodeApp8081 -> ServiceUserApp8080 -> GateWayServerApp9002 配置文件变动部分 ```yaml spring: # cloud nacos cloud: nacos: discovery: server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850 # sentinel sentinel: transport: # sentinel 控制台地址 dashboard: 127.0.0.1:8080 # sentinel会在该端⼝启动http server,那么这样的话,控制台定义的⼀些限流等规则才能发送传递过来,如果8719端⼝被占⽤,那么会依次+1 port: 8719 log: dir: /home/logs/sentinel/ #重写bean main: allow-bean-definition-overriding: true # dubbo: scan: # dubbo 服务扫描基准包 base-packages: com.lagou.cl.dubbo.service protocol: # dubbo 协议 name: dubbo # dubbo 协议端⼝( -1 表示⾃增端⼝,从 20880 开始) port: -1 registry: # 挂载到 Spring Cloud 的注册中⼼ address: spring-cloud://localhos cloud: # 订阅服务提供⽅的应⽤列表,订阅多个服务提供者使⽤ "," 连接 subscribed-services: lagou-service-code consumer: check: false ``` 4.nacos server服务列表和配置列表 ![](./images/nacos%20server.png) ![](./images/nacos%20config.png) 5.验证nacos 的配置是否生效 改变验证码的长度,查看邮件中的验证码长度是否发生变化 ![](./images/nacos%20config-1.png) 6.验证sentinel的限流功能 ![](./images/sentinel.png) ![](./images/sentinel-flow.png) ![](./images/sentinel-jemeter.png)