自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 Spring Cloud Gray 微服务灰度中间件

Spring Cloud Gray 是一套开源的微服务灰度路由解决方案,它由 spring-cloud-gray-client,spring-cloud-gray-client-netflix 和 spring-cloud-tray-server,spring-cloud-gray-webui 组成。spring-cloud-gray-client 定义了一套灰度路由决策模型,灰度信息追踪模型...

2019-09-07 00:51:50 2726

原创 tcp 连接数上限突破

一个tcp连接就需要占用一个文件描述符,一旦文件描述符用完,新的连接就会返回给我们错误是:Can’topen so many files。linux系统出于安全角度的考虑,在多个维度对于可打开的文件描述符进行了限制,通常是系统限制、用户限制、进程限制。

2024-03-13 12:58:29 1022 1

原创 nginx: mac使用vscode本地调试nginx

在extensions中搜索"c/c++", 将前3个插件都安装在extensions中搜索"cmake", 将前2个插件都安装。

2024-03-07 15:01:03 1099

原创 go mod出现zip: not a valid zip file的解决办法

问题原因:go mod代理服务器下载出错;导致在下载时出现": zip: not a valid zip file"优先使用aliyun的代理服务,调整直接使用https://goproxy.cn。重新执行kubebuilder init 正常完成。

2024-03-03 17:18:48 1237

原创 Kubernetes: 本地部署dashboard

本篇文章主要是介绍如何在本地部署kubernetes dashboard, 部署环境是mac m2。

2024-03-03 01:20:45 508

原创 mTLS: Netty单向/双向TLS Demo完整代码

NettyHelper.java: 主要用是创建EventLoopGroup和判断是否支持Epoll。package org.example.netty;import io.netty.channel.EventLoopGroup;import io.netty.channel.epoll.Epoll;import io.netty.channel.epoll.EpollEventLoopGroup;import io.netty.channel.epoll.EpollSocketChannel

2024-03-02 16:05:29 979

原创 mTSL: netty单向/双向TLS连接

不管是单向tls还是双向tls(mTLS),都需要创建证书。创建证书可以使用openssl或者keytool,openssl 参考。

2024-03-02 15:52:01 901

原创 mTLS: openssl创建CA证书

证书可以通过openssl或者keytool创建,在本篇文章中,只介绍openssl。

2024-03-02 03:05:44 1006

原创 mTLS: TLS/CA/证书 简介

简称英文全称中文全称CA证书颁发机构PCA私有证书颁发机构,又名私有 CASSL安全套接字层协议TLS传输层安全性协议HTTP超文本传输协议HTTPS超文本传输安全协议EV SSLEV 证书,又名扩展验证证书OV SSLOV 证书,又名组织验证证书DV SSL证书,又名域验证证书通配符证书MDC多域 SSL 证书UCC统一通信证书TLD顶级域PKI公钥基础设施OCSP在线证书状态协议CSP加密服务提供商Public key公钥私钥。

2024-03-02 00:40:48 654

原创 Java SDK下沉:解决SDK治理痛点

在每个java应用中,都会存在各种各样的SDK,随着时间流逝和技术的迭代,SDK也需要进行相应的版本更新,在大型微服务系统中,动辄几百上千个应用,要推动这个数量级的应用进行SDK升级或者覆盖接入,消耗的成本是巨大的,这也是微服务治理的一大难点。那么这个难点如何解决呢?参考service mesh的思路,将技术复杂度下沉,业务逻辑和技术组件拆分、解耦。

2024-02-25 21:40:29 825

原创 etcd: mac 环境部署

release版本链接:https://github.com/etcd-io/etcd/releases/安装完后,会有相关提示,推荐使用 brew services 来管理这些应用。官网:https://etcd.io/docs/v3.5/install/将zip包解压出来,进入目录查看文件。

2024-02-23 10:03:26 854

原创 HTTP2:netty http2 StreamChannel多流实现与Http2StreamFrame解码器的源码分析

netty http2 server侧的核心逻辑个人认为,主要在编解码处理器和Stream Transform Channel这块,分别处理Http2 消息帧的编解码,以及连接的多流处理机制。

2024-02-08 17:45:53 924

原创 HTTP2: springboot启用http2

Springboot默认自带的tomcat开启http2必须使用ssl,所以需要重新启一个tomcat,并修改其配置,使其支持HTTP2.0 (Springboot支持多connector)。如果只考虑支持h2c,可以让springboot自带的tomcat不启动。通过浏览器访问接口,然后查看使用的protocol。启动springboot应用。使用okhttp进行验证。

2024-02-07 18:30:46 1195

原创 HTTP2: netty server端同一个端口支持 http1.1/http2

同时支持http1和http2比较推荐的方法是通过HttpServerUpgradeHandler将http1.1升级到http2,网上有很多资料。这里采用的是另一种方式。在对接收到的请求字节进行解码时,判断client采用的是http1还是http2,然后再将相应的ChannelHandler添加到ChannelPipeline中。新增2个接口和4个实现类。

