Latest

WebSocket多实例部署时的一种解决方案

WebSocket多实例部署时的一种解决方案

需要用到k8s进行扩展,在变更容器数量的时候,希望达到不改动代码。 遇到的问题 1. Client与哪一个WS服务建立连接是不知道的 2. 当需要发送WS消息时,使用URL发送给所有的WS模块不可取(一旦容器数量改变,还需要修改代码,即增加新的URL) 架构图 代码 建立连接部分 @ServerEndpoint(value = "/ws/{role}/{token}", configurator = EndpointConf.class) @Component @Slf4j public class WsController { private static final String PARAM_TOKEN = "token"; private static final String PARAM_ROLE = "role"; private static

PageAble分页注解在并发环境下遇到的bug

PageAble分页注解在并发环境下遇到的bug

数据库结构及数据说明 结构 数据 对应类 接口详细说明 获取分页数据接口 @AnonymousSupport @GetMapping("get-system-busy") public Object getPageableUsers(@RequestParam Integer page, @RequestParam Integer size) { return testService.getSystemBusy(page, size); } @PageAble public Object getSystemBusy(Integer page, Integer size) { return testMapper.getSystemBusy(); } @Select("select gender from user") List<User> getSystemBusy(); 根据id获取用户详情 @AnonymousSupport

百度地图墨卡托坐标转高德经纬度坐标(偏移小)

百度地图墨卡托坐标转高德经纬度坐标(偏移小)

参考:http://www.site-digger.com/tools/mct2latlng.html 这里的转换是直接调用百度地图SDK中的API,通过对其中JavaScript源代码的执行跟踪,提取出其中的墨卡托坐标转百度经纬度坐标的代码如下: Java版本: @Data public static class Point { private double lng, lat; public Point(double lng, double lat) { this.lng = lng; this.lat = lat; } @Override public String toString() { return lng + "," + lat; } } private static double xPi = 3.14159265358979324 * 3000.0

MyBatis中的#与$符号的区别

MyBatis中的#与$符号的区别

Mybatis中有很多可以学习的地方,#和$是两种常见的值替换方式,今天站在源码的角度去分析其解析过程。 关键源码 因为这段代码功能单一,对后续的流程影响不大,搞清楚这段代码的作用,基本上#{}和${}的区别,在源代码上已经是清楚了。了解了这段代码之后,再进行后续的解析流程,就不会陷入这段代码的逻辑中,将整个视野投入到流程当中。 位置:GenericTokenParser.java --> parse() private final String openToken; private final String closeToken; // 当匹配到#{}或${}后,对其中的文本进行的操作。 private final TokenHandler handler; public GenericTokenParser(String openToken, String closeToken, TokenHandler handler) { this.openToken = openToken; this.

nc的简易使用

nc的简易使用

端口扫描 nc -zvn 192.168.126.135 22 * z 参数告诉netcat使用0 IO,连接成功后立即关闭连接, 不进行数据交换. * v 参数指详细输出. * n 参数告诉netcat 不要使用DNS反向查询IP地址的域名. 聊天室 * 服务器角色:nc -l 1081 * 客户端角色:nc 192.168.126.135 1081 不管你在机器B上键入什么都会出现在机器A上。 文件传输 服务器向客户端传文件 * 服务器角色:nc -l 1081 < test.txt * 客户端角色:nc -n 192.168.126.135 1081 > test.