或者session没有可写权限

主要答案有修改runtime目录权限,还有关闭debug。其实这两个是共通的,tp5的默认log目录在runtime里面,并且tp5 默认打开debug的情况下生成日志。

所以目录权限不足,会导致500报错,应该是文件在写入的时候,没有权限导致,但是我的业务流程却是正常执行,说明tp5并没有把日志写入失败作为异常抛出,却改变了它的状态码。所以导致了数据正常返回,但是状态码却离奇变成了500。

微服务架构的设计原则

拆分足够微
轻量级通信
领域驱动原则
单一职责原则

DevOps(开发/运维)及两个披萨

不限于技术栈
微服务模块设计
服务拆分
服务注册
服务发现
服务消费
统一入口
配置管理
熔断机制
自动扩展

微服务拆分的意义

易于实现
易于维护
易于部署
易于更新

微服务拆分的方法

横向拆分:根据业务功能进行拆分。
纵向拆分:对于一个业务功能,根据不同层次进行拆分,如应用层、表现层、数据模型层等。

 

微服务拆分
1.根据服务职责拆分。把一个项目拆成多个服务,也就是多个单体应用
2.定义公用的输入输出。
3.定义公共库。比如说log,config,errors等基础库,还有redis,mongo,mysql等db的连接池初始化和rpc的连接池初始化
4.定义组件之间接口定义。比如说统一API网关,网关内部GRPC调用

打开php.ini, 查找session.save_handler, 将其值设置为 redis
查找session.save_path, 将其设置为”tcp://127.0.0.1:6379″, 注意要加双引号
如果 redis 有密码, 请将save_path设置为
// 如果有密码
session.save_path = “tcp://127.0.0.1:6379?auth=youpwd”
// 如果没有密码
session.save_path = “tcp://127.0.0.1:6379″
整体如下
session.save_handler = redis
session.save_path = “tcp://127.0.0.1:6379?auth=youpwd”

# 安装rabbitmq-c依赖包
yum install libtool autoconf

# 安装rabbitmq-c ( 最好下载 0.5的,0.6安装可能会报错)
# 版本下载:https://github.com/alanxz/rabbitmq-c/releases/tag/v0.9.0
wget https://github.com/alanxz/rabbitmq-c/archive/v0.9.0.tar.gz
tar -zxvf v0.9.0.tar.gz
cd rabbitmq-c-0.9.0/
autoreconf -i
./configure –prefix=/usr/local/rabbitmq-c
make
make install

# 安装PHP扩展 amqp
wget http://pecl.php.net/get/amqp-1.9.4.tgz
tar zxvf amqp-1.9.4.tgz
cd amqp-1.9.4
/usr/local/php7.3/bin/phpize
./configure –with-php-config=/usr/local/php7.3/bin/php-config –with-amqp –with-librabbitmq-dir=/usr/local/rabbitmq-c
make
make install

# 编辑php.ini文件,增加amqp扩展支持
vim /usr/local/php/etc/php.ini

# 增加下面内容
; rabbitmq扩展支持
extension=amqp.so

# 重启php-fpm
/etc/init.d/php-fpm7.3 restart