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.添加依赖

org.springframework.cloud
spring-cloud-starter-openfeign

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