自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tom有cat

积跬步,以至千里

  • 博客(126)
  • 资源 (3)
  • 收藏
  • 关注

原创 synchronized关键字再回顾-脏读-可重入-锁升级

锁原理,锁升级

2022-05-06 12:11:22 216

原创 ThreadLocal源码

为什么ThreadLocal存储的是当前线程的数据???

2022-05-05 17:00:51 421

原创 rabbitmq几种发送消息模式-快速入门

概念rabbitmq概念比较多,这里说几个重要的routing key: 消息体的一部分 发送消息时指定,用于队列和交换机绑定关系进行匹配。exchange 交换机:rabbitmq发送消息直接发送到交换机,由交换机发送消息给队列。queue:用于存储消息,交换机发送的消息会进入这里面,在创建的时候可以指定消息持久化,设置durable属性为TRUE。bingKey 用于绑定交换机和队列的关系,在项目初始化的时候声明,bindkey决定了通配符的消息进入哪些队列通配符:支持 *和#

2022-04-12 16:15:38 4967

原创 使用Dockerfile 发布项目Springboot示例

使用Dockerfile部署springboot项目

2022-04-02 14:30:54 722

原创 sentinel 流控规则

qps限流和并发线程数限流区别

2022-04-01 14:58:09 313

原创 使用sentinel实现服务监测

sentinel简单实现服务的监控github地址:https://github.com/weiwensi/cloud-parent.gittag :sentinel-init

2022-04-01 14:27:27 543

原创 nacos 命名空间与分组配置

namespace命名空间和分组

2022-04-01 10:24:05 4849

原创 使用nacos作为配置中心

nacos作为配置中心入门

2022-04-01 00:54:31 393

原创 使用openfeign 进行远程调用

基于openfegin的微服务调用

2022-04-01 00:10:24 799

原创 实现nacos服务注册

nacos实现服务注册

2022-03-31 13:19:43 1406

原创 Oracle 按照父子级排序

select *from oes_stage_def where id=#{id} start with depend_on_id is null connect_on_id

2022-03-08 14:33:28 591

原创 【基于二进制的&运算的权限设计】

先说结论,基于2的倍数的数字相加 ,当一个数与改累加的和做与运算,如果得到的结果是他本身说明该值在这个累加的所有的值中的一项。先来看一组数据1,2,4,8,16对应的二进制分别是0001,0010,0100,1000,10000(1+2+4+8+16)&1=1(1+2+4+8+16)&2=2(1+2+4+8+16)&4=4(1+2+4+8+16)&16=16(1+8)&4=0(1+4+8)&16=0之前的..

2022-02-17 15:24:54 666

原创 静态代码块和spring注入的先后顺序