2024-02-07 16:56:39 366

原创 HTTP2: netty http2 server demo

与netty 的http1.1类似,http2也需要相应的编解码器,另外还需要一个处理http2连接通道复用的Handler。在构建Http2FrameCodec时,可以通过Http2Settings类对流和数据帧进行设置,覆盖默认其默认值。运行上面的代码,8080端口将支持http2协议。运行下面的curl脚本,即可访问。

2024-02-07 16:22:55 889

原创 HTTP2:基础概念

http2 相较于http2最大的改变在于用户和网站之间可以复用一条连接实现多流交互。其推出并没有改变http1.1 的基本语义。http2的目的是响应复用,头部压缩来提高极致的性能。

2024-02-07 12:26:21 798

原创 Dubbo Consumer 对Provider的protocol选择逻辑

该方法会将“refer”属性提出来,然后进入doRefer()方法中获取"protocol"参数值,将protocol参数值做为consumerUrl的protocol,同是将referenceParamters做为consumerUrl的参数,consumerUrl的protocol参数会在后面的服务发现中做为一个条件用于筛选相应protocol的provider url。该方法是服务发现的入口方法,该方法的主要逻辑是创建Invoker对象,并生成Proxy对象。逻辑的主要代码下面4处。

2024-01-29 15:09:55 382

原创 dubbo3 负载均衡器

其中默认的负载均衡器就是RandomLoadBalance,也可以在consumer url中通过"loadbalance"参数指定。

2023-12-19 20:09:00 398

原创 failed to launch process in the docker container on mac m2, and return message “could not launch pro

