自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Linux---把jar包变成docker镜像并部署运行

5,启动镜像服务:docker run --name service_edu -p 8080:8080 -d service_edu:1.1。3,生成docker镜像:docker build -t service_edu:1.1 . (最后还有一个空格和一个点)1,在jar包的同一目录创建一个Dockerfile文件:vim Dockerfile。# 将本地的JAR包复制到容器的/app目录下。# 暴露应用的端口(根据你的应用需要修改)4,查看镜像:docker images。

2024-03-30 20:43:29 680 1

原创 maven执行package和install的时候报错

报了如下错误:Could not resolve dependencies for project。到其依赖的模块install时又报了如下错误:Unable to find main class。解决办法:在common的pom文件添加如下代码,将不是web工程的设置跳过。原因:package的这个模块依赖了其他的模块。解决方法:先到其依赖的模块执行install。原因:这是common包,没有写主类。

2024-03-30 20:25:07 639 1

原创 StringTabale

x.intern(),会尝试在StringTable里创建一个key为"abc"的对象,若已有,则返回StringTable里的value所指的对象,若无,则在StringTable里创建一个key为"abc"的对象,value的指向与x相同。//堆里创建"ab",StringTable创建"a"、"b"//在StringTable里创建3个对象,key分别为"a"、"b"、"ab"

2024-03-26 22:10:46 542

原创 秒杀流程和常见问题

防止重复下单:订单号是唯一的,肯定能防止重复(插入时发现违反唯一性,报错,回滚),但可以做个优化,在redis查库存前,用redis的setnx命令把用户信息存入redis,设置失效时间,若发现已存在,直接返回。A. redis预减库存成功,但没把秒杀消息发出去,挂了,解决方式:再次上线时,重新加载库存信息到redis;2. lua脚本保证原子性:查redis,判断是否有库存,若有,则redis预减库存,执行3;B. redis预减库存成功,但消息发送失败,超过了重试次数,解决方式:补库存;

2024-03-25 21:12:57 209

原创 CountDownLatch和CyclicBarrier

CyclicBarrier(int parties, Runnable barrierAction),用于在线程到达屏障时,优先执行 barrierAction,方便处理更复杂的业务场景。当线程数量也就是请求数量达到我们定义的个数的时候,await()方法之后的方法才被执行。//阻塞主线程,state减为0时,唤醒主线程,执行后续操作。System.out.println("------当线程数达到之后,优先执行------");//让state减1。//让state减1。// 需要同步的线程数量。

2023-12-13 22:03:15 248

原创 DelayQueue

延迟队列需要到期时间升序入队,所以我们需要实现compareTo进行到期时间比较。take:获取队列优先级最高的任务,阻塞delay(任务到期时间)* 查看当前任务还有多久到期。//分别添加1s、2s、3s到期的任务。// 创建延迟队列,并添加任务。//阻塞获取最先到期的任务。// 取出任务并执行。

2023-12-10 21:49:27 727

原创 LinkedHashMap

LinkedHashMap的访问顺序比HashMap高效,遍历双向链表就行,而HashMap需要bucket。所以也可以用LinkedHashMap实现LRU缓存,队首的Node就是最久未访问的Node。但LinkedHashMap的插入性能会低于HashMap,因为需要维护双向链表。get一个key时,会把这个key对应的Node移动到链表末尾。LinkedHashMap可以按照插入顺序或访问顺序进行遍历。LinkedHashMap的Node之间通过双向链表连接。

2023-12-09 21:41:38 200

原创 JWT单点登录

使用jwt工具包返回token,前端把token保存到cookie里,并且设置拦截器,把token写入到request的header里,给后端发送请求时,后端可以从request的header中取到token,获取相关信息。.setExpiration(new Date(System.currentTimeMillis() + EXPIRE)) //过期时间。.setSubject("user") //随便写。.claim("id", id) //自定义。//主题部分,随便写几个。

2023-11-02 14:58:12 44

原创 redis和缓存注解

/ 配置序列化(解决乱码的问题),过期时间600秒。//value hashmap序列化。//解决查询缓存转换异常的问题。//key序列化方式。//value序列化。

2023-10-31 21:19:31 44

原创 逆向生成工具

/ lombok 模型 @Accessors(chain = true) setter链式操作。gc.setOutputDir("E:\\微服务项目\\service\\service_cms" + "/src/main/java");//生成实体时去掉表前缀。// 3、数据源配置。

2023-10-31 15:56:12 46

原创 swagger

description("本文档描述了课程中心微服务接口定义")@ComponentScan(basePackages = {"包名"} 去扫描。.title("网站-课程中心API文档")访问ip:端口号/swagger-ui.html。在别的模块下引入common记得加上。在common模块下配置。

2023-10-18 21:20:53 35

原创 JAVA反射

Method method = clazz.getDeclaredMethod(方法名, new Class[]{String.class, String.class}//参数类型Class列表)System.out.println("属性名:"+field.getName()+",属性类型:"+field.getType().getSimpleName());//获取方法参数类型。

2023-10-09 16:51:17 44

原创 jdk动态代理、cglib动态代理、静态代理

目标类和代理类实现同样的接口Service,把目标类作为参数传入到代理类。System.out.println("准备场地");System.out.println("找到代理");静态代理扩展性差,若接口扩展了额外方法,目标类和代理类都需要进行修改。System.out.println("唱完了");System.out.println("卖电脑");System.out.println("卖完了");jdk动态代理必须要接口,利用反射,性能会有一定影响,扩展性好;

2023-10-09 16:43:48 40

原创 sentinel

https://github.com/alibaba/Sentinel/releases下载jar包。@SentinelResource("goods") 将一个方法标记为"goods"资源。

2023-10-07 17:00:24 35

原创 gateway

/引入网关后,所有请求发送到网关就行了,比如localhost:10010/user/getName/1,网关会把请求发送给localhost:8000/userservice/getName/1。} // 验证参数authorization的值是否等于admin,是的话放行,否则拦截(禁止)请求。全局过滤器: // yml上的过滤器只能实现简单的逻辑,若要实现复杂的逻辑,可以自定义过滤器。 //这个不加可能会启动报错。@Order(-1) //越小优先级越高。

2023-10-05 16:20:17 35

原创 Feign远程调用

GetMapping("/provider/getMovie/{id}") //movieservice对应的controller里的地址。//即可调用movieservice的方法。@FeignClient("movieservice") //服务名字。启动类上加@EnableFeignClients注解。

2023-10-04 21:48:22 37

原创 nacos

import,然后子pom显示地去引入依赖,便继承了父pom中所有pom import的依赖。可以用来实现多继承,本来父pom中的依赖是不会被继承的,通过声明。pom import

2023-10-01 22:44:00 45

原创 eureka

defaultZone: http://ip地址:端口号/eureka/启动类上加@EnableDiscoveryClient注解。启动类上加@EnableEurekaServer注解。yml配置(注册中心和客户端都要配eureka)ip-address: ip地址。name: 起个名字。

2023-09-30 22:01:02 40

原创 父子工程依赖

子工程会继承父工程中的依赖,但若在外加了,则不会继承,若需要继承,需要手动写,但不用写版本号,默认和父工程依赖的版本号一致。

2023-09-30 16:49:42 61

空空如也

空空如也

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

TA关注的人

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