自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 资源 (12)
  • 收藏
  • 关注

原创 云原生改造- istio (二)

前提基于内容的灰度发布,保证在chrome下可以访问V2版本,其他浏览器可以访问v1.

2023-06-28 11:19:22 644

原创 istio gateway学习

istio gateway作为网官,暴露80。验证集群内可以正常访问service服务。直接暴露80,任何域名都可以访问。service 部署。

2023-06-08 11:01:17 127

原创 云原生改造- istio(一)

istio 官网有bookinfo的案例, 但是这个案例过于繁琐,直接就可以运行,但是有些原理不是很清楚。spring-petclinic-msa是网上找到的一个k8s的一个java案例,通过spring-petclinic-msa改造成istio,可以运行的案例。改造后的是:service 对应两个deployment 一个是web-v1, 一个是web-v2. 并且做了负载均衡。1 搭建k8s初始服务,也就是让微服务运行在k8s服务器上,我已上传好文件,一个命令就可以部署。让它找到host地址。

2023-05-24 10:27:19 766

原创 K8s deploy 部署两个不同实例

3 在service type:web 这个很好理解,在deployment 统一打的type:web标签,在service 统一获取。其中web-v1 和 web-v2 是一个页面,只是页面颜色不同。2 镜像需要 1.0和2.0 需要打不同的镜像版本。1 type:web 需要同意打成同意标签。

2023-05-11 10:26:52 236

原创 k8s ingress controller 使用

http://demo.atguigu.com:31382/test.html 可以访问到test.html 内容了。两个service都是用ClusterIP部署的,集群外边是不能访问的,只能在集群内部访问。这个脚本可以直接在国内安装,已经替换ali镜像。一 安装Ingress controller。添加一个test.html 页面,内容随意。证明你已经安装成功。二 创建service deploy。2 进入nginx 目录。1 进入容器里,命令如下。三 创建ingress。

2023-04-13 11:07:42 367

原创 springboot 部署k8s(二)

springboot 部署到k8s 上。里面涉及了deployment, Service, NodePort.springboot 打包,到上传到docker images,然后拉取镜像到k8s上,可以正常访问。

2023-04-10 09:13:54 841

原创 springboot 部署k8s(一)

本系列教程将分2篇文章讲解,怎么部署springboot 到k8s 上。第一篇:springboot 准备,这里包括打包镜像。第二篇:springboot 镜像部署到k8s, 我们将使用deployment ,service 用最简单的方式deploy k8s.这里面springboot 已经可以打包镜像了,下一篇将部署到k8s.

2023-04-04 11:58:58 3436

原创 K8s PV PVC NFS 作为载体

群晖NFS K8s PV和PVC 绑定

2023-03-09 11:19:04 68

原创 ingress-ningx.yaml 国内安装

ingress-ngnix 国内阿里镜像安装步骤。

2023-02-21 13:39:34 1740

原创 图文讲解 -> 同步异步(非)阻塞

总结:外部顾客,服务员可以做其他事情, 都不需要等待。总结:外部顾客可以做其他事情, 服务员必须等待。总结:外部顾客必须等待,服务员可以做其他事情。总结:外部顾客和服务员都要等待。

2023-01-10 10:36:12 57

原创 【Sentinel 预热加载】

Warm Up:根据coldFactor(冷加载因子,默认3)的值,从阈值/codeFacotor,经过预热时长,才达到设置的QPS阈值官网手册地址:flow-control概念:Warm Up方式,即预热/冷启动方式。该方式主要用于系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动",让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮的情况。

2022-12-23 22:53:21 464

原创 Redisson 实现布隆过滤器

Redis 实现布隆过滤器的底层就是通过 bitmap 这种数据结构,至于如何实现,这里就不重复造轮子了,介绍业界比较好用的一个客户端工具——Redisson。Redisson 是用于在 Java 程序中操作 Redis 的库,利用Redisson 我们可以在程序中轻松地使用 Redis。对于分布式应用, 我感觉比较好的解决方案,在redis上 用用Redisson 也是不错的方案。下面我们就通过 Redisson 来构造布隆过滤器。

2022-11-14 11:26:15 1532

原创 实现SQL语句动态表名的动态替换

多租户业务场景,使用物理隔离实现。

2022-11-07 11:35:18 1390

原创 mybatisplus多数据源配置---dynamic

多数据源开发

2022-11-07 10:39:00 710

原创 Log 利用装饰模式 打印增强

增强型Log 打印

2022-10-18 11:18:10 316

原创 web 责任链 简码

责任链简码

2022-10-18 11:05:39 64

原创 一个故事解释Spring AOP 相关概念

