首页
学习
活动
专区
工具
TVP
发布

姜同学

专栏作者
75
文章
60348
阅读量
14
订阅数
MySQL版本数据备份与还原方案
在一个风和日丽的下午,姜同学正在研究动态规划算法,突然被临时传递了一个需求,大致就是测试的同学想要做自动化测试。具体的细节略过,姜同学认为需求还比较合理,可以做。要求如下: ● 无损备份线上数据库到文件 ● 支持表级备份 ● 支持字段脱敏 ● 支持版本管理 ● 支持一键还原
姜同学
2022-12-08
7280
使用Jenkins进行自动构建
介绍自动构建之前先来聊一聊什么是手动构建,姜同学作为一名开发人员我们写完代码之后会把代码提交到Git上,然后push到我们自己的远程仓库,比如gitlab。如果姜同学的工作只是写写代码,push结束之后你的一个阶段工作也就结束了,但是这时候最新的代码还仅仅是保留在了git上,没有以应用的形式展现出来,无法体现你的工作展现你的价值。so,以java代码为例姜同学还要使用最新的代码打个包,然后放到服务器上,停掉旧的应用,启动新的应用,假设一个集群有三个应用实例,滚动更新,上面的步骤姜同学还要在重复两遍。以上的整个步骤便是手动构建,那么什么是自动构建呢,就是让另外一个应用代替姜同学完成上面的步骤,当然写代码除外-_-。 代替姜同学便是Jenkins。
姜同学
2022-12-08
1.1K0
制作一个Http动态数据源
前一段时间姜同学在做一些传统的企业信息化建设,也就是搭建一个新的平台去整合企业下诸如OA,CRM,PLM,U8等一系列数据独立的系统,这个系统除了具有传统的BI系统将整合的数据用作上层系统的展示之外,还可以对外提供HTTP接口用来反哺其它的子系统,所以我们称它为数据中台。
姜同学
2022-12-08
3840
SpringBoot我是这么用的
从Spring的配置文件注册Java Bean在到Spring2.5之后支持注解配置Java Bean,现在SpringBoot也使用Spring6.0来到了3.0版本,当然虽说是来了,但是SpringBoot3.0放弃了Java8所以姜同学还没法再生产环境验证它,所以本文是基于Spring官网的GA版本讲解了。
姜同学
2022-12-08
6490
分享我遇到OOM时的排查过程
常言道常在河边走,那有不湿鞋。作为一名Java开发人员,遇到OutOfMemoryError那可是在正常不过了,无论是别人写的代码导致的,还是别人写的代码导致的,总之不是我干的,你把Git记录拍在我脸上也不是我干的。遇到OOM不要慌,看一下姜同学是怎么解决的。
姜同学
2022-12-08
1.1K0
Sentinel + Gateway 在网关统一流控
很久之前,姜同学写过一篇使用Hystrix对微服务进行保护,里面介绍了一些Hystrix是怎么对服务器的资源进行限流的,但是令人遗憾的是,Hystrix在github上的仓库已经停止维护了,但不可否认的是Hystrix就算是在今天依旧强大,它依然是微服务弹性架构的保障。强大归强大,一些不好用的缺点姜同学还是得拿出来说说。
姜同学
2022-12-08
9540
Spring的事务我是这么玩的
在Spring的官方文档的Features里面Spring的事务作为数据访问的特性被特殊的列了出来,那么Spring的事务和我们平常使用MySQL时手动开启的事务有什么区别呢,其实本质上是没有区别的,只是我们手动的开启事务,提交事务/回滚事务的操作由Spring替我们完成了,仅仅这些还是不够的,Spring在这些基础的操作上也针对数据库的事务做了一些增强。
姜同学
2022-12-08
3530
线上cpu使用率100%如何排查
自从使用滴滴开源的夜莺监控系统之后,偶尔会收到cpu报警的邮件,姜同学分析了一下原因大多都是java进程进入了循环或是死锁而得不到释放造成的,接下来姜同学就模拟下cpu使用率超过100%以及两种方案的排查过程。
姜同学
2022-10-27
1.8K0
使用Future
在普通的Web项目开发过程中如果一个接口需要处理的任务比较多响应比较慢,就会很影响体验。我们通常的做法都是会新建一个线程去异步执行耗时的任务,以得到快速的响应。我们来回顾一下Java中创建线程的三种方式。
姜同学
2022-10-27
2640
Debezium使用指南
实时数仓的第一步便是变更数据捕获(CDC),Debezium就是一款功能非常强大的CDC工具。Debezium是构建于Kafka之上的,将捕获的数据实时的采集到Kafka上
姜同学
2022-10-27
2.7K0
灰度发布
介绍灰度发布流程之前我先一句话介绍一下什么是灰度发布。灰度发布就是,线上app无需停机就可以保证运行的是经过测试的稳定版本,且我们在冒烟测试时也不会影响到线上App的运行。
姜同学
2022-10-27
1.7K0
在Linux系统上搭建内网VPN
由于疫情的影响,姜同学要居家办公啦,远程桌面如teamViewer,向日葵之类用的总是不爽,姜同学虽然水平不咋地,但是怎么说也是一名程序员,该有的的极客精神还是有的,so姜同学决定在公司内网搭建vpn,快乐自己的同时也能方便其它同事,这可能就是程序员的快了吧。 于是姜同学便是踏上了漫漫的google之旅,功夫不负有心人,姜同学发现了openvpn这款产品以及Nyr大佬在github上开源的openvpn搭建脚本。
姜同学
2022-10-27
9.3K0
Vue组件通信的三种方式
我们都知道Vue是一款渐进式的js框架,在开发大型应用的时候,Vue官方推荐你使用组件化进行开发,即每一个页面都是一个组件,一个组件内包含了一个或多个组件,下面举一个简单的例子描述一下Vue中的组件。
姜同学
2022-10-27
4450
RocketMQ生产消费指南
RocketMQ是一款可靠性非常强的一款消息中间件,概念相比如RabbitMQ来讲也相对简单,只有一个生产消费的概念并不涉及多种消费订阅模式.
姜同学
2022-10-27
3450
FileBeat收集Nginx的日志到ELK中进行可视化分析
将SpringBoot应用的日志输出到Logstash之后,所有的应用日志都可以使用使用Kibana进行可视化的检索,使用起来还是蛮香的,Kibana用着用着之后发现他的强大远不止于日志检索,因为他拥有一个可视化分析的功能.
姜同学
2022-10-27
3180
使用Docker快速搭建ELK日志分析平台
Docker是目前非常主流的容器化的虚拟技术,这个虚拟又与VMware或者是Hyper-v搭建的虚拟机不同,虚拟机是在宿主机的内核已经操作系统系统之上在虚拟出一套操作系统,而Docker这种容器化的技术是基于操作系统的namespace直接使用宿主机的操作系统去构建需要隔离的应用,中间省去了再去虚拟化一套操作系统的过程,或许有人会担心使用如果Docker的容器挂掉了之后,数据会丢失的问题,这你大可不必的过多担心,Docker本身实现了数据卷的工程,可以将容器内部的目录挂载到宿主机之上,只要你的宿主机还健康,那么上面的数据就不会丢失.甚至是当你重新创建一个容器之后你将新容器的数据目录也挂载到了之前容器的目录上,数据都可以复用,但我不建议你这样哦~
姜同学
2022-10-27
1.9K0
使用docker stack编排你的容器集群
当你没有刚刚学习Docker的时候有没有想过,docker容器是隔离滴,那么网络自然也是隔离滴喽,网络都隔离喽,容器是怎么通信的呢,在原始的Docker版本呢编写Dockerfile时可以使用link关键字指出要通信的容器,或者在docker run的时候通过–link指定要通信的容器,不过Docker官方都认为这个关键字有点不太好用所以过时了~再后来呀我们可以使用Docker network create进行自定义网络,容器想要通信的话可以使用network网络类型直接使用本机网络运行容器,不过这个同一个镜像在一台宿主机就只能运行一个容器喽,容器最重要的隔离特性就没有意义了~但是不要慌我们还可以使用Docker swarm提供的overlay网络类型,使用起来也是Very的easy呀~
姜同学
2022-10-27
5520
使用Docker-compose编排你的容器
我们都知道使用Dockerfile可以将我们的springboot的应用构造成一个镜像,然后我们通过docker run 或者docker serice create就可以将镜像运行成为一个独立的容器,但是你没有想过一个微服务的应用可是由好多个springboot应用组成的呢,你难道要一个一个run吗一个合格的工程师当然不会让这种重复机械的事情发生第二次,对于这种重复机械的工作我们写一个shell脚本不就好啦把多次run的命令全都放在一个脚本里每次更新我们运行这个脚本就好啦.这么致命的缺陷难道docker就没有发现吗,怎么可能,人家不仅发现啦~还给我们提供了更好用的脚本,那就是接下来要说的docker compose
姜同学
2022-10-27
6360
使用Docker将你的应用制作成镜像
将一个SpringBoot的应用制作成镜像也是Very easy哦,前提是你要了解一下Docker一些基本命令的使用,Docker命令的介绍在菜鸟教程里面写的那些命令已经很够用了,我就不在介绍啦咱们直接实战将应用制作成镜像,然后将而容器启动起来你只需要将你的应用打成jar包然后编写Dockerfile就好啦~
姜同学
2022-10-27
8830
手撸一把分布式锁
使用Java提供的synchronized关键字简简单单的就为我们的奖品兑换程序添加了一把锁,同步的只有一个线程可以对我们的数据库进行减库存的操作,安全的不行,但是姜同学突然想到这个奖品兑换的服务是部署在两台服务器的是分布式的,因为synchronized是基于JAVA虚拟机的进程锁,当我们的系统变为分布式以后如果还是使用这种方式可是要出问题的哦。
姜同学
2022-10-27
1820
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战,赢鹅厂证书、公仔好礼!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档