nginx&graphql
nginx的基础知识
作业的示例nginx
events {
worker_connections 1024;
}
http {
upstream myapp {
ip_hash; # 此处的另外几种, 什么都不写的默认rr, least_conn
server localhost:8100; # rr的情况下, 可以加weight=x
server localhost:8101;
}
server {
listen 8180;
location /hello {
proxy_pass http://myapp/hello;
}
}
}
graphql: 前端gql, 后端spring graphql
graphql放弃了RESTful语义, 全用POST包了, 并在返回的body里面约定data和error
好处:
- 只返回需要返回的字段, 减少网络带宽通信压力
- 规范先行, 架构统一减少对接口时间
问题:
- db查询并没有变化
- api开发复杂度增加
- (http)缓存(兼容性)问题, 安全性问题(如何估算graphql请求的db复杂度来避免攻击, 不同字段的授权)
- 不鼓励破坏性更改,也不提供处理这些更改的工具
- http2+并行化对将所有结果一次返回的请求并不好
用处一般在返回的结构复杂(例如社交关系网络, 区块链)