在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教程栏目进行学习!
以上就是负载均衡,分布式,集群的理解,多台服务器代码如何同步的详细内容,更多请关注其它相关文章!