自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 问答 (1)
  • 收藏
  • 关注

原创 Nacos原理梳理心跳机制

客户端服务启动的时候,会发送自己的心跳信息 @Override public void registerInstance(String serviceName, String groupName, Instance instance) throws NacosException { String groupedServiceName = NamingUtils.getGroupedName(serviceName, groupName); if (in..

2021-03-19 13:09:46 1866 1

原创 Nacos原理梳理服务注册发现

NACOS版本:1.4.2NACOS的核心功能点: 1.服务注册 2.服务发现 3.服务同步 4.心跳机制 5.服务健康检查 6.配置自动刷新服务注册:客户端服务向server注册的一个过程对于一个springboot项目来说,自动化配置就找其spring.factories文件里内容,很明显NacosServiceRegistryAutoConfiguration这个类是注册的核心里面有三个bean对象,凭名字的感觉找NacosAutoServiceRegistration...

2021-03-18 15:43:52 273

原创 Nacos配置中心使用注意点

注意点:1.对于配置中心的配置只能写在bootstrap.yml或bootstrap.properites中,写在application.yml中无效2.使用bootstrap.yml低版本会一直刷日志,加以下日志或者用bootstrap.propertieslogging: level: com.alibaba.nacos.client.config.*: WARN3. dataId = ${prefix}-${spring.profiles.active}.${file-extensio

2021-03-17 15:28:33 1046

原创 代码的坏味道-封装思想

常见的代码:当你必须得先了解一个类的细节,才能写出代码时,这只能说明一件事,这个封装是失败的//过长的消息链String name = book.getAuthor().getName();//隐藏委托关系,将调用封装起来class Book { ... public String getAuthorName() { return this.author.getName(); } ...}String name = book.getAuthorName();

2021-03-16 22:46:41 122

原创 代码的坏味道-长参数列表

//final是个好习惯public void createBook(final String title, final String introduction, final URL coverUrl, final BookType type, final BookChannel channel, .

2021-03-16 22:22:29 123

原创 代码的坏味道-命名

命名:好的命名要体现出这段代码在做的事情,而无需展开代码了解其中的细节,这是最低的要求。再进一步,好的命名要准确地体现意图,而不是实现细节。更高的要求是,用业务语言写代码。问题1.不精准的命名: 业务中userId可能是审核人的ID的含义,但是别人可能一眼看不出来,需要去了解业务才知道含义,更好的命名是 reviewerUserId直接让人知道在这个业务情景下的含义//这个函数的意图是,确认章节内容审核通过。//这里有一个问题,chapterId 是审核章节的 ID,这个没问题,但 user

2021-03-16 22:09:01 111

原创 代码重构之函数式编程

近期接手的项目发现controller中的代码结构都是一样的,但是重复性代码太多。如下所示: //产生实例对象 private ABusiness aService = new ABusiness(); private BBusiness bService = new BBusiness(); private CBusiness cService = new CBusiness(); @PostMapping("/A") public void doA

2021-03-16 13:21:08 140

原创 CompletableFuture使用

首先,查看该类的接口结构1.初始化(是否有返回值,是否要指定线程池产生4种方法)CompletableFuture.runAsync(Runnable runnable);CompletableFuture.runAsync(Runnable runnable, Executor executor); CompletableFuture.supplyAsync(Supplier<U> supplier);CompletableFuture.supplyAsync(Suppl

2021-03-13 16:48:25 257

原创 Dubbo异步转同步思想引用

public class DubboInvoker{ Result doInvoke(Invocation inv){ // 源码中108行 return currentClient .request(inv, timeout) .get(); }} //DefaultFuture类 // 创建锁与条件变量 private final Lock lock = new ReentrantLock(); private..

2021-03-12 22:23:07 236 2

原创 阿里云服务器被挖矿?kdevtmpfsi 进程CPU100%

收到阿里云警告服务器中蠕虫病毒,进行top大致是这样的,kdevtmpfsi 的CPU占满,ps -aux | grep kinsingps -aux | grep kdevtmpfsi可以找到对应的PIDkill -9 PID 2个都得杀find / -name kdevtmpfsifind / -name kinsing再rm 掉这样文件。。。。。。。。。 然而事情并没有这么简单。。过了会它又恢复了。。然后就删了恢复删了恢复。。。最后发现Docker镜..

2020-05-28 21:58:43 507

原创 Feign调用请求get请求变POST

@RequestMapping(value=''/getInfo',method=RequestMethod.GET)Rest doGetInfo(@RequestParms("params")Map<String,Object> params)原因:@RequestParms注解没加 会默认调用POST请求============产生reading 4...

2020-05-06 22:01:31 1163

原创 记Mysql类型引起的BUG

今天在项目里发现了个好玩的BUG,来记录下。首先:表数据是这样的(项目里的表就不展示了,随意弄个临时表)由于a的默认值为空,同事就写了这样的sqlselect * from t1 where a =0和这样的sqlselect * from t1 where a>0-------------------------------------------------...

2020-04-30 21:54:58 221

原创 多线程累加lambda几种方法(极客时间Java业务开发常见错误100例)

package com.sixi.erp.coreservice.annotation;import com.google.common.collect.Lists;import java.util.ArrayList;import java.util.concurrent.*;import java.util.concurrent.atomic.AtomicInteger;imp...

2020-04-20 17:42:59 1004

原创 nginx配置登录认证

在自己的阿里云上部署的ELK,避免9100的head插件被随意访问,需要过滤一些IP地址实现:x-pack (7.3ES版本后免费)或者通过nginx来限制:nginx的实现配置:server { listen 80; server_name www.xxx.com; auth_basic "登录认证"; auth_basic_user_file /us...

2019-11-21 16:33:40 254

原创 @async的坑以及简单案例

在一个类中调用自己的方法,使用Async是由于AOP的规则,会导致异步失效(static也是失败的)正确姿势:将异步方法抽至另一个类中,将其注入到使用类直接掉用即可。在配置自定义的线程池package com.demo.config;import lombok.extern.slf4j.Slf4j;import org.springframework.ao...

2019-11-08 23:48:20 1473

原创 1024

放个假!

2019-10-24 10:21:55 7353

原创 记java8和Map.merge的使用

*compute:根据key做匹配,key,value为参数,匹配到Node做value替换,匹配不到新增node。apply的返回值为null则删除该节点。 * merge:oldValue,newValue作为为参数,其它功能于compute类似 * computeIfAbsent:原来的值存在且不为null,不修...

2019-10-15 17:49:33 444

原创 springboot2.0重写RedisCacheMange自定义设置过期时间

@Override@Cacheable(cacheNames = "cache#45", key = "#key")public String test(String key) { System.out.println(key); return "12345";}通过cacheNames所传递的值进行处理来设置过期时间,如:cache#45 cache代表原来的前缀,...

2019-09-30 17:01:37 1825 2

如何设计一个秒杀系统 (极客时间)

高并发系统的几大方向1.请求数据尽量少,从而减少cpu消耗2.访问路径尽量短,减少节点消耗3.强依赖尽量少,减少加载时间4.不要有单点,要有备份5.减少额外请求,减少加载时间架构升级的逻辑要具体问题具体分析的例如秒杀的场景来说,不同QPS量级下瓶颈也会不一样,10w级别可能瓶颈就在数据读取上,通过增加缓存一般就能解决,如果要到100w那么,可能服务端的网络可能都是瓶颈,所以要把大部...

2019-09-26 14:56:44 1293

原创 mysql自定义排序

实现按 2,1,3排序:SELECT * FROM user where id in (1,2,3) ORDER BY locate(id,'2,1,3') ;SELECT * FROM user ORDER BY field(id,2,1,3) descSELECT * FROM user where id in (1,2,3) ORDER BY INSTR('2,1,3',...

2019-09-19 17:02:51 144

原创 动态定时任务的简单实现

1.配置类@Configurationpublic class ThreadPoolTaskSchedulerConf { @Bean public ThreadPoolTaskScheduler threadPoolTaskScheduler() { return new ThreadPoolTaskScheduler(); }}2.具体逻辑类...

2019-08-16 17:22:11 643

原创 mysql常用时间函数

昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 17天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)近30天SELECT * FROM 表名 where DATE_SUB(CURDATE(...

2019-08-16 14:59:34 217

原创 根据对象某个属性进行过滤

public class Test { public static void main(String[] args) { Book one = Book.builder().id(1).name("one").build(); Book two = Book.builder().id(1).name("two").build(); ...

2019-08-14 17:13:24 1516

原创 springboot中Dubbo配置手册

http://dubbo.apache.org/zh-cn/docs/user/references/xml/dubbo-service.html

2019-08-07 10:20:38 233

原创 配置中心访问方式

例如:/{application}/{profile}/[label]/{application}-{profile}.yml/{label}/{application}-{profile}.yml/{application}-{profile}.properties/{label}/{application}-{profile}.propertiesapplicati...

2019-08-06 14:34:52 383

原创 spring security oauth2.0授权服务器和资源服务器

使用@EnableAuthorizationServer并且继承AuthorizationServerConfigurerAdapter开启授权服务器AuthorizationServerSecurityConfigurer :用于配置授权服务的安全策略AuthenticationEntryPoint:这个用于ExceptionTranslationFilterAccessD...

2019-07-13 16:45:19 1142

原创 Linux-vim,awk

VIM:du -h 查看大小u 取消更改AWK:NF代表最后一个字段变量NR表示当前处理的是第几行内置函数的地址:https://www.gnu.org/software/gawk/manual/html_node/Built_002din.html#Built_002dinBEGIN{ 这里面放的是执行前的语句 }END {这里面放的是处理完所有...

2019-06-29 13:08:05 399

原创 Semaphore类相关总结

Semaphore的使用大致是对Synchronize的增强,控制执行的线程数public class SemaphoreDemo { public static void main(String[] args) throws InterruptedException { Semaphore semaphore = new Semaphore(1); ...

2019-06-27 14:51:50 243

原创 Unsafe类相关

1.JDK源码中对这个类进行了严格限制,不能通过常规new的方式去获取该类的实例,也不能通过Unsafe.getUnsafe 获得Unsafe对象实例;只能通过反射机制Field f = Unsafe.class.getDeclaredField("theUnsafe");f.setAccessible(true);Unsafe unsafe = (Unsafe) f.get(nul...

2019-06-27 11:12:27 129

原创 git提交代码出现Detached HEAD解决

1.git checkout -b tmp 切出临时分支2. add / commit 提交修改代码3.git checkout master 切回主分支4.git merge tmp 拉取临时分支代码5.git branch -d tmp 删除临时分支

2019-06-19 16:53:47 1454

原创 生成二维码接口

依赖<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version></dependency>@GetMapping(...

2019-06-17 16:05:41 853

原创 mysql 是否有交集的自定义函数

2个字符串:1,2,33,4,5判断是否有交集如上面交集3CREATE DEFINER=`root`@`%` FUNCTION `find_same_group`(`source` varchar(255),`target` varchar(255)) RETURNS int(11) READS SQL DATABEGIN #Routine body goes h...

2019-06-14 18:53:15 317

原创 springCloudStream---bindings默认配置

BindingProperties:consumer:producer:

2019-06-13 10:13:45 1971

原创 springCloudStream---rabbitMq下配置属性的默认值

基于该版本的配置Common:consumer:继承了commonproducer:继承了common包路径:org.springframework.cloud.stream.binder.rabbit.properties

2019-06-13 09:58:44 1767

原创 springCloudStream整合rabbitMq的简易DEMO

spring: cloud: stream: bindings: my_output: #自定义的输出通道 destination: zzz #交换机名 content-type: application/json my_input: #自定义的输入通道 destina...

2019-06-12 17:27:57 988

原创 mysql实战45讲 笔记锁

在RR模式下的加锁规则:锁是加在索引上的

2019-05-30 10:45:43 268

原创 mysql实战45讲 笔记order by的工作

order by: 使用explain后再extra 中有using index 表示使用了覆盖索引using filesort表示的就是需要排序,Using temporary 需要使用临时表分配一个内存sort_buffer用于排序,并不是所有的order by都需要排序的,其原因是原来的数据都是无序的。order by id 或者order by的字段与where中的字...

2019-05-29 10:37:32 282

原创 mysql实战45讲 笔记表空间收缩

alter table A engine=InnoDB 命令重建表

2019-05-29 09:08:36 165

原创 mysql实战45讲 笔记索引2

crc32()或md5()1.索引字段使用函数或计算不走索引 如: id+5=92.索引字段类型转换不走索引 如:id="1234"3.隐式字符编码转换导致不走索引:2张表编码utf8_general_ci和utf8mb4_general_ci ,在连表时产生的问题...

2019-05-28 13:33:22 117

原创 mysql实战45讲 笔记索引

2019-05-27 18:18:09 254

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除