
java技术
文章平均质量分 75
BUG弄潮儿
专注软件开发,分享开发、架构经验。全网同名,认准:bug弄潮儿
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ruoyi-vue-pro 项目搭建
摘要: 原创出处 http://www.iocoder.cn/Yudao/build-debugger-environment/ 「芋道源码」欢迎转载,保留摘要,谢谢!克隆代码初始化 MySQL初始化 Redis启动后端项目启动前端项目彩蛋本文,我们来搭建 https://github.com/YunaiV/ruoyi-vue-pro 的调试环境。整个过程非常简单,预计 5-30 分钟就可以完成,取决于大家的网速。↓↓↓ 技术交流群,一起成为最强 CRUD 王者!↓↓↓交流群克隆转载 2022-02-07 18:10:11 · 9291 阅读 · 1 评论 -
浅谈第三方登录用户表结构设计方案
国民两大流量入口,大家不说也想到了,分别是微信和QQ。所以为了方便获取用户来源都对接了微信登录或者QQ登录,这一类型的第三方登录入口。今天就以对接微信登录、QQ登录与苹果登录。来说说对第三方用户体系与我方系统用户体系的对接的一些可行性方案。0x01:我方用户表与第三方用户表同为一张表一般系统都会有自己的一套用户系统,主管用户的注册、登录、登出、权限等。比如我方用户系统的用户表 t_user 大致包含如下一些字段:id:主键idusername:用户名age:用户年龄mobile:手机号号码原创 2021-02-06 12:27:30 · 1454 阅读 · 0 评论 -
独立商户商城全套方案带源码
前两天分享了一个基于微信生态的多租户商城 [ 分享一个基于微信生态的多租户商城 ] 这个部署起来比较麻烦,首先需要一个认证的微信开发平台账号和一个认证的微信公众号账号。今天分享另外一个商城,这个商城跟微信生态没有绑定这么紧密,但是功能相对还是满满的。0x01:后台端服务仓库地址https://github.com/linlinjava/litemall该仓库并不止只有后台代码,还包括Vue管理后台前端、微信小程序商城端 、H5移动端商城。代码结构如下图该商城的架构图如下[ 来源官网 htt原创 2020-12-30 22:31:50 · 993 阅读 · 0 评论 -
Java进行内存泄露 GC 分析都有哪些常用好用的工具
使用Java语言开发应用程序,虽然JVM帮我们进行了GC收集、清除工作;但是使用不当的话,还是会导致某些对象常驻堆空间无法给垃圾收集器清除,导致内存泄露、内存溢出等情况,今天盘点一下在项目中进行内存泄露分析和GC分析的一些常用、好用的工具。0x01:JDK自带工具在处理内存泄露方面JDK本身就自带了大量监控、分析工具,主要有如下一些:jps:可查看当前系统运行的所有java进程jstat:查看具体某个Java进程的GC情况jmap: 查看某个Java进程的堆内存使用情况jvisualvm:可视原创 2020-12-23 20:21:19 · 733 阅读 · 0 评论 -
Nacos源码编译
Nacos主要功能服务发现与服务管理Nacos同时支持基于DNS和基于RPC(如Dubbo/gRPC)的服务发现,并提供服务的实时健康检查,基于Nacos更方便的实现服务断路器。Nacos提供的服务的元数据管理,路由及流量管理策略能够帮助更好的构建更强壮的微服务平台动态配置管理动态配置服务允许在所有环境中以集中和动态的方式管理所有应用程序或服务的配置。动态配置消除了配置更新时重新部署应用程序和服务的需要。可以更方便的实现无状态服务,更轻松地实现按需弹性扩展服务实例动态DNS服务支持权重路由原创 2020-06-29 22:46:23 · 4946 阅读 · 0 评论 -
Sentinel源码编译
Sentinel 是面向微服务的轻量级流量控制框架,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。0x01:克隆源码gitclonehttps://github.com/alibaba/Sentinel.git0x02:导入eclipse中(IDEA也可以)这里项目比较多,没有只截取了一部分项目。导入的项目中,sentinel-cluster-server-envoy-rls项目有些错误,需要在pom.xml文件中添加如下依赖:0x...原创 2020-06-29 22:45:49 · 1648 阅读 · 0 评论 -
worker模式
今天来学学,大家也好对线程池有一个更好的理解。public class Main { public static void main(String[] args) { Channel channel = new Channel(5); // 工人线程的數量,即线程池内的线程数目 channel.startWorkers();//启...2018-03-29 20:16:47 · 298 阅读 · 0 评论 -
dubbo源码学习一:基础知识及使用的相关技术
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合),我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配置就能够实现分布式服务调用,也就是说服务提供方(Provider)发布的服务可以天然就是集群服务。...2018-04-05 20:10:48 · 381 阅读 · 0 评论 -
Dubbo多注册中心和Zookeeper服务的迁移
一、Dubbo多注册中心1、 应用场景例如阿里有些服务来不及在青岛部署,只在杭州部署,而青岛的其它应用需要引用此服务,就可以将服务同时注册到两个注册中心。consumer.xml 2、不同服务使用不同注册中心...2018-04-06 08:58:56 · 403 阅读 · 0 评论 -
前端 Java Python等资源合集大放送
如果需要学习视频,欢迎关注【JAVA乐园】微信公众号,回复【领取资源】菜单一键领取以下所有200G干货资源,获取更多有用技术干货、文档资料。所有文档会持续更新,欢迎关注一起成长![img]http://dl2.iteye.com/upload/attachment/0129/6022/453da31f-9ca2-368d-9d65-46f2f3808cd3.png[/img]1、v...原创 2018-04-21 22:11:03 · 683 阅读 · 0 评论 -
线程各种状态转移分析
[img]http://dl2.iteye.com/upload/attachment/0129/3352/58a14e92-0f35-3826-addc-0814b4bf46e2.jpg[/img]线程在它的生命周期中会处于各种不同的状态:新建、等待、就绪、运行、阻塞、死亡。1、新建 用new语句创建的线程对象处于新建状态,此时它和其他java对象一样,仅被分配了内存...2018-03-28 22:13:30 · 305 阅读 · 0 评论 -
生产者-消费者模式实现
生产者是指:生产数据的线程消费者是指:使用数据的线程生产者和消费者是不同的线程,他们处理数据的速度是不一样的,一般在二者之间还要加个“桥梁参与者”,用于缓冲二者之间处理数据的速度差。下面用代码来说明://生产者 public class MakerThread extends Thread { private final Random random; ...2018-03-26 22:45:56 · 263 阅读 · 0 评论 -
java并发之同步辅助类Phaser
Phaser含义:更加复杂和强大的同步辅助类。它允许并发执行多阶段任务。当我们有并发任务并且需要分解成几步执行时,(CyclicBarrier是分成两步),就可以选择使用Phaser。Phaser类机制是在每一步结束的位置对线程进行同步,当所有的线程都完成了这一步,才允许执行下一步。跟其他同步工具一样,必须对Phaser类中参与同步操作的任务数进行初始化,不同的是,可以动态的增加或者减...2018-03-19 21:46:56 · 348 阅读 · 0 评论 -
java并发之同步辅助类CyclicBarrier
CyclicBarrier含义:栅栏允许两个或者多个线程在某个集合点同步。当一个线程到达集合点时,它将调用await()方法等待其它的线程。线程调用await()方法后,CyclicBarrier将阻塞这个线程并将它置入休眠状态等待其它线程的到来。等最后一个线程调用await()方法时,CyclicBarrier将唤醒所有等待的线程然后这些线程将继续执行。CyclicBarrier可以传入...2018-03-18 20:13:10 · 299 阅读 · 0 评论 -
java并发之同步辅助类semaphore
semaphore(seməˌfôr)含义:信号量就是可以声明多把锁(包括一把锁:此时为互斥信号量)。举个例子:一个房间如果只能容纳5个人,多出来的人必须在门外面等着。如何去做呢?一个解决办法就是:房间外面挂着五把钥匙,每进去一个人就取走一把钥匙,没有钥匙的不能进入该房间而是在外面等待。每出来一个人就把钥匙放回原处以方便别人再次进入。[img]http://dl2.iteye....2018-03-14 21:24:07 · 338 阅读 · 0 评论 -
Tomcat 集群 文件上传下载的共享问题 NFS配置
Tomcat 集群时上传文件时如何使得多部tomcat中的文件同步,Linux下可以通过NFS来解决这个问题。可以在一部linux server上配置NFS服务器,其他linux server当作NFS客户端。客户端只需用nfs挂载服务端的目录即可,如:mount -t nfs 192.168.1.80:/usr/local/share/tomcat/VOS/sharefolder ...原创 2018-03-12 21:50:13 · 708 阅读 · 0 评论 -
it技术谱图分享
1、程序开发语言综述[img]http://dl2.iteye.com/upload/attachment/0129/0979/a7843902-e80d-3bc5-bb6e-5121a584ac1d.jpg[/img]2、前端工程师必备技能[img]http://dl2.iteye.com/upload/attachment/0129/0985/09bdbb57-2cfe...原创 2018-03-10 22:05:27 · 380 阅读 · 0 评论 -
dubbo源码学习(二) : spring 自定义标签
做dubbo的配置时很容易发现,dubbo有一套自己的标签,提供给开发者配置,其实每一个标签对应着一个 实体,在容器启动的时候,dubbo会对所有的配置进行解析然后将解析后的内容设置到实体里,最终dubbo会根据实体中的值生成贯穿全局的统一URL。利用自定义标签使配置简单明了化,与spring完美融合。下面自己写一个自定义标签,主要需要如下 几个步骤:1、编写实体类2、编写Pars...原创 2018-04-09 20:29:54 · 395 阅读 · 0 评论 -
dubbo源码学习(四)初始化过程细节:解析服务
今天将真正去看dubbo内部的实现过程,看dubbo的源码前我先把dubbo的用户指南和开发指指南大概的看了一遍,这样再看dubbo源码比较轻松。从用户指南和开发指指南可以找到相应的切入点,今天将介绍的是dubbo的初始化解析bean的过程:解析服务基于dubbo.jar内的META-INF/spring.handlers配置,Spring在遇到dubbo名称空间时,会回调DubboN...原创 2018-04-12 20:32:11 · 454 阅读 · 0 评论 -
36、SpringBoot配置Cors解决跨域请求
公众号: java乐园CORS(Cross-Origin Resource Sharing)“跨域资源共享”,是一个W3C标准,它允许浏览器向跨域服务器发送Ajax请求,打破了Ajax只能访问本站内的资源限制,CORS在很多地方都有被使用,微信支付的JS支付就是通过JS向微信服务器发送跨域请求。开放Ajax访问可被跨域访问的服务器大大减少了后台开发的工作,前后台工作也可以得到很好的明确以及分工,...原创 2019-05-11 20:31:20 · 605 阅读 · 0 评论 -
28、SpringCloud整合网关zuul入门二
公众号: java乐园上一篇讲解了网关zuul的path-url这种转发方式;这一篇讲解一下path-serviceId这种转发方式。path-serviceId这种方式需要使用到注册中心eureka1、 新建项目sc-zuul-consumer,该项目主要提供一个Controller,两个接口,对应的pom.xml文件如下<project xmlns="http://maven.ap...原创 2019-05-03 11:22:16 · 507 阅读 · 0 评论 -
8、服务发现&服务消费者Feign
公众号: java乐园spring cloud的Netflix中提供了两个组件实现软负载均衡调用,分别是Ribbon和Feign。上一篇和大家一起学习了Ribbon。Ribbon :Spring Cloud Ribbon是基于HTTP和TCP的客户端负载工具,它是基于Netflix Ribbon实现的,它可以在客户端配置 ribbonServerList(服务端列表),然后轮询请求以实现均衡负...原创 2019-04-27 16:58:49 · 390 阅读 · 0 评论 -
一大波视频分享
1.ps 链接: https://pan.baidu.com/s/1mjYbcJA2.HTML5+CSS3从入门到精通.iso 链接:https://pan.baidu.com/s/1cUHz3o3.Javascript视频教程 链接: https://pan.baidu.com/s/1i6eC5YP4.Jquery视频教程 链接:https://pan.baidu...2018-06-09 09:36:08 · 650 阅读 · 0 评论 -
利用Sharding-Jdbc实现分表
你们团队使用SpringMVC+Spring+JPA框架,快速开发了一个NB的系统,上线后客户订单跟雪花一样纷沓而来。慢慢地,你的心情开始变差,因为客户和产品的抱怨越来越频繁,抱怨的最多的一个问题就是:系统越来越慢了。1 常规优化你组织团队,进行了一系列的优化。1.1 数据表索引优化经过初步分析,发现瓶颈在数据库。WEB服务器的CPU闲来无事,但数据库服务器的CPU...2018-05-24 22:32:56 · 580 阅读 · 0 评论 -
MINA原理详解
1. 通过SocketConnector同服务器端建立连接 2. 链接建立之后I/O的读写交给了I/O Processor线程,I/O Processor是多线程的 3. 通过I/O Processor读取的数据经过IoFilterChain里所有配置的IoFilter,IoFilter进行消息的过滤,格式的转换,在这个层面可以制定一些自定义的协议 4. 最后IoFilter将数据交...2018-05-19 13:51:56 · 455 阅读 · 0 评论 -
最近有人说我欺骗消费者,今天来一波视频分享
最近有人说我欺骗消费者,今天来一波视频分享dubbo入门 链接:https://pan.baidu.com/s/1YKOUeruG5dkyVxMuyIfcuwdubbox进阶 链接:https://pan.baidu.com/s/1krFbgw_G8flcJoLzYEFtkw dubbox项目实战 链接:https://pan.baidu...2018-05-12 21:00:10 · 483 阅读 · 0 评论 -
SVN多版本库环境的搭建
一、1、启动SVN sudo svnserve -d -r /home/data/svn/ 其中 -d 表示守护进程, -r 表示在后台执行 /home/data/svn/ 为svn的安装目录 2、关闭SVN 这里采取linux杀死进程的方式处理的 ps -ef|grep svnserve root 4967 1 0 Aug23 ? ...2018-05-02 21:00:42 · 535 阅读 · 0 评论 -
Nginx会话保持之nginx-sticky-module模块
在使用负载均衡的时候会遇到会话保持的问题,常用的方法有:1.ip hash,根据客户端的IP,将请求分配到不同的服务器上2.cookie,服务器给客户端下发一个cookie,具有特定cookie的请求会分配给它的发布者注意:cookie需要浏览器支持,且有时候会泄露数据1.Sticky工作原理:Sticky是nginx的一个模块,它是基于cookie的一种nginx的负载均...2018-04-16 20:34:53 · 950 阅读 · 0 评论 -
dubbo源码学习(四):暴露服务的过程
dubbo采用的nio异步的通信,通信协议默认为 netty,当然也可以选择 mina,grizzy。在服务端(provider)在启动时主要是开启netty监听,在zookeeper上注册服务节点,处理消费者请求,返回处理后的消息给消费者,消费者使用服务时主要是订阅服务的节点,监听zookeeper节点目录,服务端的变化时zookeeper会推送给消费者,消费者重新缓存服务地址等。服务者、消费者...原创 2018-04-14 11:38:49 · 455 阅读 · 0 评论 -
捋一捋dubbo配置
配置类关系(Configuration Relation)[img]http://dl2.iteye.com/upload/attachment/0129/0639/2ca78a4e-7eec-3b97-829b-76e1d498881c.png[/img]类具体说明:· ApplicationConfig 应用配置,用于配置当前应用信息,不管该应用是提供者还是...2018-03-07 22:37:20 · 1431 阅读 · 0 评论 -
linux常用命令
1.# 表示权限用户(如:root),$ 表示普通用户 开机提示:Login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后,可以进入相应的用户环境. 退出当前shell,输入:exit2.useradd netseek 添加一个netseek用户 passwd netseek 给netseek这个用户设置密码. (/etc/passwd...2018-03-06 22:21:42 · 427 阅读 · 0 评论 -
Apache下的虚拟主机设置
一、WWW服务器虚拟主机原理WWW服务器虚拟主机是指使用一台物理机器,充当多个主机名的WWW服务器。比如由一台机器同时提供http://www.company1.com, http://www.company2.com 等的WWW服务,而浏览这些WWW站点的用户感觉不到这种方式下跟由不同的机器提供不同的服务有什么差别。 使用WWW虚拟主机的好处在于,一些小规模的网站,通过跟其他网站共享同一...2018-03-02 20:59:02 · 404 阅读 · 0 评论 -
swt java 内嵌activeX控件
这里用的是SWT/JFace开发application中SWT自带的org.eclipse.swt.ole.win32 包可以支持内嵌OLE和ActiveX。具体用法如下://创建一个OleFrame做为OLE(或ActiveX)的框架OleFrame oleFrame = new OleFrame(this, SWT.NONE);//创建ActiveX的容器,其中的classID...2018-01-06 21:03:43 · 271 阅读 · 0 评论 -
liunx下搭建git服务器
1、 添加git用户useradd -m git2、 修改git用户密码(密码为git)passwd git3、 解压git-1.7.12.2.tar.gz并安装gittar -xvf git-1.7.12.2.tar.gzcd git-1.7.12.2makemake install4、 初始化一下git用户,为了安装gitosis做准备。在任何一台机器上使用...2018-01-05 20:48:03 · 287 阅读 · 0 评论 -
Linux整合Apache和SVN
1、安装APR-1.2.7和APR-util-1.2.7 (下载地址:http://apr.apache.org/)#tar zxvf apr-1.2.7.tar.gz#cd apr-1.3.9#./configure#make#make install#tar zxvf apr-util-1.2.7.tar.gz#cd cd apr-util-1.3....2018-01-04 22:34:26 · 195 阅读 · 0 评论 -
java存储emoji表情解决方案
1、问题产生情况 在开发IM时有些有用的头像用了emoji表情或者聊天的时候用了emoji表情,然而mysql数据库用的编码是utf8_general_ci,就是utf-8编码,结果也就报错误了。emoji表情存不了在数据库。 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xAA",...' for...2018-01-03 22:16:34 · 671 阅读 · 0 评论 -
基于aes的加解密方案
对前端上送的报文进行解密和验签1、前端上送的报文先进行整体加密,然后把整体加密的数据作为encodeFieldVals的值;同时前端一起上送到后端的数据包括整体加密的aesKey前端请求后端的例子: http://127.0.0.1:8080/btoa/user/login { encodeFieldVals=加密数据, aesKey...2018-01-01 10:25:46 · 351 阅读 · 0 评论 -
人在职场:可以让你少奋斗10年的工作经验
第一:不要认为停留在心灵的舒适区域内是可以原谅的。 每个人都有一个舒适区域,在这个区域内是很自我的,不愿意被打扰,不愿意被push,不愿意和陌生的面孔交谈,不愿意被人指责,不愿意按照规定的时限做事,不愿意主动的去关心别人,不愿意去思考别人还有什么没有想到。这在学生时代是很容易被理解的,有时候这样的同学还跟“冷酷”“个性”这些字眼沾边,算作是褒义。 然而相反,在工作...原创 2017-12-23 10:13:47 · 417 阅读 · 0 评论 -
提问的智慧
此文让我受益良多。值得一读,此文对我进步很多帮助。我一直保存着。在哪里来的无从考究~~~ --------------------------------- 在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。 首先你必须明白,黑客们只偏爱艰巨的任务,或者能激...原创 2017-12-19 20:26:37 · 287 阅读 · 0 评论 -
比尔盖茨的十句忠告
以下是盖茨先生的十条玉言,经常阅读,我认为大有好处。1 . 社会充满不公平现象。你先不要想去改造它,只能先适应它。因为你管不了它。2 . 世界不会在意你的自尊,人们看的只是你的成就。在你没有成就以前,切勿过分强调自尊。因为你越强调自尊,越对你不利。3 . 你只是中学毕业,通常不会成为CEO,直到你把CEO职位拿到手为止。直到此时,人们才不会介意你只是中学毕业。4 . 当你陷入人为困...原创 2017-12-18 20:17:41 · 392 阅读 · 0 评论