- 博客(19)
- 收藏
- 关注
原创 Keepalived+Nginx实现高可用
架构在 Keepalived + Nginx 高可用负载均衡架构中,keepalived 负责实现高可用。Keepalived是以VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)协议为实现基础的,这个协议可以认为是实现了路由器高可用的协议,将多台提供相同功能的路由器组成一个路由器组。原理:在整个Keepalived集群中会有一个MASTER和多个BACKUP,master节点上有一个对外提供服务的Virtual IP(VIP),并且MASTER会发组播
2022-05-04 22:26:45
4849
原创 Kill Anxiety-Netty-TCP粘包半包
1. 粘包定义对方一次性接收了多条消息,这种现象称为粘包。原因分析发送方:消息内容远小于TCP缓存区的时候,TCP会合并多条消息一并发出。接收方:接收不及时,消息存放在缓存区,再读取的时候一次性读出多条消息。2. 半包定义对方多次接收了不完整的消息,这种现象称为半包。原因分析发送方发的消息 > 缓存区大小发送方发送的消息 > MTU (Maximum Transmission Unit,最大传输单元)3. 解决方案定长法固定长度,确定消息边界。以最大的消息长度为固
2022-03-18 14:55:33
2702
原创 Kill Anxiety-MQTT通过遗嘱消息判断设备在线状态
遗嘱消息是 MQTT 为那些可能出现 意外断线 的设备提供的将 遗嘱 优雅地发送给第三方的能力。意外断线包括但不限于:因网络故障或网络波动,设备在保持连接周期内未能通讯,连接被服务端关闭设备意外掉电设备尝试进行不被允许的操作而被服务端关闭连接,例如订阅自身权限以外的主题等当应用需要即时的感知设备下线状态时,可以使用 MQTT 遗嘱消息实现。设备连接时,指定 遗嘱主题和遗嘱内容(可以将client id写到内容中,用于服务器判断接收的遗嘱消息来自哪个客户端)服务端监听遗嘱主题,当设备意外断线
2022-03-16 23:39:30
1663
原创 Kill Anxiety-MySQL事务隔离级别
1. 隔离级别概述隔离级别用于限定事务内外的哪些改变是可见的,哪些是不可见的。MySQL实现了标准定义的4类隔离级别。隔离级别从低到高依次是:Read Uncommitted, Read Committed, Repeatable Read, Serializable低级别的隔离一般支持更高的并发,并且系统开销更低。MySQL的默认事务隔离级别是 Repeatable Read。文中针对每一种隔离级别包含实战部份,涉及的表结构和数据如下:create table product( id bi
2022-03-16 12:08:56
1427
原创 Kill Anxiety-MySQL日志文件
1. 准备数据库docker-compose.ymlversion: '2'services: MySQL56: image: mysql:5.6 container_name: MySQL56 hostname: MySQL56 privileged: true environment: - MYSQL_ROOT_PASSWORD=1 - TZ=Asia/Shanghai ports: - "3306:3306"
2022-03-04 17:17:38
216
原创 好用的RSS阅读器-My RSS Reader
我对好用的RSS阅读器定义是必须是免费的必须可以自定义订阅源必须是简洁的,不要华而不实必须有夜间模式,毕竟保护眼睛是头等大事基于以上几点,开发了 My RSS Reader 。目前已经发布了 Android版本,IOS版本也正在开发中。欢迎大家下载使用。同时也欢迎提出您的宝贵意见,让 My RSS Reader变得更好用,更精致。扫描下面的二维码,即可下载 My RSS Reader 的 Android版本下面是App的截图...
2021-09-20 13:37:15
1674
1
转载 Quartz 之 CronExpression
Provides a parser and evaluator for unix-like cron expressions. Cron expressions provide the ability to specify complex time combinations such as "At 8:00am every Monday through Friday" or "At 1:3
2016-12-28 19:59:42
355
原创 SpringBoot 使用 @Value 从 YAML文件读取属性
在 YAML中有如下配置paypal: mode:live在类中,通过 @Value属性读取@Value("${paypal.mode}")private String mode;程序运行时,却报出错误Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'paypal.mode' in str
2016-12-13 21:31:55
29173
3
原创 后台执行 scp
man nohup nohup - run a command immune to hangups, with output to a non-ttynohup就是不挂起的意思( no hang up)。 nohup command > myout.file 2>&1 &在上面的例子中, 0 – stdin (standard input),1 – stdout (standard output
2016-12-10 18:53:30
642
原创 调试微信公众号应用-Android
本文介绍如何调试微信众号应用包括两种方式方法一:使用腾讯浏览服务调试微信方法二 通过全局代理软件详细见 PDF文件 https://pan.baidu.com/s/1kVc4pMn
2016-12-10 12:55:38
556
原创 Mybatis 内置 Java 类型别名与 typeHandlers
There are many built-in type aliases for common Java types. They are all case insensitive, note the special handling of primitives due to the overloaded names.
2016-10-04 00:41:41
8566
原创 MyBatis 插入空值时,需要指定JdbcType
可以看出,当参数的值为 NULL,且没有指定 ```jdbcType``` 时,mybatis会抛出 “JDBC requires that the JdbcType must be specified for all nullable parameters.” 异常。而当参数不为 NULL 时,Mybatis 会针对参数自身的类型调用 ```Pr
2016-10-04 00:29:54
5691
原创 提高应用性能
HikariCP当前号称最快的数据库连接池 http://brettwooldridge.github.io/HikariCP/ There is nothing fastercom.mysql.jdbc.ReplicationDriverMysql 读写分离驱动 http://dev.mysql.com/doc/connector-j/en/connector-j-master-slave-
2016-02-19 09:36:43
442
翻译 BLE UUID
2.5.1 UUIDA UUID is a universally unique identifier that is guaranteed to be unique across all space and all time. UUIDs can be independently created in a distributed fashion. No central registry of
2015-11-04 20:01:56
626
原创 原码、反码、补码
赵岩 《C语言点滴》笔记定义原码原码是一种计算机中对数字的二进制表示方法,数码序列中最高位为符号位,符号位为0 表示正数,符号位为1表示负数;其余有效值部分用二进制的绝对值表示。反码如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。补码如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码
2015-08-26 14:47:30
342
转载 Java Generics Quick Tutorial
Generics is a Java feature that was introduced with Java SE 5.0 and, few years after its release, I swear that every Java programmer out there not only heard about it, but used it. There are plenty of both free
2015-07-17 15:36:06
438
转载 CHROME源码剖析 下《转》
Chrome的窗口控件 Chrome提供了自己的一个UI控件库,相关文档可以参见这里。用Chrome自己的话来说,我觉得市面上的七荤八素的图形控件库都不好用,于是自己倒腾倒腾实现了一套。。。广告虽如此说,不过,Chrome的图形控件结构,我还未发现有啥非常非常特别的地方。Chrome的窗口、按钮、菜单之类的控件,都直接或间接派生自View,这个是控件基类。Chrome的View具有树形结构,其内部有
2015-07-17 15:31:16
476
转载 CHROME源码剖析 上《转》
如果你仔细看了前面的图,对Chrome的线程和进程框架应该有了个基本的了解。Chrome有一个主进程,称为Browser进程,它是老大,管理 Chrome大部分的日常事务;其次,会有很多Renderer进程,它们圈地而治,各管理一组站点的显示和通信(Chrome在宣传中一直宣称一个 tab对应一个进程,其实是很不确切的…),它们彼此互不搭理,只和老大说话,由老大负责权衡各
2015-07-17 15:27:13
737
翻译 手势
用户可以通过手势与app进行交互。下面列出android支持的主要的手势:Touch - 触摸交互建议:触发所操作的元素的默认响应动作顺序:Press (按下), lift (抬起)Long press - 长按 交互建议:进入数据选择模式。允许你选择view中的一个或多个元素,或者按照弹出的菜单对数据进行操译自:android doc 中 design/patterns/gestures.html
2015-07-17 14:18:18
421
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人