分布式(distributed)是指在多台不同的服务器中部署不同的服务模块,通过远程调用协同工作,对外提供服务。
集群(cluster)是指在多台不同的服务器中部署相同应用或服务模块,构成一个集群,通过负载均衡设备对外提供服务。
集中式系统是指有一个大型的中央处理系统,中央处理系统是一台高性能、可扩充的计算机,所有的数据、运算、处理任务全部在中央计算机系统上完成。
zuul(服务网关)https://blog.youkuaiyun.com/forezp/article/details/81041012
我们知道我们前台要展示数据给用户看,这中间可能涉及到从后端的多个微服务进行获取数据。比如获取用户信息需要用到用户微服务、获取商品信息需要获取商品微服务、创建订单需要调用订单微服务,而各个微服务可能分布在各个机器上,前端要获取到数据就必须要知道各个微服务的地址,这给前端增加开发的复杂性。一段后端的某个微服务地址改变了,前端可能还要修改。而且后端各个微服务权限认证也不好认证。
zuul不仅只是路由,并且还能过滤,做一些安全验证。网关层进行各种操作,比如限流、权限校验等。
实现功能
1、查看 zuul 中配置好的路由和过滤器信息
2、忽略所有微服务或某些微服务
3、忽略所有为服务,只路由指定的微服务
4、通过path和url访问到具体的某台机器上
5、脱离eureka进行访问,并使之具有负载均衡和隔离的机制等
6、转发前是否去掉路由前缀
7、为所有路由都增加一个通过的前缀
8、忽略某些路径不进行路由
9、敏感头的传递(比如Cookie等)全局设置和某个微服务设置
10、忽略头
11、spring security 在classpath 下会忽略的头
12、本地调换和路由的优先级
13、配置网关超时
14、重写 Location 头
15、文件上传处理
注册多个实例
负载均衡处理多个实例的选择
Spring Cloud Config (分布式配置中心组件)
使用配置服务来保存各个服务的配置文件。它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client
Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。
它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。
我们只需要在配置文件中配置 spring-cloud-starter-bus-amqp ;这就是说我们需要装rabbitMq,点击rabbitmq下载。