当前位置:  开发笔记 > 编程语言 > 正文

负载均衡,分布式,集群的理解,多台服务器代码如何同步

集群:我们的项目如果跑在一台机器上,如果这台机器出现故障的话,或者用户请求量比较高,一台机器支撑不住的话。我们的网站可能就访问不了。那怎么解决呢?就需要使用多台机器,部署一样的程序,让几个机器同时的运行我们的网站。
3.使用pxc集群,任何一个节点都是可读可写的,读写强一致性。

laravel如何解决数据不一致

在config/database.php mysql配置块中将sticky设置为true

sticky 是一个 可选值,它可用于立即读取在当前请求周期内已写入数据库的记录。若 sticky 选项被启用,并且当前请求周期内执行过 「写」 操作,那么任何 「读」 操作都将使用 「写」 连接。这样可确保同一个请求周期内写入的数据可以被立即读取到,从而避免主从延迟导致数据不一致的问题。不过是否启用它,取决于应用程序的需求。

如果我们的代码怎么同步到多台服务器上呢?

laravel为我们提供了扩展包laravel/envoy,它为定义远程服务器的日常任务,提供了一套简洁、轻量的语法。Blade 风格语法即可实现部署任务的配置、Artisan 命令的执行等。

composer global require laravel/envoy

Envoy 任务都应在项目根目录下的 Envoy.blade.php 中定义。写入一下内容

@servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2'])

@task('deploy', ['on' => ['web-1', 'web-2']])
    cd site
    git pull origin {{ $branch }}
    composer update
    php artisan migrate
@endtask

以上代码意思就是在命令行envoy run deploy时候,我们会ssh到会web-1,web-2 执行

    cd site
    git pull origin {{ $branch }}
    php artisan migrate

当然这个前提是我们已经加入了ssh到远程的服务器上。

更多Laravel相关技术文章,请访问Laravel教程栏目进行学习!

以上就是负载均衡,分布式,集群的理解,多台服务器代码如何同步的详细内容,更多请关注其它相关文章!

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有