从前有一个叫爪哇的小县城, 在一个月黑风高的晚上, 这个县城中发生了命案. 作案的凶手十分狡猾, 现场没有留下什么有价值的线索. 不过万幸的是, 刚从隔壁回来的老王恰好在这时候无意中发现了凶手行凶的过程, 但是由于天色已晚, 加上凶手蒙着面, 老王并没有看清凶手的面目, 只知道凶手是个男性, 身高约七尺五寸. 爪哇县的县令根据老王的描述, 对守门的士兵下命令说: 凡是发现有身高七尺五寸的男性, 都要抓过来审问. 士兵当然不敢违背县令的命令, 只好把进出城的所有符合条件的人都抓了起来.概念解释 热身运动。

2022-09-20 11:06:37 86

原创 Cglib 代理

为了深入研究spring aop 动态代理打下基础。cglib必须实现的类。

2022-09-20 09:39:12 100

原创 JDK动态代理用法

比较好的写法是写在接口实现类里,这样测试JDK代理比较干净,整洁。JDK 动态代理必须实现的接口。最后测试类比较简单,明了。

2022-09-20 09:16:26 114

原创 StampedLock 使用案例

【代码】StampedLock 使用案例。

2022-08-30 13:53:52 257

原创 ReentrantReadWriteLock 写锁降级成为读锁

上面的例子oracle 官方的例子,当在多线程并发的时候,如果写锁处理完业务后,直接释放, 会有其他write锁锁定资源并修改,如果想在写锁释放完以后,还想用修改后的数据, 需要把写锁降级为readlock,继续使用。...

2022-08-29 11:24:30 332

原创 java 强引用和弱引用

4)如果一个对象,没有一个引用来指向他,那么这个引用可以被垃圾回收。(1)创建一个对象,并将对这个对象的引用赋值给o,这样就是强引用了。(2)当内存空间不足的时候,虚拟机宁愿抛出错误,也不愿意回收内存。(3)可以使用 o = null;(1)弱引用和软引用的区别在于其拥有更短的生命周期。(2)不管当前的内存空间是否足够,都会回收他的内存。(3)偶尔才使用到的对象,我们使用弱引用的机制。(2)当内存空间不足的时候,就回收这些对象。(1)软引用可以实现内存敏感的高速缓存。...

2022-08-08 10:49:24 1602

原创 JUC LongAdder高性能

LongAdder基本思路就是分散热点,将value分散到各自cell里面,不同线程会命中不同槽中,每一个槽中都是cas乐观锁,达到分而治之。核心思想就是把之前的AtomicLong一个value更新压力分散到不同槽里面。在Jdk8以后推荐使用LongAdder替代AtomicLong,减少等待。为什么LongAdder这么快。......

2022-08-01 11:20:03 113

原创 乐观锁 ABA问题及解决方案

乐观锁ABA问题及解决方案。

2022-07-26 11:31:53 906

原创 自旋锁 自己实现 CAS

自己手写代码实现自旋锁。

2022-07-26 09:48:56 116

原创 线程等待和唤醒 用法总结

wait notify

2022-07-05 22:27:42 115

原创 ReentrantLock 公平锁和非公平锁。

买票程序 ReentrantLock lock = new ReentrantLock(true); 公平锁 ReentrantLock lock = new ReentrantLock(); 非公平锁

2022-07-04 19:42:23 435

原创 异步编程CompletableFuture系列3 接口合并

方法合并 两个异步 获取结果合并

2022-07-04 09:02:39 208

原创 异步编程CompletableFuture系列2 计算结果进行消费

代码

2022-07-04 07:52:46 111

原创 CompletableFuture 案例分享

CompletableFuture stream 用法

2022-07-03 16:00:17 167

原创 架构设计总结

N+1设计:系统中的每个组件都应做到没有单点故障;回滚设计:确保系统可以向前兼容,在系统升级时应能有办法回滚版本;禁用设计:应该提供控制具体功能是否可用的配置,在系统出现故障时能够快速下线功能;监控设计:在设计阶段就要考虑监控的手段;多活数据中心设计:若系统需要极高的高可用,应考虑在多地实施数据中心进行多活,至少在一个机房断电的情况下系统依然可用;采用成熟的技术:刚开发的或开源的技术往往存在很多隐藏的bug,出了问题没有商业支持可能会是一个灾难;资源隔离设计:应避免单一业务占用全部资源;架构应能水平扩展:系

2022-07-01 21:00:49 107

原创 限流技术分析