1.哪个优先?静态代码快的加载顺序优先于spring的容器的注入比如:我有一个类@Componentpublic class TestService{private Jedis jedis;static{RedisService redisService=ApplicationContentUtil.getBean(RedisService.class);jedis=redisService.getResource();}public void incr(){//

2021-09-17 10:49:28 2379

原创 navicat oracle设置主键自增

#创建一个自增的序列create sequence demo_seq increment by 1 start with 1 nomaxvalue nominvalue nocache;#给表创建触发器create or replace trigger demo_seq before insert on TEST_USER for each row begin select demo_seq.nextval into :new.id from dual; end;...

2021-06-08 18:33:55 1443

原创 python入门 python安装mysqldb Python version 2.7 required, which was not found in the registry

安装的时候报错Python version 2.7 required, which was not found in the registry执行一下脚本import sysfrom _winreg import *# tweak as necessaryversion = sys.version[:3]installpath = sys.prefixregpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)insta..

2021-04-07 11:08:12 130

原创 python入门1基础语法

1.变量类型# coding=UTF-8counter = 100 # 赋值整型变量miles = 1000.0 # 浮点型name = "John" # 字符串print counterprint milesprint name2.运算符运算# coding=UTF-8#初始化ab,c的值a=21b=10c=0c=a+bprint cc=a-bprint cc=a*bprint cc=a/b #默认保持整形向下取整print c#对abc

2021-04-07 10:58:16 129 1

原创 python入门2类

员工类# -*- coding: UTF-8 -*-class Employee: '所有员工的基类' empCount = 0 def __init__(self, name, salary): self.name = name self.salary = salary Employee.empCount += 1 def displayCount(self): print "Total E.

2021-04-07 10:58:00 130

原创 队列同步器-AQS-接口与示例

队列同步器AbstractQueuedSynchronizer是用来构建锁或者其他同步组件基础的框架,它使用了一个int成员表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。 使用方式:继承 提供的三个方法:getState(),setState(int newState),compareAndSetState(int expect,int update)。这三个方法能够保证状态的改变是安全的。子类推荐被定义为自定义同步组件的静态内部类,同步器自身...

2021-03-24 14:30:02 190

原创 redis 常用数据结构 lists总结

简介Redis lists基于Linked Lists实现。这意味着即使在一个list中有数百万个元素,在头部或尾部添加一个元素的操作,其时间复杂度也是常数级别的。用LPUSH 命令在十个元素的list头部添加新元素,和在千万元素list头部添加新元素的速度相同。那么,坏消息是什么?在数组实现的list中利用索引访问元素的速度极快,而同样的操作在linked list实现的list上没有那么快。1.基本特性具体的命令这里不做描述请查询官方文档redis可以向list的左边(lpush)或

2021-01-25 17:46:23 147

原创 注册中心nacos的简单应用

1. Nacos概述官方地址:https://nacos.iogithub地址:https://github.com/alibaba/nacos面试题:微服务间远程交互的过程? 先去注册中心查询服务的服务器地址 调用方给对方发送http请求 1.1. 什么是 NacosNacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易..

2020-12-12 17:08:19 475 2

原创 一个 @Transactional(rollbackFor = Exception.class) 引发的问题

最近在做一个订单审核类需求,类似这样创建订单, 如果库里有那么直接对用户进行支付。 1.拆创建订单 2.进行订单分润预留 3.进行订单审核我的整体开发流程大概如上面三个,其中第三步是使用restTempLate远程调用后台管理系统接口。在调远程接口的时候我对传过来的订单进行校验,如果不存在那么返回给app端一个审核的结果。。整个过程如下: @Override @Transactional(rollbackFor = Exception.c...

2020-06-12 19:29:27 788

原创 记一次策略模式在项目中的应用

前面一篇文章中提到了策略模式的demo但没有实际进行项目的整合。正好这两天做项目遇到了一个可以使用这个模式的需求。分享一下。需求如下:这是个在app进行的统计,每个项目都有这样的统计,统计每个用户在不同项目下订单的数量。我的想法是每个项目给前端返回一个List<String>比如“全部:111”“通过:2”“撤销:3”因为每个项目的统计可能不一样,如果只是返回每个字段对应的数据的话app发版频率可能就比较频繁。整体需求大概是这样。每个项目对应一个策略。

2020-06-03 20:35:18 293

原创 org.apache.rocketmq.remoting.exception.RemotingConnectException rocketmq控制台网络连接异常

使用docker安装rocketmq 控制台, 控制台报了如上面异常信息上面事没有问题的,已经解决,店家添加或者其他操作都会弹出网络链接异常。这是由于控制台连接nameservere连接异常,由于之前我的这个控制台是好好的,很久没有用了,不知怎么的nameserveradress变了,创建rocketmq容器时需要指定其内部的nameserver ip,查看IP的方法:进入容器 docker exec -it rmqnamesrv bash查看ipip cat /etc/hosts...

2020-05-27 18:30:51 8155

原创 设计模式-策略模式的应用

对于策略模式的各种定义以及UML图我就不给出了,网上前篇一律。下面有一个自己写的小demo分享一下1.定义策略接口package com.leke.springsecurity.design.stratety;/** * @classname StrInt * @description * @date 2020/5/21 10:30 * @created by weiwensi */public interface Strategy { public void doSt

2020-05-21 10:50:58 176

原创 git删除本地和删除远程分支

查看所有分支git branch -a 查看当前所在分支git branch 删除本地的wws分支git branch -d weiwensi 或者git branch -D wws 删除远程的wws分支git push origin --delete wws

2020-05-20 14:57:21 172

原创 文件删除方法file.delete();删除不了文件

文件删除如果先删除文件后关闭文件流,就会出现文件删除不了的情况,我原先的代码 assert file != null; file.delete(); try { if(outStream!=null){ outStream.close(); } } catch (IOException e) { lo

2020-05-12 20:03:45 1948

原创 使用redis的bitmap实现用户点赞功能

最近有一个需求,是一个话题可以被评论,然后每个评论下都可以被回复,每个回复都有自己的回复数量,评论有评论的点赞数和回复数量,具体的方案如下:对于点赞这样的功能,操作非常的频繁,如果单纯的考虑数据库肯定是最low的方式。还有需要考虑的,哪个用户点赞了,对哪个评论点赞了,这两点非常重要。需要维护的数据用户的id,评论的id,以及点赞的结果。这里我采用了redis的bitmap数据结构。...

2020-04-24 19:59:41 2590 12

原创 The bean 'xxxImpl' could not be injected as a 'xxx'because it is a JDK dynamic proxy that implements

服务在启动的时候报错The bean 'lkFpAllotServiceImpl' could not be injected as a 'com.dong9.leke.allot.service.impl.LkFpAllotServiceImpl' because it is a JDK dynamic proxy that implements: com.dong9.leke.al...

2020-04-13 13:52:05 2091 1

原创 Netty框架学习02-TCP粘包/拆包解决之道

粘包,拆包说明TCP是个流的协议,就是没有界限的一串数据。他底层不了解业务数据的具体含义,他的数据数据传输的划分是根据TCP的缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓 的TCP粘包拆包。下面做出详细的说明。 ...

2019-11-25 14:15:46 272

原创 Netty框架学习01-Netty服务端开发和Netty客户端开发

环境准备依赖: <!-- https://mvnrepository.com/artifact/io.netty/netty-all --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all...

2019-11-22 16:24:07 503

原创 nio学习03-NIO的非阻塞式网络通信-NIO核心Selector

IO,NIO对比 传统的IO流都是阻塞式的。也就是,当一个线程调用read()和write()方法时,该线程被阻塞,直到有一些数据被读取或者写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行IO操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当服务器端需要处理大量客户端时,性能急剧下降。 nio是非阻塞模式的。当线程从某通道进...

2019-11-20 15:16:07 191

原创 nio学习02-通道Channel

1.Channel来看一下Channel的接口package java.nio.channels;import java.io.IOException;import java.io.Closeable;public interface Channel extends Closeable { public boolean isOpen(); pu...

2019-11-20 11:22:39 6377

原创 nio学习01-缓冲区

1.概念缓冲区是包在一个对象内的基本数据元素数组。Buffer类似相比一个简单的数组优点是它将关于数据的数据内容和信息包含在一个单一的对象中。Buffer类似及它专有的子类定义了一个用于处理缓冲区的api。他的本质是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成nio对象,并提供了一组方法,用来方便访问这块内存jdk中的Buffer抽象类如下图:2.缓冲区...

2019-11-18 19:19:34 190

原创 RPC原理的学习

文章摘自dubbo官方文档的博客。http://dubbo.apache.org/zh-cn/blog/rpc-introduction.html什么是RPC? RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B...

2019-11-18 15:50:18 149

原创 EMQ服务器学习2 mqtt和springboot的整合实现消息推送和发送

注:本次demo参考博客https://blog.csdn.net/zhangxing52077/article/details/80568244并在原文的基础上进行了改造,以及加上一些自己对代码设计方面的一些理解。代码放在了github上 地址:https://github.com/wws11/springboot-mqttdemoEMQ服务器为我们提供了一个控制面板界面,在本地访问...

2019-11-16 13:41:28 3320 4

原创 EMQ服务器学习1 mqtt的基础理论知识

最近有时间,研究了一下mqtt消息推送的技术,这个技术在我们的项目中也用到了,但是对于其原理不是很理解,花时间学习了一下。EMQ官方地址:https://www.emqx.io1.mqtt服务器的安装服务器下载地址:https://github.com/emqx/emqx/releases或者emqx.io注意:mq服务器有企业版和broker版本,选择broker版本进行下载。...

2019-11-16 11:33:49 809

原创 Java 代码优化 -避免创建不必要的对象

《effective Java 》书中第六条写道避免创建不必要的对象,再次做一个总结总结如下几点:1.避免创建不必要的对象,比如字符串的创建不使用new方式2.通过静态工厂方法可以创建不必要的对象3.对象的复用 如果一些对象可以被复用看下面 的一个例子有下面一个正则校验数据的格式static boolean isRomanNumeral(String s) { ...

2019-11-11 17:09:40 607

原创 Java8的骚操作,获取lambda对象属性值

实现效果通过传入一个lambda表达式获取这个字段的属性名得到的结果:name实现方式:定义一个Function类型的接口实现序列化代码如下:package com.soecode.lyf.demo.test.java8.reflect;import java.beans.Introspector;import java.io.Serializable;imp...

2019-11-11 11:35:39 7234

转载 Java 序列化 机制writeReplace的方法探究

如果一个序列化类中含有Object writeReplace()方法,那么实际序列化的对象将是作为writeReplace方法返回值的对象,而且序列化过程的依据是实际被序列化对象的序列化实现。People定义了writeReplace方法,并且自定义了writeObject/readObject方法。package com.soecode.lyf.demo.test.io;impor...

2019-11-11 11:28:48 5318

原创 java8 函接式口学习-Predicate,Consumer,Supplier

Predicate这个接口可以用于做一些过滤操作,它的源码如下:@FunctionalInterfacepublic interface Predicate<T> { boolean test(T t); default Predicate<T> and(Predicate<? super T> other) ...

2019-11-09 16:04:07 514

redis 的bitmap点赞功能的应用源码.zip

使用redis实现用户的点赞统计,具体内容,博客里有,链接https://blog.csdn.net/qq_35410620/article/details/105738425

2020-05-07

effective java 第三版.pdf

effective java 第三版pdf,最新的版本,java8的一些特性都有系统的概述,很不错,需要的下载

2019-12-14

elasticsearch-6.7.2.zip

elasticsearch6.7.2zip安装包,提供给有需要的人,

2019-07-25

空空如也

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

TA关注的人

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