分布式和集群的理解:好比在一个厨房有两个厨师,一个炒菜,一个洗菜,各自作不一样的事情,可是却在合做,这种叫作分布式,两个都在炒菜或者都在作菜,就叫作集群。前端
eureka的是springCloud的注册中心,有服务端和客户端,客户端启动后会到服务端集群中注册节点,服务端的集群配置是:每一个服务端都要注册到除了本身的其余服务端节点上。nginx
不适合用微服务的场景:1,访问压力不大。2,强事务性的系统。3,系统稳定,迭代周期长。git
节点间访问有两种方式:前端:eureka,后端:nginx,zookeeper等负载均衡方式。web
dubbo和springCould节点间通讯方式区别:dubbo是rpc方式,springCloud是restful方式。spring
springCloud的两种restful调用方式:RestTemplete和Feign,这两种都是使用ribbon作负载均衡。bootstrap
RestTemplete有三种访问方式:用第三种。后端
ribbon:客户端负载均衡器,经过获取的服务端节点,经过负载均衡策略命中目标节点。RestTemplete就是经过Ribbon的基础上实现的。默认是轮训的负载均衡规则,能够经过配置文件修改默认的负载均衡规则。安全
Feign使用方式:1:maven引包,2:启动类设置注解,3:编写特殊Feign类。restful
3种问题:服务端实体类直接返回很差,不能直接暴露、不能重复在两个服务定义重复的实体类、Feign的接口服务不该该写在客户端,应该写在服务端。解决方式就是把服务多模块化,经过maven引包进行调用、多封装一层数据层,包装真正的数据实体。负载均衡
为何须要配置中心:1是不安全,2是不方便,3是修改配置须要从新部署。
怎么作服务高可用:启动多个节点,注册到eureka就能够了
各服务要调用配置中心的东西,必须用bootstrap.yml,这样强制先调用配置中心的配置再加载配置信息,否则会报错。
配置中心:注册到eureka的配置不要放在配置中心,应该提取出来。
配置中心:若是配置中心有order-yml,order-test.yml,则若是访问配置中心的地址是xxx/order-test.yml,则这两个配置都会获取到。因此能够把公用的配置放在order.yml里面。
配置中心实现自动获取最新配置不用重启服务:1,引入客户端引入spring-Cloud bus包,注意spring boot和springcloud的版本;经过配置服务server的相关配置,开放bus-reflesh接口;3,在git远程仓库配置webHook地址,注意得是有域名地址。4,客户端动态获取参数得加上ReflushScope注解。
rabbitmq的exchange交换机的做用就是随着业务的复杂,生产者不用知道要把消息发给哪一个队列,而是直接发给exchange交换机,带上key的名称,这样交换机就能知道转发到哪一个队列了。
zuul:网关-》路由+过滤器,相似于一系列的过滤器,有pre,rounting,post,error,自定义custom等,前置能够做为限流、校验、权限验证,后置能够做为日志、统计等功能。
zuul的高可用也是能够做为微服务,启动多个服务注册到eureka就能够了
能够同nginx和zuul混合使用。
spring cloud hystrix:服务降级,优先处理订单、支付等服务。