谷粒商城-基础-学习记录 微服务,集群分布式,负载,nacos,熔断降级,网关,docker,feign

微服务:微服务就是将一个大的单体项目进行拆分,拆分成多个小的服务,各个服务之间互不影响,比如一个服务坏掉了不会影响其他服务的正常工作,实现了解耦

集群,分布式:分布式的一个节点就可以为一个集群,但是集群不一定是分布式。
远程调用:在分布式中,不同服务部署在不同服务器上,服务之间需要互相调用,这里就需要远程调用,用http+json

负载均衡:没啥说的,把打来的流量按照不同的分发策略分发到相应的服务器上,如果需要会话保持的话一般设为最小链接+会话保持或者  iphash 同一个ip打到同一台服务器

服务注册中心:springcloud alibaba Nacos    因为服务是分布式的,通信起来不太方便,并且也不知道其他服务的状态。将服务都注册在nacos中可以解决。

服务配置中心:分布式可能有多个相同服务部署在不同的节点上,如果改了一个服务的配置,需要让其他节点同步到,就需要有服务配置中心为他们串联。

服务熔断:当一个请求打到一个服务上,这个服务响应时间很长导致相应失败,如果失败的次数多了就将以后的请求不打到这个服务上。

服务降级:如果一个服务优先级不高或者不太重要的话,请求打过来后直接返回默认数据或者抛异常等实现快速返回。

api网关:api网关可以做负载均衡,统一认证,服务熔断降级,动态路由,限流,过滤等操作

安装docker:

1.首先要安装虚拟机,教程用的vgrant快速搭建的linux环境。我用的vmware用镜像搭载的环境,应该是大差不差
    2.到docker官网进行docker的安装,官网上安装步骤很详细
    安装前先更新yum,不然有可能出现本机无法连接虚拟机的mysql、redis等
sudo yum update
 
卸载系统之前的docker 
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
安装docker需要依赖的包                  sudo yum install -y yum-utils
配置镜像 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker    sudo yum install docker-ce docker-ce-cli containerd.io
启动docker  sudo systemctl start docker
设置开机自启动 sudo systemctl enable docker
检查docker版本 docker -v
检查docker有没有下载镜像 sudo docker images    

用docker安装mysql
一个命令就行:   docker pull mysql:版本号
然后启动加挂载
 --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7


redis同mysql

使用Nacos进行服务注册发现步骤

1.导入Nacos的依赖

2.在启动类上添加注解@EnableDiscoveryClient使该模块能够被Nacos找到

3.在application.properties(yml)中添加spring.nacos.discovery.server-addr: 127.0.0.1:8848(这个是nacos服务的地址,视情况定),添加spring.application.name: gulimail-member 添加服务名能被nacos发现

4.重启服务

使用springcloud feign进行远程调用时的步骤

        1.在每个服务导入feign的依赖

        2.在application启动类中加@EnableFeignClients(basePackages="com.atguigu.gulimail.member.feign") basePackages后跟所要调用的包名

        3.建立feign文件夹与controller同级就好,以后feign的接口放这里面

        4.编写feign接口,接口上加注解@FeignClient("gulimail-coupon") 所调用服务名,方法上加注解@RequestMapping("/coupon/coupon/member/coupon") 所调用接口的全路径

        5.在controller下添加接口调用feign接口下的方法实现远程调用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值