服务的拆分及远程调用
调用其他服务用restTemplate
其实用过好多次了,只不过原来是微服务的内容啊
Eureka注册中心
管理服务,30s心跳
配置 1 引入依赖 2添加注解 3 添加yml配置信息 这就配好了服务,4还要在每个服务中yml添加一下Eureka的地址就可以了。
那么如何调用呢
1修改url地址写服务名称
实现负载均衡
给RestTemplate加注解
@LoadBalanced
更改负载均衡的规则
在service中。
@Bean
public IRule randomRule(){
return new RandomRule;
}
Ribbon负载均衡
Nacos
配置不同的集群
同时还要配置ribtton,负载均衡的方式,调整成nacosRule
namespace>服务>cluster
配置管理
程序运行,先读取nacos配置,后读取本地
配置热更新
添加注解
@RefreshScope
当面对dev pre prod,有公共变量时这种问题时
Feign
因为restTemplate的url不好写
是一个声明式的客户端
如何引用?
引入依赖
加@EnableFeignClients
如何用,一般是再写个api项目,然后服务端写个rest包,继承api,然后别人想要调用,直接引入这个包就可以了。
网关
1身份认证和权限检验
2 服务路由和负载均衡
3 请求限流
GatewayFilter
跨域问题
浏览器禁止 ajax请求。
Docker
镜像相关操作
docker images 查看镜像
docker rmi 删除镜像
docker pull 获取镜像 (docker hub中可以看都有哪些版本)
docker push 推送镜像
docker save 把镜像搞成一个压缩包
docker load 把压缩包解压
docker save --help
docker save -o niginx.tar nginx:latest
容器相关操作
docker run 运行
docker pause 暂停
docker stop 停止
docker start 停止恢复
docker ps 查看所运行的容器及状态
docker exec 进入容器内
docker rm 删除
docker logs 查看日志
实例
docker run -name containerName -p 80:80 -d nginx
docker exec -it 容器名 bash
数据卷
主要是把容器内文件映射到宿主机上面,1方便用vim等命令,2方便知道哪些东西进行了修改。
docker volume
docker create 创建volume
docker inspect 显示一个或者多个volume的信息
ls 列出所有的volume
prune 删除未使用的volume
rm 删除指定volume
挂载数据卷
docker create html
docker run
–name 容器名
-v html(数据卷名称):(容器内路径)
-p 8080:80 \
nginx
或者-v也可以直接写自己的目录。
Dockerfile自定义镜像
from 8-jdk-alpline
DockerCompose
部署微服务集群
DockerCompose文件是一个文本文件,通过指令定义集群中每个容器如何运行
Docker镜像仓库
MQ
所以如果是想要精确传输的话,并且数据量不大的话用rabitmq,数据量特别大的话用kafka。
15672管理员界面
5672消息网站
springAMQP
1监听器容器
2RabbitTemplate
3RabbitAdmin用于自动声明队列,交换和绑定。
如何使用?
1引入依赖
2 在publisher服务端application.yml加入mq连接信心
和kafka的用法差不多嘛。
2创建produce者
3创建consumer
交换机
fanout发送给每个队列
Direct发送给指定的队列
TopicExchange必须是多个单词的列表。
消息转换,当向队列传输map等时,必须设置这个,否则会序列化