
javaweb入门学习
文章平均质量分 92
水中加点糖
天下武功,无坚不破,唯快不破。https://github.com/puhaiyang
展开
-
快速掌握MCP——Spring AI MCP包教包会
是一个开源的协议,可以让大模型应用更方便的集成各种数据源和工具,经典举例为:使用Type-C接口适配各种电器,使用统一的接口为大模型应用提供各种工具。MCP官网中将MCP主要分为:MCP Hosts、MCP Clients、MCP Servers、Local Data Sources、Remote Services这几个部分。同时,MCP官网还提供了多种语言的SDK,python、java、c#、typescript等都有。在本文中所使用到的框架为spring-ai。原创 2025-04-03 21:12:59 · 1212 阅读 · 0 评论 -
【即见未来,为何不拜】聊聊分布式系统中的故障监测机制——Phi Accrual failure detector
昨天在看tcp拥塞控制中的(Bottleneck Bandwidth and Round-trip propagation time)算法时,发现了这一特点:在BBR以前的拥塞控制算法中(如Reno、Cubic、Vegas),都依赖于丢包事件的发生,在高并发时则会看到网络波动的现象。而在BBR诞生后,由于其基于数学模型的思想,BBR通过对包延迟的实时计算,持续对瓶颈带宽进行估算,使得网络又快又稳。又看了些BBR的相关资料后,笔者内心有被其中的数学机制。原创 2024-10-17 22:40:18 · 1071 阅读 · 0 评论 -
优雅编码之——传统项目中,使用openfeign替换掉项目中的httpclient
用feign来替换到项目中的http工具类,让代码更简单原创 2022-09-04 20:57:33 · 2440 阅读 · 0 评论 -
spring cloud kubernetes在pod模式下服务调用源码解析
之所以只看pod模式下的服务调用链路,是因为在service模式下不会走缓存,效率低,并且负载均衡模式不能由spring cloud框架所控制,不太灵活需要关注的几个类:DiscoveryClientorg.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClientorg.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBal原创 2021-11-30 20:38:25 · 903 阅读 · 0 评论 -
spring cloud kubernetes源码解析之feign与loadbalancer
现在是2021年8月的一个星期四,窗外是刚下过大雨的夜色,伴着几点稀零的灯光。我戴着耳机,在客厅阳台上的书桌前吹着安静的风,耳机中正好播放“夜风凛凛 独回望旧事前尘”张国荣的歌。不知道不觉间,我来公司也已经二年了。二年间匆匆过去,同样也预示着我也从大学毕业正好四年了。在公司这二年间,我见证了公司的微服务从docker->docker swarm->kubernetes迁移的一路历程。同时变化的也还有青涩的自己,从中级JAVA->项目技术负责人->team leade原创 2021-09-30 20:39:17 · 1774 阅读 · 0 评论 -
spring cloud kubernetes项目负载均衡pod模式下,如何实现平滑访问?
如果再回到从前所有一切重演我是否会明白生活重点简介如果spring cloud项目使用kubernetes作为服务的注册中心,最方便快捷的办法就是直接引入spring cloud kubernetes组件,具体的操作办法可以看下以前的文章:spring cloud项目改造为spring-cloud-kubernetes项目spring cloud kubernetes负载均衡方式对说spring cloud kubernetes项目来说,它支持两种负载均衡模式,详情可看loadbalanc原创 2021-08-08 23:34:55 · 1156 阅读 · 1 评论 -
java基于word模板动态生成word及转pdf实践
java基于word模板分分钟动态生成word及输出pdf原创 2020-10-11 12:41:47 · 4594 阅读 · 6 评论 -
使用istio对spring cloud kubernetes项目进行金丝雀发布
用istio来部署spring cloud kubernetes果然名不虚传.istio对spring cloud实现灰度发布、蓝绿部署、金丝雀部署原创 2020-07-08 15:42:21 · 3437 阅读 · 4 评论 -
spring cloud项目改造为spring-cloud-kubernetes项目
spring cloud去掉eureka注册中心spring cloud使用etcd作为注册中心spring cloud改造成spring cloud kubernetes原创 2020-07-07 17:57:41 · 6651 阅读 · 7 评论 -
spring-cloud-kubernetes之开发环境搭建
前言为了能让spring cloud更好的部署在kubernetes中,为此我决定将原来的spring cloud进行改造,改造为spring cloud官方提供的spring-cloud-kubernetes在技术选型时,对于要不要将原生的spring cloud改造为spring-cloud-kubernetes可能也是许多人思考的一个问题,因为毕竟spring-cloud-kubernetes的运行是需要依赖于k8s环境的,spring-cloud-kubernetes本地调试这个应该如何解决呢?原创 2020-07-02 14:17:43 · 3590 阅读 · 2 评论 -
采用rancher2+kubernetes+skywalking部署springcloud项目(五[istio蓝绿部署]-错误演示)
本系列文章目录(一)基础k8s yaml脚本发布(二)helm+shell脚本优化大量冗余配置发布(三)jenkins用户审核的流水化方式部署(四)service mesh(istio)服务网格化发布(五)istio对项目进行金丝雀部署(待完成)在有了上一篇采用rancher2+kubernetes+skywalking部署springcloud项目(四[istio服务网格化版本])的实战后,对istio有了一个初步简单的认识。这一次我决定来把spring-boot-cloud项目中的svca原创 2020-07-01 18:05:06 · 1333 阅读 · 0 评论 -
采用rancher2+kubernetes+skywalking部署springcloud项目(四[istio服务网格化版本])
istio作为一个非常热门的ServiceMesh框架,身为JAVA小弟的我为了避免后面有身边的朋友或同事聊到它时而我听不懂这个玩意而尴尬,所以特此决定来学习一把原创 2020-06-30 22:46:59 · 3563 阅读 · 0 评论 -
采用rancher2+kubernetes+skywalking部署springCloud项目(三[jenkins审核发布])
本系列文章目录(计划中)基础k8s yaml脚本发布helm+shell脚本优化大量冗余配置发布jenkins用户审核的流水化方式部署service mesh(istio)服务网格化发布前言上一篇采用rancher2+kubernetes+skywalking部署springcloud项目(二[helm版本])文章里完成了通过自已写的shell脚本实现了对项目的自动化部署。通过执行shell脚本来触发部署还得操作linux输入命令啥的,虽然B格高但始终还是觉得有点不方便。对于发布这种东西原创 2020-06-24 09:45:42 · 1373 阅读 · 0 评论 -
POI克隆sheet原来这么简单
背景因为项目需要,需要生成EXCEL,为了开发的方便,使用了阿里的EasyExcel,并使用了模板excel进行填充。但由于需要根据数据动态填充多个sheet,所以便决定用代码先动态生成excel模板,在动态生成excel模板时需要将原始的模板sheet进行复制为了实现sheet的复制在快速浏览了EasyExcel的API后发现在EasyExcel中并没有相关的复制Sheet的api,所以打算用原生的POI去实现,于是我像往常一样在百度和谷歌中搜索关键字:poi sheet复制,poi sheet克隆原创 2020-05-28 10:29:30 · 10282 阅读 · 9 评论 -
采用rancher2+kubernetes+skywalking部署springcloud项目(一[k8s yaml版本])
前言最近在网上看到一个名为rancher的矿建,据说可以快速搭建一个kubernetes的集群,便决定初步学习尝试部署一下。为了学习与部署方便,便在网上找了一个名为spring-boot-cloud的开源项目,看了下spring-boot-cloud项目比较简单但该有的功能都有,便决定将此项目部署到k8s集群中。同时看到spring-boot-cloud项目中用的是zipkin来做监控...原创 2020-04-26 22:53:53 · 6395 阅读 · 7 评论 -
kubernetes实现spring cloud服务平滑升级的一种解决方案
又是三月天因为过年加上疫情的原因,2020年的2月没有了对时间的概念也因为疫情的原因,今年回到了离别多年的家乡家乡还是以前的样子只是许多以前的一起玩耍的小伙伴们大多都结了婚,出了嫁曾经那些个青涩的我们就像罗大佑唱的歌里说的那样:轻飘飘的时光就这么溜走,转头回去看看时已匆匆数年问题描述回到本文正题,情况是这样的:由于公司的服务用的是springcloud框架并且服...原创 2020-03-04 15:05:15 · 3092 阅读 · 0 评论 -
通过aop实现对mybatis逆向工程生成的SQL动态添加查询条件
问题概述最近为了公司项目里有一个需求,原本一个用户只可以查询一个地区的数据,现在要让一个用户支持多个地区的数据。也就是:(1个)user-->(1个)region现在需要修改为:(1个)user-->(多个)region其原项目中以前的查询方式是通过like regionCode%来实现的,regionCode由前端传入类似这样的:regionCo...原创 2019-09-16 12:46:34 · 3064 阅读 · 0 评论 -
记录一个mysql大量数据快速插入的方法
经过数月的历练与开发,终于在这个月手上负责的一个项目即将交付了,看着这一两个月让我偶感压力的繁杂的事情一件件处理完毕,原本动荡的心静也渐渐平静了些许。此时再回过头过去看那些困扰我N多个日夜的某些问题其实也不过如此。有些事情自己无法改变,只能乐观地坦然地面对。面对充满未知的未来努力让自己保持每一天都快乐才是王道,哈哈!在本周将一个需要处理上千万数据量的项目部署到UAT环境后,发现数据插入到mysql...原创 2018-06-16 13:52:10 · 24817 阅读 · 4 评论 -
Jquery 跨域访问
首先什么是跨域?我自己感觉就是就是指从当前网站发一个信息到另一个网站,并从另一个网站获取其返回结果在js中不允许直接跨域,但在jquery中可以,也就是用的jsonp, 且只能用get方式直接上源码:首先是引入jquery再弄个测试按钮提交最重要的部分源码,在提交按钮的单击事件中执行如下js: $("#queryInfo").click(function()原创 2015-04-21 12:33:19 · 749 阅读 · 0 评论 -
Javaweb 将excel文件内信息传入数据库中 并查询
有一个用户需求,即是用户进行登录后,可以上传excel文件,并对上传的excel表进行查询简单分析下后根据分析,先导入要用到的jar包(有的jar包javaEE5.0自带了的,就没写出来了):c3p0-0.9.1.2.jar //数据库连接池commons-dbutils-1.4.jar原创 2015-04-27 22:27:03 · 1975 阅读 · 1 评论 -
在spring中用quartz实现定时调度
最近项目需要,要在特定的时间执行一段代码。在网上百度了会,看见有个quartz项目,故用了一用。先在manven的pom中加入quartz: org.quartz-scheduler quartz 2.1.1原创 2016-04-08 09:52:26 · 637 阅读 · 0 评论 -
采用基于MQTT的ActiveMQ实现消息推送
由于消息推送,个人感觉人难度,所以到网上找一个开源的系统用,感觉很不错。网上现在主要有两种对于消息推送的开源项目解决方案,一个是基于XMAPP的,还有一个就是基于MQTT的了。由于MQTT相对于XMAPP较轻量点,便试试它,感觉还挺不错的。1.下载服务端我这里,下载的是5.8.0版本的,其所有的ActiveMQ的下载列表地址为:点击打开链接5.8.0的下载地址为:http:原创 2016-05-25 13:46:37 · 26967 阅读 · 19 评论 -
采用shiro实现登录认证与权限授权管理
Shiro 是Shiro 是一个 Apache 下的一开源项目项目,旨在简化身份验证和授权。本文中记录的是一次使用shiro实现登录认证与权限授权的过程。本文中主要用的技术有:spring,springMVC,maven,shiro1 shiro的配置,通过maven加入shiro相关jar包 org.apache.shiro shiro-c原创 2016-06-24 18:06:04 · 31220 阅读 · 22 评论 -
采用nginx让多个tomcat实现负载均衡
由于目录已将项目正式部署并发布了,但由于时不时地会出现bug,修复bug再次提交后,会让项目出现短时间的无法访问的问题,虽然时间虽短,但还是会影响用户的体验。为了不让用户察觉出项目的变动,于是我便采用了用nginx来实现负载均衡,主要步骤记录如下:1.配置nginx安装源vim /etc/yum.repos.d/nginx.repo #nginx.repo [nginx原创 2016-03-03 20:03:39 · 2709 阅读 · 0 评论 -
开发过程中jvm环境设置与查询
在开发过程中,常常由于项目占用的内存空间比较大,在项目启动或运行的过程中常常会抛出java.lang.OutOfMemoryErrorjava.lang.OutOfMemoryError: PermGen space等的由于JVM堆栈或永久区空间不足的错误,导致不能正常运行在eclipse中可通过如下配置修改JVM的运行环境:-Xmx1024m -Xms1024m -XX:原创 2016-12-28 14:52:56 · 2818 阅读 · 0 评论 -
采用hudson部署javaWeb项目
经过几个星期的开发,终于项目接近尾声了,完成了服务端的代码了。接下来的就是要让做客户端的哥子们一起来协同开发了,那么就得要把项目服务端部署起来。之前部署都是直接将项目手动打成war包然后放到tomcat的webapps里去的,但现在有了manven,就得要让它用起来,那天顺便看见了有一个叫做hudson的项目部署工具,于是便想用用它了。使用步骤如下:1.安装hudson:hud原创 2016-03-01 12:58:56 · 2890 阅读 · 0 评论 -
日志分析利器elk与logback(log4j)实战
在近期的项目中,由于其项目中记录了许多日志,当系统由于某些BUG挂掉时,单纯地通过命令来查询错误日志很不方便排除,且搜索起来很非常不方便,很花费时间,对于一向不喜欢干重复单调很费时间的我来说,如果没有一种办法来解决日志问题是一件很痛苦的事情。那天偶然,公司的CTO说解决这种事情,只需要ELK就能解决掉了(CTO果然见多识广),对于一向喜欢新技术的我来说,我便在网上搜索了一些关于ELK的知识,正好今原创 2017-04-08 13:09:21 · 12254 阅读 · 4 评论 -
对mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁概念的理解
记得在上大学那会开始,在大学的课堂上,常常会听到老师讲什么共享锁,排它锁各种锁的词汇,以前仅仅听过一次就没有管了,并没有进行深入的研究最近,在各种群里,又看见了什么乐观锁、悲观锁什么鬼的感觉很高级的词汇,于是乎今天对这几个概念进行学习,揭开它神秘的面纱,缕缕思路记录下我对这几个概念的想法实验环境:mysql5.6存储引擎:innoDB我们在操作数据库的时候,可能原创 2017-05-16 17:26:39 · 97772 阅读 · 27 评论 -
Java使用Kafka初探
以前用过mq,也早就听说过Kafka。Kafka这个名字感觉好高大上,一直想着试试是怎样的,今天周末,正好有空,在家来尝试一下以下是我今天搭建一个Kafka使用的主要步骤环境:1.centos7 x64(预先装好了JDK环境)2.Kafka版本:kafka_2.10-0.10.2.11.Kafka下载官方下载地址:http://kafka.apache.原创 2017-06-11 14:42:34 · 5341 阅读 · 3 评论 -
采用shardbatis在springBoot中实现表的水平拆分,整合swagger,mybatis,shardbatis,pagehelper
在最近的一个小项目中,由于会用到一点关于分表的操作,数据库是mysql的,在那个mysql数据库中有一个函数,每天会创建一张数据表作为分表,创建出来的表和原始表的结构不变,只是表名有一点改变。为此,为了解决这个问题,我在网上搜索了一些关于分表的解决办法,我这里用的是mybatis作为持久层框架,在网上找到了一个叫做shardbatis的开源插件,于是便用了起来,但在使用的过程中,发现这个sha原创 2017-01-13 22:35:08 · 7129 阅读 · 8 评论 -
API网关orange在ubuntu安装记录
最近出了点很特殊的状况,在家待业,每天宅在家里。这魔都天气也热,也没有出去逛逛,或许是因为人变得更懒了,这一晃也好多天过去了,也没得代码任务敲代码,三心二意,不知干点啥好。这些天颓废的日子,总让我想起之前在学校时,想起以前每天大把的时间,专注地坐在寝室的小桌前,时常为了一个小小的功能而敲代码到凌晨一两点;时常因为发现了某某网站的漏洞且成功获得了webshell而欣喜若狂,激动地彻夜难眠;时原创 2017-08-04 21:06:58 · 2896 阅读 · 6 评论 -
将springBoot项目部署到docker入门实例
由于springBoot项目的便捷性,再加上有了springCloud下的各种组合组件,可以很快的开发出微服务的系统。docker作为一个开源的应用容器引擎,用它可以快速地实现微服务系统的部署。下文是我今天用docker+springBoot部署项目的一个记录。操作环境:VM虚拟机安装的ubuntu(ubuntu-16.04.3-desktop-amd64)root@ubu原创 2017-08-24 17:47:06 · 19601 阅读 · 0 评论 -
Spring Boot AOP之对请求的参数入参与返回结果进行拦截处理
对于spring框架来说,最重要的两大特性就是AOP 和IOC。以前一直都知道有这两个东西,在平时做的项目中也常常会涉及到这两块,像spring的事务管理什么的,在看了些源码后,才知道原来事务管理也是用的AOP来实现的。对于IOC的话,平时接触的就更多了,什么autowired,resource各种注解,就是IOC的各种应用。一直我也想着能有机会自己动手写个aop的小DEMO,不过一直没机原创 2017-10-01 10:41:17 · 87240 阅读 · 16 评论 -
jenkins2.0+pipeline体验笔记
早在两年前,记录过一篇hudson的部署项目的笔记。采用hudson部署javaWeb项目在实际的应用中,随着项目的增加,原创 2017-12-24 09:11:15 · 8208 阅读 · 3 评论 -
JavaWeb 初步学习一(ServletConfig参数获取,ServletContext共享数据与请求转发)
首先是ServletConfig的学习用了下ServletConfig下的参数获取先在web.xml中对某个Servlet配置下相应的参数 This is the description of my J2EE component This is the display name of my J2EE component one com.baoxiu123.one原创 2015-03-22 13:17:55 · 858 阅读 · 0 评论