限流在秒杀活动中,总计有 100 个特价商品,且每个商品的价格都非常低,活动计划于 10 月 10 日晚上 10 点 10 分 0 秒开启。当时,我们的服务器架构图如下,所有客户端的 API 请求先进入 1 个 Nginx 层,再由 Nginx 层转发至网关层(Java,使用 Spring Cloud Zuul),最后转发至后台服务1(Java)。预测到秒杀开始那一瞬间会有海量用户涌入,致使系统无法处理所有用户请求,为保障服务器承受住大流量,我们只能通过限流的方式将部分流量放入后台服务中。那什么是限流呢?一

2022-06-23 10:11:31 206

原创 mysql docker 主从快速搭建

mysql master docker 主从

2022-05-10 16:59:13 95

原创 redis 主从 哨兵

redis docker 主从复制 哨兵模式

2022-05-04 14:08:44 79

原创 @import 用法

普通类 实现了ImportSelector接口的类 实现了ImportBeanDefinitionRegistrar接口的类普通类package hdu.gongsenlin;public class NorMal { private String msg; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; }}import org

2021-10-18 22:22:26 155

原创 K3S 安装及应用 真的有K3S

curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh -卸载卸载se..

2021-07-13 20:55:54 563

原创 手写promise

自己实现promise功能const PENDING = 'pending'const FULFILLED = 'fulfilled'const REJECTED = 'rejected'function Promise(executor) { var _this = this this.state = PENDING; //状态 this.value = undefined; //成功结果 this.reason = undefined; //失败原因

2021-05-19 19:21:59 89

原创 promise 多个请求调用

请求1 ->请求2->请求3 let p = new Promise((resolve,reject)=>{ setTimeout(function(){ resolve('aaa') }, 1000); }); p.then(value=>{ return new Promise((resovle,reject) => { setTimeout((.

2021-05-10 11:21:35 751

原创 异步编程CompletableFuture实现高并发系统优化之请求合并

高并發請求 請求合并一个用户请求到后台,没有立即去处理,而是把请求堆积到队列中,堆积10毫秒的时间,由于是高并发场景,就堆积了一定数量的请求。定义一个定时任务,把队列中的请求,按批处理的方式,向后端的Redis缓存,或者数据库发起批量的请求,拿到批量的结果,再把结果分发给对应的请求用户。对于单个用户而言,他的请求变慢了10毫秒是无感知的。但是对于我们系统,却可以提高几倍的抗并发能力。这个请求合并,结果分发的功能,就要用到一个类CompletableFuture 实现异步编程,不同线程之间.

2021-03-10 09:40:00 1286 2

原创 Springboot 流程原理

refresh 》 处理bean工厂的后处理器 》 bean定义注册器后处理器 》 解析配置类 》 处理Import注解引入的AutoConfigurationImportSelector 》 读取META-INF/spring.factories下申明的配置类

2021-02-25 15:24:07 118

万能android adatper

万能adpter基类,以后再有新的view ,不用在新建adapter,非常方便,代码比较全,下载之后就可以用。

2014-09-23

Google map 开发实例

google map 开发实例,感觉不错,里面有详细的代码。

2014-08-26

java 读取Excel的包和方法

网上读取Excel,大多数都是poi,等到下了感觉回报异常,经过反复检查,发现缺一个包。里面包含所用的jar 和java文件。可以直接读取Excel2007

2010-05-31

kettle 读取job 和流程

自己照着写的 里面有kettle 常用的包

2010-04-12

struts2.1.8 json

自己开发的 访MSN QQ的自动弹出消息 可以利用数据的改变自动提示消息 在网上都是静态的 用消息json 插件自己写的

2009-11-10

struts2.1.8 jquery json jax

struts2.1.8 最新注册 运用了jquery json 登陆验证 比较实用 每个项目估计都要用到 里面代码很全 包也加上了 jquery也有 拿来就可以用

2009-11-06

apache和tomcat整合配置文件

一些配置文件 估计在整合的时候比较有用 出错的时候便于查看

2009-09-08

apache2.0.58 和mod_jk-apache-2.0.58.so

整合apache和tomcat的 mod_jk

2009-09-08

访MSN QQ 弹出消息的代码

公司以前开发出来的 MSN QQ弹出的消息 在开发以前找了好多资料 基本都是静态的 动态没找到 自己就改了一下

2009-07-16

struts+jdbc+dwr 实现googlemap功能

本人在公司开发过的googelmap 就是一点击出图标 公司电话 公司名称的那种 感觉挺好 里面有代码 包括用到的包

2009-04-20

动态树形 里面包括数据库 可以扩展权限

自己写的动态树形 可以加权限 项目有代码 比较实用 开发的时候费了好多天 拿出来一起分享

2009-04-07

struts2+spring+ibatis

自己在项目里弄的 感觉挺好的 分页分的 挺完美的 但是删除有毛病 把int改成bean就能运行了

2009-04-07

空空如也

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

TA关注的人

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