服务能力

SPA single page Application 返回js东西,让浏览器执行生成HTML,这种动态的生成,搜索引擎无法收录

RESTful API

RESTful API 大家共同遵守的规范 尽量不要把动词放到URL里,所有的动作都在方法里,URL一看路径就知道是干什么的,一串数字通常是表示id的

representational state transfer

url 不再单指向服务器的资源文件

http方法有语义

数据传输 使用 json

v1代表第一个版本实现的api

get
post
put 修改资源 需要资源的全部属性
patch 修改资源 不需要资源的全部属性
delete 删除资源

复合资源 不存在这个概念

get api.xinda.com/v1/users/10/courses 比如 id为10的所有课程信息
post api.xinda.com/v1/coures 创建课程(课程是独立的,不跟在用户后面 其他三个都是复合资源 既有用户又有课程)
post api.xinda.com/v1/users/10/coures 传一个参数比如cosresid 关联用户和课程
delete api.xinda.com/v1/users/10/coures/100 删除用户关联的某个课程

GraphQL

GraphQL 是Facebook出的,据说是比REFSful更好用的api目前GitHub第四版本的api就是使用这个

微服务 每个服务小,业务单一,独立性强。使用容器化来使用这些微服务比较好

要避免一个服务挂了造成其他服务也不能正常运行的情况

除了http还有其他通信技术

websocket

服务器跟手机的交互一般还要使用socket 来处理长连接,登录之后,就保持长连接。

应用杀掉,其实就断开了,但是安卓应用一般起了二个进程,杀死这个启动那个,所以这也是导致安卓比较卡的原因之一。

RPC remote procedure call

远程方法调用
像调用本地代码一样调用远程代码
谷歌去年出了一个叫 GRPC

需要定义一个文件 protobuf

rpc有自己的语法

rpc使用的是http2协议

游戏客户端很多都不是使用http通信,而是使用jrpc进行通信的。

消息队列 异步的,可以增加服务器处理的吞吐量

Actor 模型 处理高并发

实现微服务的话 要使用golang语言

图灵完备语言就是 如果两个语言都是图灵完备语言,如果a可以实现b就也可以实现

你可能感兴趣的:(服务能力)