spring cloud微服务 总结(Nacos,Feign,Gateway,docker,sentinel,seata,Lua)
spring cloud微服务 总结
一。微服务架构特征:
1.单一职责,避免重复,耦合低
2.面向服务,对外暴露接口
3.自治:技术独立,数据独立,部署独立
4.隔离性强:容错,降级,避免连错
5缺点:复杂了,部署维护复杂
6服务器框架:
springcloud
alibaba Dubbo
springcloudAlibaba
用户--》服务网关--》注册中心--》配置中心--服务
二。微服务组件:
1.注册中心:eureka,consul,nacos
2.配置中心:dubbo,feign
3.服务远程调用:springcloudconfig,nacox
4.服务网关 :springcloudgateway zuul
5.服务监控:hystrix/sentinel
springcloud+feign
springcloudalibaba+feign
springcloudalibaba+dubbo
doubbo
spring.io/
1。nacos 注册发现,
https://github.com/alibaba/nacos/releases
nacos是阿里爸爸的产品
2 Nacos服务搭建
2.1下载安装包
2.2解压
2.3在bin目录下运行指令:startup.cmd -m standalone
3.Nacos服务注册或发现
引入nacos.discovery依赖
配置nacos地址spring.cloud.nacos.server-addr
4.nacos:namespace-->group-->服务-->集群--》实例
nacosRule 负责均衡:先优先同集群内访问后跨集群访问,默认随机访问
nacos 控制台可用设置权重1-->0;0时不会访问,0.1少数权重可以测试
nacos 注册中心,
nacos配置管理,配置热更新
5.Nacos集群搭建:
1.搭建数据库,初始化数据库表结构:官方提高
2.下载nacos安装包;
3.配置nacos;修改集群配置(节点Ip端口,数据库配置)
4.启动nacos集群多个节点(配合一个复制多个修改端口启动):startup.cmd
5.nginx反向代理(nginx 复制均衡转发)
nginx.conf
upstream nacos-cluster {
server 127.0.0.1:8845;
server 127.0.0.1:8846;
server 127.0.0.1:8847;
}
server {
listen 80:
server_name localhost;
location /nacos {
proxy_pass http://nacos-cluster;
}
}
一。Feign远程调用:
声明式的http客户端https://gibhub.com/openFeign,带负载均衡功能
1.添加依赖
2.application启动类,开启自动装配功能:
@EnableFeignClients
3.定义userservice服务的接口
@FeignClient(value = "userservice", fallbackFactory = UserClientFallbackFactory.class)
public interface UserClient {
@GetMapping("/user/{id}")
User findById(@PathVariable("id") Long id);
}
4.service调用
@Autowired
private UserClient userClient;
User user = userClient.findById(order.getUserId());
二。feign 日志配置:none,basic,full
三.feign优化application.yml
feign:
httpclient:
enabled: true # 支持HttpClient的开关
max-connections: 200 # 最大连接数
max-connections-per-route: 50 # 单个路径的最大连接数
sentinel:
enabled: true # 开启feign对sentinel的支持
一。Gateway服务网关
一。docker
一。Rabbitmq
一。elasticsearch
一。RestClient
一。sentinel
一。seata
一。redis
一。Lua
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!