JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)            
                
         
            
            
            
            Spring对外留出的扩展dubbo是基于spring 配置来实现服务的发布的,那么一定是基于spring的扩展来写了一套自己的标签,那么spring是如何解析这些配置呢?具体细节就不在这里讲解,大家之前在学习spring源码的时候,应该有讲过。总的来说,就是可以通过spring的扩展机制来扩展自己的标签。大家在dubbo配置文件中看到的<dubbo:service> ,就是            
                
         
            
            
            
            01 服务发现1.1 服务发现流程整体duubo的服务消费原理Dubbo 框架做服务消费也分为两大部分 , 第一步通过持有远程服务实例生成Invoker,这个Invoker 在客户端是核心的远程代理对象 。 第二步会把Invoker 通过动态代理转换成实现用户接口的动态代理引用 。服务消费方引用服务的蓝色初始化链,时序图1.2 源码分析应用引用入口:ReferenceBean 的getObject            
                
         
            
            
            
            作者: 白文志服务提供者暴露一个服务的详细过程上图是服务提供者暴露服务的主过程:首先ServiceConfig类拿到对外提供服务的实际类ref(如:HelloWorldImpl),然后通过ProxyFactory类的getInvoker方法使用ref生成一个AbstractProxyInvoker实例,到这一步就完成具体服务到Invoker的转化。接下来就是Invoker转换到Expor            
                
         
            
            
            
            图1图1服务引用开始是从ReferenceBean 类的getObject() 方法开始的图2图 2 在init() 方法中赋值到ref, 图3图 3 init() 的核心是createPrxy()方法,创建好的代理类对象赋值给ref.图4 图4  366行核f心,一般就是一个注册中心不会有直连的情况。 url是registry开头的。例如registry://&nb            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-30 11:54:28
                            
                                85阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            情景引入:  在使用GSON解析一段JSON数组时,需要借助TypeToken将期望解析成的数据类型传入到fromJson()方法中,如下:List<Person> people = gson.fromJson(jsonData, new TypeToken<List<Person>>(){}.getType());————出自《第一行代码》假设一段JSON格式            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-08 22:04:47
                            
                                146阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            由于最近负责的一个互联网APP项目中需要用到Token验证机制,所以这边抽空整理下整体流程。我们知道现在最通用的Token是基于JWT来实现,简单来说其实就是用PublicKey来进行加密,生成的Token里面包含用户Id等信息,但是作为APP这种C/S体系结构来说,存在这样的问题:1、PublicKey由服务端来存储,涉及版本更新迭代问题,并不好更改PublicKey;2、各个用户的Public            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-04 12:24:11
                            
                                64阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Dubbo中存在一些优化设计,这些设计具有一定的参考价值,这里调研下 InternalThreadLocal 的优化设计。 以下内容的章节为:ThreadLocal的介绍InternalThreadLocal的介绍InternalThreadLocal和ThreadLocal的对比和使用范围垃圾回收的考虑 1.ThreadLocal的介绍 
查看org.apache.dubbo            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-13 23:41:06
                            
                                108阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            安全性在无状态请求时访问api接口,服务器无法判断访问者。于是呢,我们就需要有一个用户认证,一般有两种方法:session+cookie验证token验证(包含部分信息的加密字符串)1.用户登录 获取token (服务器) 保存token 2. 用户请求其他接口并且携带token 3. 服务器端 验证token 是否存在 token有效 验证ok 用户状态oktoken由三部分组成:jsonweb            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-03 13:56:17
                            
                                669阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            provider(生产者)import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ProtocolConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.ServiceC            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-19 14:17:46
                            
                                42阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            调用攻略(Python3)首先认证授权:在开始调用任何API之前需要先进行认证授权,具体的说明请参考:http://ai.baidu.com/docs#/Auth/top获取Access Token向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:grant_type:?必须参数,固定为client            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-21 17:11:48
                            
                                380阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             文章目录博客迁移1. 几种常用的认证机制1.1. HTTP Basic Auth Basic Auth是开放平台的两种认证方式,简单点说明就是每次请求API时都提供用户的username和password。1.2. OAuth OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 OAuth在"客户端"与"服务提供商"之间,            
                
         
            
            
            
            接口调用返回的结果是两个字段:access_token和expires_in,所以需要创建一个实体类封装这两个字段运行测试类WeixinTest.java控制台打印出错误信息  重置开发者密钥试试看还是报错。原来是把接口返回信息的字段名搞错了,是access_token不是access_tocken再次运行测试类WeixinTest.java,可以了可以可以,获取的时候先找本地            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-01 21:42:30
                            
                                322阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一.什么是token1.客户端使用用户名跟密码请求登录 2.服务端收到请求,去验证用户名与密码 3.验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端 4.客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 LocalStorage 里,客户端每次向服务端请求资源的时候需要带着服务端签发的 Token 5.服务端收到请求,然后去验证客户端请求里面            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-26 22:34:07
                            
                                1122阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在管理 Kubernetes 集群的过程中,我们经常会遇到这样一种情况:在某台节点上发现某个进程资源占用量很高,却又不知道是哪个容器里的进程。有没有办法可以根据 PID 快速找到 Pod 名称呢?假设现在有一个 prometheus 进程的 PID 是 14338:       为了进一步挖掘信息,有两种思路,一种是挖掘 PID 对应的容器的信息,另一种是挖掘 PID 对应的 Pod 的信息。1.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-08 22:29:56
                            
                                245阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            这真是一个巨大的坑,为了避免以后踩到同样的坑和帮助刚接触这块的同学快速脱坑,我花了些时间研究问题的来龙去脉,提供了一个不太完美的解决方案,以及未来规划的完美解决方案。问题现象在开发微信jssdk的图像接口功能时,测试环境和回归环境都ok。但是更新到预发布环境后,功能就异常了,一直报图片下载失败。最后快到发布时间时,功能又恢复正常了。于是按照常规流程进行了发布。过了两天,收到线上反馈的问题:用户刚开            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-28 09:51:58
                            
                                236阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、服务提供方返回结果服务提供方调用做完内部指定方法的调用后,会将调用结果封装到 Response 对象中,并将该对象返回给服务消费方。服务提供方也是通过 NettyChannel 的 send 方法将 Response 对象返回。入口在HeaderExchangeHandler的received方法HeaderExchangeHandler.received处理完请求后就调用send方法把结果发            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-27 20:22:08
                            
                                91阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            openstack中使用curl命令获取token并访问底层的API  在oepnstack中,访问所提供的服务(如创建虚拟机等)首先需要获取认证的token,也就是一个凭证,获取的方式是通过向OpenStack Identity模块发送一个带负载的认证请求,通常负载中携带的信息是用户名和密码。当访问底层提供的服务的时候,需要将token封装在X-Auth-Token头部中,如果需要访问opens            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-26 15:05:37
                            
                                404阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            【JavaWeb】token前言Token的使用【JavaWeb】token前言介绍jwt添加依赖编写测试代码输出内容token尝试小结介绍目前已经有很多都用到了token,那如果我们说了解cookie和session那token绝对是个新概念,其实我也是后面才了解,而且也不是很了解,这里既然都说到了,就拿目前自己了解的说下吧;我们首先看看token是什么(来自百度百科):就是信息加密技术,我们这            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-26 14:04:50
                            
                                262阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            说明:在登录时不需要cookie 或token,在登录后做其他操作时需要用到token,所以先获取token , 而token 是在登录后的 response 里面,接下来就是要获取response里面的token, 操作如下: #_*_coding:utf-8_*_import requests, ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-04-23 18:10:00
                            
                                2941阅读
                            
                                                                                    
                                2评论