try to remote debug istio pilot as referring to the document of istio wiki (link: https://github.com/istio/istio/wiki/Remote-Debugging), and following the steps in this document, present two difference results.

2022-10-30 17:28:04 286 1

原创 mac m2 编译dubbo3.1.x版本报Missing:com.google.protobuf:protoc:exe:osx-aarch_64

原因是低版本的protobuf和grpc不支持MacBook m1或m2 protobuf,需要使用x86的protobuf。

2022-10-18 14:45:29 882

原创 Idea remote debug

idea remote debug 有两种debugger mode, 分别是attach to remote jvm和listen to remote jvm, 两种模式对于jvm的启动参数也不一样。

2022-10-09 23:08:29 874

原创 istio: 解决istio-proxy使用了资源配额导致新建pod处于pending状态的问题

本文记录了在mac搭建的istio环境在创建了4个带有istio-proxy的pod后,无法再新建pod的问题,提示 FailedScheduling 0/1 nodes are available: 1 Insufficient cpu. preemption: 0/1 nodes are available: 1 No preemption victims found for incoming pod.,开始查找分析原因,最终找到解决方案。...............

2022-07-29 01:16:51 5057

原创 istio: h5应用访问后端接口 (跨域+路由管理)

本文实验链路:h5 > demo-a > demo-b在实验过程出现跨域问题,直接使用istio解决,没有调整后端代码

2022-07-28 23:40:56 1471

原创 docker: 打包h5项目的镜像

本文记录了h5编译生成docker镜像的过程,实验选择的h5 框架是VUE

2022-07-28 22:01:41 811

原创 istio 访问网格内的服务(路由管理)

本文实验访问网络内的应用,并根据路由规则访问不同版本。访问链路:istio-springboot-demo-a > istio-springboot-demo-bi

2022-07-28 11:55:28 692

原创 istio gateway入口流量路由管控

本文记录istio搭建入口网关以及流量路由管控的场景。

2022-07-27 20:50:38 508 1

原创 mac上搭建istio环境

本方介绍在mac通过helm部署istio的过程。

2022-07-27 18:45:27 783

原创 mac安装应用提示已损坏的解决方法

高版本mac 系统可能会提示软件已损坏无法打开,本文记录了两种解决方法,亲测有效。

2022-07-26 16:39:38 8130

原创 Java应用打包成Docker镜像

docker 镜像打包

2022-07-21 17:36:36 1430

原创 Dubbo3 RpcContext中的3个RpcContextAttachment和1个RpcServiceContext

dubbo3 在RpcContext中RpcContextAttachment和RpcServiceContext的生命周期

2022-07-19 10:13:26 819

原创 Mac Iterm2 快捷登录服务器

用户名、I P、密码做为参数传入脚本中,一个脚本搞定所有的ssh 登录

2022-07-13 00:51:17 380

原创 Dubbo3-配置中心简析

配置中心是dubbo3三大中心之一,在dubbo3的实例级服务注册发现中承担着配置管理的主要角色;dubbo3的配置中心有两种作用,一是类似于dubbo.properties文件一样,做为启动时配置参数加载,二是通过监听机制实现一些策略规则的动态变更。......

2022-06-30 15:16:27 1076

原创 dubbo3 元数据中心-实例级服务注册发现

本文中使用zookeeper做为dubbo的注册中心和元数据中心。开启元数据中心remote模式的配置有两种:springboot应用和dubbo原生应用的配置方式。本文主要介绍元数据在dubbo实例级服务注册发现的过程写入流程和应用,以及元数据中心remote模式和local模式的区别。.........

2022-06-17 23:06:58 1437

原创 Dubbo3:DubboInvoker中URL的参数优先级

在consumer侧,RPC参数的优先级如下: referenceconfig > consumerconfig > moduleconfig > applicationconfig > provider url关于referenceconfig 到 applicationconfig这部分优先级处理逻辑是在ReferenceConfig中处理的,在ReferenceConfig创建Proxy对象时,有一段加载consumer url参数配置的代码:public class Re

2022-05-26 21:57:51 395

原创 Alibaba OneJavaAgent 初探

一、使用1、plugin在这种模式下,one-java-agent在加载plugin时,会从以下几个方面进行,分别是描述plugin.properties这个文件是一个引导文件,里面的配置内容引导plugin加载plugin-jarplugin的引导包,内有实现PluginActivator,用于引导和管理plugin的初始化和销毁instrument-lib这个目录存放plugin的代理逻辑和Instrument类在项目中有demo,以dubbo-test

2022-05-19 14:21:29 1624

原创 Dubbo3 服务发现的推空保护

推空保护是Dubbo服务发现新增的一个提升稳定性的功能,目的是当注册中心出现抖动,consumer接收到注册中心推送了空provider urls过来时,直接忽略掉,从而保护consumer维护的服务发现信息不受影响。但是在某些场景下却是会出现异常,我们做个实验:1、启动Provider A, ip为192.168.1.102、启动Provider B, ip为192.168.1.113、启动Consumer, 调用Provider A和Provider B, 此时正常调用4、停掉Provider

2022-05-17 11:55:40 3215

原创 Spring MVC 参数检验 (Validated & Valid)

一、Validated和Valid区别在Spring Mvc中可以使用@Validated和@Valid两个注解来校验Controller 方法参数。其中@Valid是标准JSR-303规范的标记型注解,用来标记验证属性和方法返回值,进行级联和递归校验。而@Validated是Spring提供的注解,是标准JSR-303的一个变种(补充),提供了一个分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制。且两者作用的范围也有些许不一样;Valid可以用在:方法,字段、枚举的常量,构造函数,方

2022-04-29 14:44:08 1227

原创 Java Agent + javassist 调试demo

java agent是基于java instrument实现,instrument的底层实现依赖于JVMTI,也就是JVM Tool Interface。文章目录代码准备java代码如下各module的 pom.xmlagent 接入的两种方式1、启动时接入2、运行时接入Idea调试本地module调试本地lib调试采用jdwp进行调试参考代码准备本次实验在工程中新增了3个module,4个类ModuleClassDescribelearn-mainHandle代理实验类

2022-04-13 19:44:24 1006

原创 dubbo3 使用低版本spring-boot-maven-plugin打包springboot项目报javassist.NotFoundException

现象项目使用的框架和插件信息:框架/插件版本dubbo3.0.5spring-boot1.4.1.RELEASEspring-boot-maven-plugin1.3.0.RELEASE在idea中启动正常,但是通过maven打包后,运行spring-boot repackage之后的jar包在启动过程中将Service往注册中心注册时就会报错[09/04/22 16:47:44:697 CST] main INFO config.ServiceConf

2022-04-11 13:48:07 1373

原创 Java:SecurityManager 安全管理器SecurityPermission的使用

关于SecurityManager的细节本文章不做介绍,主要聚集在场景搭建以及核心流程的代码跟踪,理解其设计思路。场景搭建主要验证System.getSecurityManager().checkSecurityAccess(“a.b.c”)的三个场景:与MainClass在同一个module与MainClass在不同的module在另一个jar包中分别新增A、B、C、SecurityManagerTest四个类:ClassPositionDescribeAm

2022-04-08 00:22:16 4878

charles-proxy-4.2.1-mac

将/Applications/Charles.app/Contents/Java/charles.jar替换掉就可以用了。

2017-12-25

支持FireFox的JS调用OCX控件例子

以北恩U800耳式电话为例 准备: 在ocx文件夹中有以下文件: UsbPhonev1.ocx 北恩U800的ocx控件 U800ocx.html 调用ocx控件的html文件 U800ocx - firefox.html 支持firefox的调用ocx控件的html文件 TypeLibraryExplorer.rar ocx文件查看器 FFOCX.zip 让FireFox支持OCX插件的安装包

2015-02-12

更新文件,更新数据库.(仅限ORACLE)

提取需要更新的文件,可以过滤文件和目录;将提取到的SQL文件另外复制一份到另一个目录,便于后面的数据库更新.数据库更新是用子进程(SQLPLUS)连接数据库执行SQL文件执行文件中的脚本,数据库的更新操作创建了两个进程,进行读写.

2013-12-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除