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