SpringMVC框架
文本格式:JSON、JackSon、FastJson,用于存储和表示数据;
重定向:client发送请求后,服务端创建Servlet1并调用service方法处理,service无法处理则告知client重新请求另一URL,服务端创建Servlet2进行处理并将结果返回client。
重定向会引起一次新的client请求,因此URL会改变。此外重定向也可以指向其他服务器。
转发:client发送请求后,服务端创建Servlet1并调用service方法处理,service无法处理但可转发至当前服务器另一服务处理,则创建Servlet2请求该service,将结果返回client。
由于只有一次client请求,因此URL不变。
SSM整合
狂神SSM教程链接:狂神SSM教程- 专栏 -KuangStudy
spring集中管理bean对象及其依赖,Mybatis、springMVC配置均可由spring统一管理,将配置文件通过import方式导入applicationContext.xml中进行整合。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="<http://www.springframework.org/schema/beans>"
xmlns:xsi="<http://www.w3.org/2001/XMLSchema-instance>"
xsi:schemaLocation="<http://www.springframework.org/schema/beans>
<http://www.springframework.org/schema/beans/spring-beans.xsd>">
<import resource="spring-dao.xml"/>
<import resource="spring-service.xml"/>
<import resource="spring-mvc.xml"/>
</beans>
字节跳动RPC框架
RPC通信:与本地函数调用直接读取本地内存相对,RPC指远程过程调用,由不在同一机器上的client和server进行远程方法调用,一方调用的方法和参数等数据信息需要通过网络通信传输到另一方。
RPC三大重点层:编解码层、协议层、网络通信层
Kitex
字节跳动开源内部微服务中间件CloudWeGo,包括Kitex、Netpoll、Thriftgo 和 netpoll-http2,以 RPC 框架 Kitex 和网络库 Netpoll 为主。
推文链接:字节跳动开源内部微服务中间件 CloudWeGo (qq.com) 项目地址:github.com/cloudwego
kitex是字节开源的RPC框架,支持长/短连接,多路复用连接
- 短连接:每次请求都创建新连接,得到返回后立即关闭连接
- 长连接池:单个连接同时只能处理一次完整请求与返回
- 连接多路复用:单个连接可以同时异步处理多个请求与返回
在当前主流的 Golang 开源 RPC 框架中,每个框架在设计目标上都各有侧重:有些框架侧重于通用性,有些侧重于类似 Redis 这种轻业务逻辑的场景,有些侧重于吞吐性能,而有些则更侧重 P99 时延。