谷粒商城基础篇复习(上)

谷粒商城基础篇已经全部看完了,还存在一些问题(网关路由木有生效),看到一位博主的笔记很详细,我就做了整体的快速复习:参考链接:https://blog.csdn.net/hancoder/article/details/106922139/

集群是个物理形态,分布式是个工作方式。
spring cloud使用http+json远程调用,服务之间调用用feign组件
注册中心(Nacos):服务注册发现
配置中心(Nacos):管理微服务的配置信息

服务熔断降级防止微服务之间相互依赖造成的雪崩效应
服务熔断:当被调用的服务超过一定响应时间,或一定时间内超过失败阈值,则后来的请求不去调用这个服务,直接返回失败或返回本地数据。
服务降级:当服务处于调用高峰阶段时,对一些非核心业务进行降级,不被处理或简单处理(抛异常、返回null、返回mock数据、调用fallback处理)。


API网关(springcloud gateway):认证、限流、熔断、降级、负载均衡等功能
前端发送请求,经过Nginx集群把请求交给API网关,网关可以根据请求动态路由到指定服务,如果请求过多,网关可以负载均衡到某一台服务器,服务出现问题时,网关也可以自动熔断降级,网关还可以认证授权、限流。


redis缓存、持久化数据存储mysql、rabbitMQ异步解耦、全文检索ElastcSearch、日志管理ELK、阿里云对象存储服务OSS(存放图片等)、代码管理github或gitee码云、服务追踪

项目创建大致流程:
创建仓库、复制地址下载到idea打开、新建各个springboot服务、新建总的pom文件把所有服务放到pom文件的modules中、下载使用人人开源(renren-fast)的登录权限项目放到我们的项目中、下载人人开源的逆向工程,根据数据库逆向生成controller、service、impl、dao、entity、前端vue等文件,有了简单的增删改查功能,创建common服务存放公共配置、公共包(所有服务导入common)、创建配置文件(数据库信息、mybatis-plus配置、端口号、sql日志(logging:level:com.atguigu.gulimall.product: debug)等)
使用nacos:
注册中心
1.引入依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2.启动类增加注解@EnableDiscoveryClient开启服务的注册发现
3.配置文件配置nacos的地址(server-addr)、服务名
配置中心:
1.引入依赖

<dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
 </dependency>

2.配置文件中配置nacos配置地址、名称、命名空间id、配置分组
3.@Value()注解使用

openfeign远程调用:
1.引入依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2.编写一个接口interface
     1)类声明注解@FeignClient
     2)方法上声明调用服务的地址@RequestMapping
3.启动类增加注解,表明远程调用接口的路径@EnableFeignClients(basePackages="com.atguigu.gulimall.member.feign")


网关springcloud gateway
route:路由到指定路径
predicate:断言成功则路由到指定路径
fitter:过滤地址
(-表示数组、lb代表负载均衡)


前端vue、element-ui、ES6


跨域问题CORS
跨域:浏览器不能执行其他网站的脚本(同源策略),是浏览器对js加的安全限制(跨域是服务器限制请求,不是浏览器)
同源策略:协议、域名、端口都要相同,否侧产生跨域
非简单请求(PUT、DELETE)先发送预检请求OPTIONS,服务器响应允许跨域后,再发送真正的请求,服务器再返回响应数据
跨域解决:
1.设置nginx包含admin和gateway。都先请求nginx,这样端口就统一了
2.让服务器告诉预检请求能跨域(添加过滤器)

注意:
逻辑删除:在数据表中增加逻辑删除字段,删除数据时只要更新该字段
数据库中文乱码:在配置文件url改为url: jdbc:mysql://localhost:3306/guli_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
启动类加上注解@MapperScan(“com.atguigu.gulimall.product.dao”)指定dao文件位置
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值