- 博客(175)
- 资源 (12)
- 收藏
- 关注
原创 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
原创 图文讲解 -> 同步异步(非)阻塞
总结:外部顾客,服务员可以做其他事情, 都不需要等待。总结:外部顾客可以做其他事情, 服务员必须等待。总结:外部顾客必须等待,服务员可以做其他事情。总结:外部顾客和服务员都要等待。
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
原创 一个故事解释Spring AOP 相关概念
从前有一个叫爪哇的小县城, 在一个月黑风高的晚上, 这个县城中发生了命案. 作案的凶手十分狡猾, 现场没有留下什么有价值的线索. 不过万幸的是, 刚从隔壁回来的老王恰好在这时候无意中发现了凶手行凶的过程, 但是由于天色已晚, 加上凶手蒙着面, 老王并没有看清凶手的面目, 只知道凶手是个男性, 身高约七尺五寸. 爪哇县的县令根据老王的描述, 对守门的士兵下命令说: 凡是发现有身高七尺五寸的男性, 都要抓过来审问. 士兵当然不敢违背县令的命令, 只好把进出城的所有符合条件的人都抓了起来.概念解释 热身运动。
2022-09-20 11:06:37 86
原创 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
原创 ReentrantLock 公平锁和非公平锁。
买票程序 ReentrantLock lock = new ReentrantLock(true); 公平锁 ReentrantLock lock = new ReentrantLock(); 非公平锁
2022-07-04 19:42:23 435
原创 架构设计总结
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
原创 @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
java 读取Excel的包和方法
2010-05-31
struts2.1.8 jquery json jax
2009-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人