面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。
接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
SOA最基础设施之一是服务注册中心
dubbo的注册中心一般用zookeeper
springcloud一般中eureka
服务注册中心有两个作用:服务的注册、发现
1、服务注册中心解决了什么问题?
服务管理,如果一个项目只有几个微服务,则不需要注册中心,开发人员也能理清关系,如果有几十几百个就不行了。
服务注册中心1可以服务管理,2可以理清展示?服务之间的关系网
2、CAP原理
c一致性,a可用性,p容错性
zookeeper,CP。各个微服务各有一个?主节点,若干个从节点,节点间数据一致靠主从复制,如果数据量大,同步数据期间,为了C一致性,拒绝提供服务?
eureka,AP。微服务节点不分主从,同步数据期间,依然提供服务吗?
3、新eureka客户端,就是微服务注册到注册中心,需要时间,
注册成功后,以应用程序名称获取该服务实例,也大概需要1分钟。
4、 Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。
每一个微服务都必须设置它的应用程序(对应该服务的ip、port)名称,该微服务部署到多个节点,由ribbon,loadbalanceclient类,根据应用程序名称,随机?选择一个节点提供服务。
这就是微服务中的调用其他微服务时,负载均衡的使用其他微服务。
5、问题:
项目部署之后,门户网站可以负载均衡的被访问吗?
域名如果可以解析到多个ip,并且可以做到用户访问时,随机?均衡分发到各个ip,门户网站这样也可以负载均衡。
调用微服务的接口时,负载均衡,springcloud用的是ribbon。
6、问题:
微服务部署了多个节点时,如果某个节点宕机,由于服务注册中心和微服务之间每隔30s发心跳包,90s内无心跳包时,可以设置删除该服务。
宕机而微服务未被删除时,那么负载均衡调用他的接口时,会报连接异常,这时不能完成该用户的使用,不知道怎么解决
(ribbon根据应用程序名称,获取节点信息时,
应用程序名称与他的各个节点的对应信息,应该是由注册中心存储。)