php酒店预订⽹站源码
思途CMS酒店预订系统,包含酒店管理、房间库存管理、、酒店订单、酒店资讯、酒店评论、酒店配置以及短信和邮件通知等,界⾯⼤⽓漂亮,酒店数据⼀键更新,只需⼀个域名和空间,就可以拥有⼀个⼤数据的站点。
⽂件:(访问密码:551685)
以下内容⽆关:
-------------------------------------------分割线---------------------------------------------
apollo 是⼀款由携程团队开发的配置中⼼,可以实现配置的集中管理、分环境管理、即时⽣效等等。在这篇博客中,我们可以了解到:
为什么使⽤配置中⼼
如何设计⼀个配置中⼼
apollo 是如何设计的
如何使⽤ apollo
为什么使⽤配置中⼼
这⾥我回答的是为什么使⽤配置中⼼,⽽不是为什么使⽤ apollo。为什么呢?因为我不建议使⽤ apollo,之所以研究它,只是好奇⽽已。另外,为什么使⽤配置中⼼,这个是需求层⾯的问题,需求是明确的,但实现需求的⼿段就不⼀定了。这个有点像⼈需要吃饭但不⼀定得吃馒头。
⾸先,我们可以想象下,如果没有配置中⼼,我们的项⽬可能是这样的:不同环境的配置⽂件都放在项⽬⾥⾯,部署时可以通过启动参数来指定使⽤哪个环境的配置。
zzs_apollo_01
zzs_apollo_01
这种⽅式有两个⽐较⼤的缺点:
不安全。项⽬的开发⼈员可以看到⽣产环境的各种地址、账号、密码等等,这是不安全的;
配置更新需要重启项⽬才能⽣效。
配置中⼼就是为了解决这些问题⽽存在的。
如何设计⼀个配置中⼼
安全
还是继续上⾯的分析。为了解决配置的安全问题,我们很⾃然地会想到把配置⽂件放到⼀个开发⼈员看不到的地⽅,即项⽬和配置分离,如图所⽰。这个放配置的地⽅可以是数据库,可以是远程⽂件,也可以是独⽴的应⽤,等等。
zzs_apollo_02
zzs_apollo_02
这样就能解决安全问题了吗?还是不⾏,项⽬的开发⼈员还是能看到⽣产的配置。为什么呢?因为测试环境和⽣产环境共⽤⼀个配置中⼼,开发⼈员能拿到测试环境的配置,也就能拿到⽣产环境的配置。所以,环境不同,配置中⼼也不⼀样(如果⾮要共⽤⼀个,得想好隔离⽅案)。
zzs_apollo_03
zzs_apollo_03
即时发布
表格网站php源码接着,我们来解决第⼆个问题:配置的即时发布。
我们需要在客户端和配置中⼼之间建⽴某种机制,让客户端可以感知到配置的变化,⼀般可以通过以下⽅式实现(apollo 两种⽅式都⽤了):
客户端定时重拉配置;
服务端主动推送。
还有⼀点需要注意,客户端拿到新的配置后,需要让配置⽣效,即把新配置注⼊到对应的类中,这⼀点在集成了 spring 的项⽬⾥会好处理⼀些。
那么 apollo 是如何实现的呢?我们可以关注下ip.framework.apollo.spring.property.SpringValueRegistry这个类,它⾥⾯存放了项⽬的所有配置信息,客户端感知到配置变更后,只要更新这上⾯的配置就⾏。⽽这个类⾥⾯的配置是通过BeanDefinitionRegistryPostProcessor+BeanFactoryPostProcessor来完成初始化的。原理并不复杂,这⾥就不扩展了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。