Skip to main content

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+并行化对将所有结果一次返回的请求并不好

用处一般在返回的结构复杂(例如社交关系网络, 区块链)