通过spring-boot搭建的业务系统,可以通过Apollo提供远程的配置服务,以达到集群环境统一使用一套动态配置的目的。
成都创新互联于2013年创立,先为梁山等服务建站,梁山等地企业,进行企业商务咨询服务。为梁山企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。1.关于NameSpacehttps://github.com/ctripcorp/apollo/wiki/Apollo%E6%A0%B8%E5%BF%83%E6%A6%82%E5%BF%B5%E4%B9%8B%E2%80%9CNamespace%E2%80%9D
1.1 namespace的使用场景提供一份全公司默认的配置且可动态调整
RPC客户端项目可以自定义某些配置项且可动态调整
@EnableApolloConfig要和@Configuration一起使用。
想把日志配置也放阿波罗里,那么要把阿波罗的加载顺序提前,但是如此一来,阿波罗的启动就没日志了。
例如:
app.id=sales-platform
例如:
env=dev
例如:
dev.meta=http://apollo.dev.xxx.com
fat.meta=http://apollo.fat.xxx.com
uat.meta=http://apollo.uat.xxx.com
pro.meta=http://apollo.xxx.com
(5)启动Apollo服务,需要mysql以及三个服务。
d:\baiduYun\Program_Files\mysql-advanced-5.6.25-winx64\startMySql.bat
sh /c/Users/tf/app/apollo-configservice-1.2.0-github/scripts/startup.sh
sh /c/Users/tf/app/apollo-adminservice-1.2.0-github/scripts/startup.sh
sh /c/Users/tf/app/apollo-portal-1.2.0-github/scripts/startup.sh
能无缝的与SpringCloud、SpringBoot整合,Eureka还支持在我们应用中启动,降低了部署复杂度。
Zk不易与docker集成。
交互API通过Apollo客户端,配置用管理端。
ConfigService和AdminService都需要注册到Eureka上来保持心跳。
在Eureka之上架设了一层MetaServer用来管理元数据?不是,用来封装Eureka的服务发现接口,就是又套了一层。
Client通过MetaServer获得ConfigService服务配置。Portal通过MetaServer获得AdminService服务配置。
Config、Admin、Eureka同时部署在一个JVM中。
Eureka两大职能,Registry与Discovery。
5.存在疑惑提一句CAP理论,Consistency一致性、Availability可用性、Partition-tolerance分区可容忍性。BASE理论Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的缩写。BASE是对CAP中一致性和可用性权衡的结果。
写实时性要求高与读实时性要求不高的场景,所以允许最终一致性。
最终一致性是弱一致性的一个特例,是大型分布式系统推崇的一种模型。
分布式网络中的各种问题,成功、失败、超时三态。超时的原因有可能是节点故障,也有可能是网络原因。
由于这些不确定,所以,引进分布式事务概念。从单机ACID概念,原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),变为两段式提交,两阶段提交属于牺牲了一部分可用性来换取一致性。
题外话
侧重 | 说明 |
---|---|
CA | 放弃分区容错性,加强一致性和可用性,其实就是传统的单机数据库的选择 |
AP | 放弃强一致性,追求分区容错性和可用性,这是很多分布式系统设计时的选择,例如很多NoSQL系统就是如此 |
CP | 基本不会选择,放弃可用性,追求一致性和分区容错性,网络问题会直接让整个系统不可用 |