2.比如QQ的在线状态,当好友线上我们是怎么知道的呢?
如果是http的话,只能每隔一段时间去请求服务器来获取状态信息,这个是很麻烦的。这也是http最大的问题,通信只能由客户端发起。
这时候当服务器端数据发生变化时,不知道怎么通知客户端,只能客户端不断的轮询访问来获取服务端变化的信息。
但是,当数据长时间没有变化时,很多次轮询是没有都是没用的,这样资源都被浪费掉了。
而websocket最大特点是客户端可以主动向服务器端发送消息,同时,服务器端也可以向客户端推送消息。
它们是双向平等的通信,双方都是有需求是才会通信,这样就不会资源浪费了。
因为php是不不支持长链接的,所以它只能http轮询的,但Go是支持Websocket
3.比如现在有两个服务分别是rtfm和sams,然后它们现在在不同的数据库中存储表数据,现在想将两个数据库整合成一个。但是服务却还是2个。
2.比如QQ的在线状态,当好友线上我们是怎么知道的呢?
如果是http的话,只能每隔一段时间去请求服务器来获取状态信息,这个是很麻烦的。这也是http最大的问题,通信只能由客户端发起。
这时候当服务器端数据发生变化时,不知道怎么通知客户端,只能客户端不断的轮询访问来获取服务端变化的信息。
但是,当数据长时间没有变化时,很多次轮询是没有都是没用的,这样资源都被浪费掉了。
而websocket最大特点是客户端可以主动向服务器端发送消息,同时,服务器端也可以向客户端推送消息。
它们是双向平等的通信,双方都是有需求是才会通信,这样就不会资源浪费了。
因为php是不不支持长链接的,所以它只能http轮询的,但Go是支持Websocket
3.比如现在有两个服务分别是rtfm和sams,然后它们现在在不同的数据库中存储表数据,现在想将两个数据库整合成一个。但是服务却还是2个。
1.如果现在想整合考勤统计中每个员工的考勤信息怎么获取呢?
可以根据考勤规则中department_id去获取rtfm中这个部门下的员工。
select * from rtfm_tags_group where binary tenant = “default” binary group_type=”department” and id = ? 通过这个SQL可以找到该部门每个员工的详细信息。在进行操作即可。
2.如果现在想要rtfm的员工和sams考勤统计中员工数据的数据一致性。
可以根据kafka来进行操作,rtfm中修改员工信息或者删除员工信息将修改内容或者删除id传入employeeTopic中,然后由sams中接收传输过来的信息
如果传输过来有员工名称(employee_name)信息的话,就可以判定该数据是修改员工信息传入过来的,所以就可以去修改考勤统计中某个员工信息。同理。删除也是一样。这样既可以保证同步的效果。