qx-13 开发数据服务总线
业务需求:
数据中心的目标是为业务系统提供数据支撑环境
业务系统直连数据中心的应用数据库,任意访问数据
业务系统通过数据服务总线,采用HTTP协议获取数据
通信协议:http
熟悉http协议(通讯方式和报文方式)
设计数据服务总线的功能和表结构
实现数据服务总线的功能
1. HTTP 协议的基础知识
定义:HTTP(HyperText Transfer Protocol,超文本传输协议)是一个基于 请求–响应模型 的应用层协议。
特点:
无连接:通信完毕就断开连接。
无状态:服务器不会主动记录客户端的历史状态。
基于 TCP/IP:底层依赖 TCP 进行可靠传输。
作用:用于 Web 浏览器与服务器之间的通信。
2. HTTP 请求和响应报文的格式
请求报文(客户端 → 服务端):
请求行:方法(GET/POST)、URL、协议版本。
请求头:附加信息(User-Agent、Host、Content-Type 等)。
空行。
请求体:实际数据(如表单内容、JSON 数据)。
响应报文(服务端 → 客户端):
状态行:协议版本、状态码、状态描述。
响应头:服务器返回的附加信息(Content-Type、Set-Cookie 等)。
空行。
响应体:网页 HTML、图片、JSON 数据等。
3. HTTP 协议的客户端工具和字符集的转换
客户端工具:
浏览器(Chrome、Firefox、Edge)是最常用的 HTTP 客户端。
命令行工具:
curl
、wget
。抓包/调试工具:Postman、Fiddler、Wireshark。
字符集的转换:
HTTP 报文通常包含文本数据(HTML、JSON),需要指定编码方式(如 UTF-8、GBK)。
在请求头或响应头中使用
Content-Type: text/html; charset=UTF-8
来告诉对方采用的字符集。字符集转换能保证跨平台、跨语言环境下的数据正确显示
4. 数据服务总线
实现简单的数据访问接口
通过哦欸值参数 实现不同的数据接口
权限控制(用户名/密码/ip限制)
访问日志(接口名/时间/数量)
功能的初步实现
客户端调用接口的时间间隔比较长,通讯方式采用短链接
服务端采用每连每线程
5.数据库连接池的优化
设定数据库连接池的最大连接数
连接数不够时 自动扩展,建立新的连接
连接空闲时 (n秒未使用) 自动断开,释放资源
6.线程池
在主进程中,预先创建n个工作线程
主进程监听客户端的连接,当有新刻划断练上来的时候,吧它放入待处理队列,
工作线程从队列中取出客户端连接,处理客户端的业务请求
实现
在队列中,存放的是客户端的socket
采用条件变量+互斥锁(生产消费模型)实现队列功能
线程池的监控
进程程序,守护进程+调度进程+心跳机制
线程程序,守护(监控)线程,心跳机制