OpenFeign统一Fallback处理
@Slf4j
@Configuration(proxyBeanMethods = false)
public class FeignLoadBalancedConfiguration {
@Bean
public LoadBalancerFeignClient feignClie
Java服务高CPU占用代码排查方法
1.查找进程通过top -c命令可以确定出现问题的进程2.查找线程 接下来就要找到这个进程中是哪个线程出现问题这个确定也是比较简单的,只需要输入命令:top -Hp PID例top -Hp 9828
3.定位代码jstack 进程PID | grep 线程id的16进制 -c 显示行数jstack
Seata分布式事务环境搭建
下载seata服务端https://github.com/seata/seata/releases修改registry.conf这里使用nacos做注册中心和配置中心, 也就不需要服务端的file.conf了但是使用nacos时, nacos的密码不能有特殊符号, 否则seata可能连接不上regi
SpringBoot读写分离配置与事务
引入依赖<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.1</version>
MySQL InnoDB 加锁机制
MySQL 版本: 8.0.25隔离级别: 可重复读InnoDB有两种不同的SELECT,即普通SELECT 和 锁定读SELECT. 锁定读SELECT 又有两种,即SELECT ... FOR SHARE 和 SELECT ... FOR UPDATE; 锁定读SELECT 之外的则是 普通SE
MySQL InnoDB MVCC机制
对于普通select来说, InnoDB使用MVCC保证了事务隔离. 同一事务的两次相同查询语句都是同样结果, 其他事务修改记录不影响当前事务, 特殊情况是会看到同一事务中先前语句所做的更新, 所以对于普通select(快照读)来说, MVCC是解决了脏读/不可重复读/幻行的; 而对于当前读(锁定读
MySQL WITH AS 语法
如果一整句查询中多个子查询都需要使用同一个子查询的结果,那么就可以用with as,将共用的子查询提取出来,加个别名。后面查询语句可以直接用,对于大量复杂的SQL语句起到了很好的优化作用特别对于UNION ALL比较有用. 因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,
MyBatis处理一对多关系时的性能考虑
Mybatis框架对于处理一对多的情况有两种方法查询的时候JOIN子表, 然后交给MyBatis拼装数据查询的时候不JOIN子表, 主表查询完成后发起select再查询关联表数据, 还可以配置fetchType=lazy进行懒加载这两种方法各有问题:第一种方案有两个缺陷: 1) 做分页查询的时候不准
C++ 获取Windows环境变量
#include <windows.h>
string getValue(const char* env) {
string value = "";
char valueArr[1024] = { 0 };
unsigned int pathSize = GetEnvi
MyBatis-Plus部分方法封装
在此仅记录一种思路public interface SuperMapper<T> extends BaseMapper<T> {
default List<T> idNotInList(List<?> idList) {
return selectList(new Quer
Java Stream flatMap解析
flatMap对流扁平化处理运行如下代码 String[] words = new String[]{"Hello", "World"};
List<String> a = Arrays.stream(words)
.map(word
IDEA方法注释模板
设置tab键触发注释模板内容**
* <p>$methodName$</p>
*$param$ $return$
* @Title $methodName$
* @author kyaa
* @date $date$ $time$
*/
变量填充param自己脚本模拟def result
Java8 Optional 开发常见用法
class Info {
String a;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
}
第一个例子针对空指
Nginx相关命令
查看Nginx的版本号:nginx -V
启动Nginx:start nginx 或者 nginx
快速停止或关闭Nginx:nginx -s stop
正常停止或关闭Nginx:nginx -s quit
配置文件修改重装载命令:nginx -s reload
查看windows
屏蔽Postman自动更新
hosts文件添加127.0.0.1 dl.pstmn.io
127.0.0.1 sentry-app.postmanlabs.com
SpringBoot加载外部配置文件的几种方式
一@PropertySource("file:F:/my.properties")
@Configuration
@ConfigurationProperties(prefix = "my")
public class TestConfig {
private String url;
观察者模式与SpringBoot应用
当对象间存在一对多关系时, 则使用观察者模式(Observer Pattern). 比如, 当一个对象被修改时, 则会自动通知依赖它的对象.优点:观察者和被观察者是抽象耦合的建立一套触发机制SpringBoot应用场景在SpringBoot启动流程中org.springframework.boot.
Java SPI机制与应用
SPI全称Service Provider Interface, 是Java提供的一套用来被第三方实现或者扩展的接口实际上是"基于接口的编程+策略模式+配置文件"组合实现的动态加载机制, 更是设计模式的生动体现它可以用来启用框架扩展和替换组件. SPI的作用就是为这些被扩展的API寻找服务实现我们一
MySQL优化-表结构设计
首先明确一个, 减少占用的存储空间, 可以减少操作时占用的内存, 可以提高CPU处理效率字符串的ip地址可以转换为整数类型存储, mysql提供INET_ATON()和INET_NTOA()进行转换尽量避免字段允许为NULL, 字段为NULL会占用额外空间整数类型可以选择置为无符号, 同样的存储空间
C++Web框架Drogon
Drogon是一个基于C++14/17的Http应用框架,使用Drogon可以方便的使用C++构建各种类型的Web应用服务端程序。Drogon的主要应用平台是Linux,也支持Mac OS、FreeBSD和Windows。它的主要特点如下:网络层使用基于epoll(macOS/FreeBSD下是kq