Visual Studio 2019 文件编码问题
Visual Studio 对 utf-8 的支持相当差.cpp/.h 文件先调出高级保存选项菜单, 具体百度设置文件字符编码为utf-8还不够, 还要在项目 => 属性 => C/C++ => 所有选项 => 附加选项 中 设置 /utf-8.rc 文件默认编码gbk, 加了特殊字符无法显示然后改
Visual Studio 2019编译QT5.12.0 x64
下载源码https://download.qt.io/archive/qt/5.12/5.12.0/single/编译工具Perlhttps://strawberryperl.com/download/5.26.3.1/strawberry-perl-5.26.3.1-64bit-portable.
C++中友元函数不能重载的运算符
C++规定有四个运算符 =, ->, [], () 不可以是全局域中的重载(即不能重载为友员函数)当把赋值运算符重载为类的友员函数,在程序中执行类对象的赋值语句时,程序就会出现两种矛盾的选择。1、因为它认为类中并没有重载赋值运算符的成员函数,所以它根据C++的规则,会去调用相应的构造函数。2、但是在
C++复制构造函数几种特殊情况
一int main() {
Test cc;
//会调用拷贝构造函数 将cc赋值给dd, 因为dd不存在(没有初始化), 所以需要调用拷贝构造函数进行初始化
Test dd = cc;
cout << &cc << endl;
cout << &dd << e
ActiveMQ架构及特性
架构主从模式(Master Slave): JDBC方案 相较于集群, 该模式解决高可用的问题集群(Broker Clusters): 相对于主从模式, 该模式可以进行负载均衡, 一个client1连接broker1发送消息,另一个client2连接broker2消费消息,这时就需要将broker1
常见的大表查询优化
测试表user, user_detail各100w数据下面是一个常见的连表查询分页sqlSELECT * FROM user u LEFT JOIN user_detail ud ON u.id = ud.user_id LIMIT 800000, 10
执行时间3.323s优化下可以写成这样SEL
SVN在IDEA的相关操作
建立svn项目目录我这使用的是coding建立相关文件夹然后使用svn工具checkout到本地如图在trunk(主分支文件夹)文件夹内建立项目在idea中打开这个文件夹在最上面的VCS标签中启用版本控制如图pom.xml在src下是乱写的提交代码操作与git类似更新代码操作与git类似解决代码冲突
Redis特性
1. GEO可用于存储地理位置添加地理位置的坐标计算两个位置间的直线距离根据指定的经纬度坐标来获取指定范围内的地理位置集合2. Pipinglineing 管道, 一次发送多个命令, 节省网络开销3. Public/Subscribe 发布订阅, 可用于构建轻量级的消息队列, 但如果客户端断连, 消
TCP三次握手四次挥手
三次握手是为了证明双方都有发送响应消息的能力比如A 要向 B 建立连接假如 A B 双方都是正常的A向B发送syn, B接收到, 此时B知道A能正常发消息B向A发送syn和ack, A接收到, 此时A知道B能正常收到(ack), 也能正常发送(syn), 但B还不知道A能不能正常收到最后A向B发送a
RocketMQ解决消息发送与业务落库的一致性
在实际业务中, 经常有如下场景更新一条数据后, 需要发送一条消息异步通知其他服务进行后续处理比如用户完成激活, 发送一条消息通知第三方服务同步用户状态那么会有如下代码@Transactional
public void enabled() {
//更新用户状态
updateUser(
回顾一次生产问题
有几个原因造成这些问题我没有对这种异步系统进行流程分析我不熟悉RocketMQ的特性以及机制我对数据库操作把控不严
RocketMQ架构及特性
架构RocketMQ包含四个组件NameServer, Broker, Consumer, ProducerNameServer类似注册中心, Broker接收存储消息, Consumer和Producer在项目内定义Broker向所有NameServer注册自己, 持续发送心跳包Consumer和
Redis缓存更新修改原有值但是不修改失效时间
第一种方式redisTemplate.opsForValue().set("key", "value", 0);第二种方式redisTemplate.opsForValue().increment("key", 1);
异步场景下的ThreadLocal解决方案
引入依赖<dependency>
<groupId>com.alibaba</groupId>
<artifactId>transmittable-thread-local</artifactId>
<version>2.12.1</version>
</dependency
SpringCloud OpenFeign 微服务调用
现有xxx-common 和 xxx-user两个微服务, 现需要在common中调用user的服务添加依赖<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-start
SpringBoot Test bootstrap.yml读取不到指定配置
项目用了springcloud config, 所以用bootstrap读取项目基础配置.但是在单元测试下, 发现bootstrap内的值(@@application.name@@)没有被替换, 导致单元测试一直报错解决方法:在pom中的project->build节点下, 新增如下代码
JUnit 模拟多线程 逻辑不执行
@Test
public void test() {
new Thread() {
@Override
public void run() {
//logic
}
}.star
模拟Mybatis"无实现类"调用接口
Mybatis让我们通过接口(interface)就能调用到对应sql, 看起来好像没有实现类, 貌似不符合"常识"通过这个简易demo, 带你大致了解mybatis背后所做的事先建立maven工程 <parent>
<groupId>org.springframework.b
MyBatis是如何让我们通过接口就能调用到SQL的
大致可分为如下几个步骤1. 动态注册bean1.1 根据配置mapperScan, 扫描对应的包, 将对应的类解析成BeanDefinition1.2 通过替换BeanDefinition中的BeanClass为MapperFactoryBean, (原来的BeanClass是Mapper接口) 实
MyBatis拦截器实现SQL打印
mybatis有自带的sql打印, 但只会出现在抛异常的时候, 或者配置日志输出, 但是输出的日志较为冗长像这样### Error querying database. Cause: java.lang.ArithmeticException: / by zero
### The error ma