我们的构建和打包,都是在docker环境进行的,你可以使用Dockerfile中的多镜像模式,也可以单独执行,我是在jenkinspipeline中用到这个,所以我单独写,这个使我的Dockerfile更加简洁。 构建java项目,我们为了保证宿主机的整洁,我们采用docker的方式进行项目的编译和打包 $workspace是在docker环境下的环境变量,指的是当前项目所在的目录,--privileged=true是指在容器内运行时是否开启特权模式,Docker将赋予容器访问主机上所有设备的权限,settings.xml文件也是在当前项目下的 dockerrun--privileged...

  XfpaLQko7Ata   2023年12月19日   88   0   0 mavendockerdockermaven

布隆过滤器(BloomFilter)是一种高效的概率数据结构,用于判断一个元素是否存在于集合中。它基于位数组和多个哈希函数,并具有以下特点: BloomFilter是一个基于概率的数据结构:它只能告诉我们一个元素绝对不在集合内或可能在集合内 快速查询:布隆过滤器具有快速查询的特性。它使用多个哈希函数将元素映射到位数组中的不同位置,查询时只需通过计算哈希值并检查对应的位是否被设置,即可判断元素是否可能存在于集合中。 空间效率高:布隆过滤器占用的存储空间相对较小。通过合理选择位数组的大小和哈希函数的数量,可以在较小的空间内存储大量的元素信息。 容错率可控:布隆过滤器可以通过调整位数组的大小和...

springcloud-nacos-seata 分布式事务组件seata的使用demo,AT模式,集成nacos、springboot、springcloud、mybatis-plus,数据库采用mysql demo中使用的相关版本号,具体请看代码。如果搭建个人demo不成功,验证是否是由版本导致,由于目前这几个项目更新比较频繁,版本稍有变化便会出现许多奇怪问题 seata1.4.2 spring-cloud-alibaba-seata2.1.0.RELEASE spring-cloud-starter-alibaba-nacos-discovery0.2.1.RELEASE springb...

webjars类型的前端jar包 我们可以将公用的js,css,html,vue,shtml打包成一个jar,然后在其他项目中引用,这样就不用每个项目都去引用一遍了,这样就可以实现前端的公用了。 1.创建一个maven项目,添加依赖和插件 <dependencies> <!-依赖webjars-locator-core--> <dependency> <groupId>org.webjars</groupId> <artifactId>webjars-locator-core</artifactId> &lt...

  XfpaLQko7Ata   2023年12月12日   17   0   0 maven静态资源jar静态资源mavenjar

为github三方仓库添加贡献 如果希望成为某些开源框架的贡献者,例如如希望加入higress、keycloak、ruoyi这些框架的开发者行列,那么今天的文章应该可以帮到您。 克隆和拉取项目 FORKHigress到您的存储库。要完成这项工作,您只需单击alibaba/higress主页右侧的Fork按钮。然后你将在中得到你的存储库https://github.com/<your-username>/higress,其中your-username是你的GitHub用户名。 克隆您自己的存储库以在本地开发.用于gitclonegit@github.com:<your-use...

参考文档 https://blog.51cto.com/wangguishe/5789239 https://blog.51cto.com/wangguishe/5789239 envoy与后端应用关系图 当在Kubernetes中使用Envoy作为边缘代理时,通常会将Envoy部署为一个Sidecar容器,与后端服务共同运行在同一个Pod中。以下是一个简单的关系图示意: +----------------------+ |Kubernetes| |Cluster| +----------|-----------+ | | +----------v-----------+ || |Pod...

ssh介绍 SSH,全称为SecureShell,是一种用于在网络中安全地进行远程登录和执行命令的协议。它通过加密的方式提供了对网络通信的保护,使得用户可以在不安全的网络环境下安全地进行远程管理和数据传输。 以下是SSH协议的一些重要特点和功能: 安全性:SSH使用加密技术来保护数据在网络中的传输,包括身份验证信息、会话数据等内容。这确保了用户在远程登录时的隐私和数据安全。 远程登录:SSH协议最常见的用途是通过远程登录来访问和管理远程计算机系统。用户可以使用SSH客户端连接到远程服务器,并在远程主机上执行命令、编辑文件等操作。 端口转发:SSH支持端口转发,可以在本地和远程主机之间建立安全...

先查看这篇文章k8senvoy的部署 当在Kubernetes中使用Envoy的WASM过滤器时,WASM过滤器会与Envoy一起部署在同一个Pod中,并与后端服务进行通信。以下是一个简单的关系图示意: +----------------------+ |Kubernetes| |Cluster| +----------|-----------+ | | +----------v-----------+ || |Pod| || |+------------------+| ||Envoy|| ||withWASM|| ||Filter|| |+------------------+| ||...

之前写过关于totp的文章,对它的基础有不清楚的同学,可以先看我的这篇文章《TOTP基础一》《TOTP基础二》 想到的问题 因为totp是把时间分成了一个一个小的时间窗口,当生成totp的服务器和校验totp的服务器不在一起时间窗口,就会出现验证失败的问题,这是不可避免的,时间戳是一个long类型的数字,当这个数字进行totp运算后,落在哪个窗口里是确定的,但你的时间戳数字是不确定的,因为你不知道用户在什么时间触发totp这个生产的动作。 时间窗口 从下面的图中可以看到,时间两个窗口总会有一个交叉,谁赶上了都不一定,所以我们要解决这个不一定的问题。 最多跨一个窗口 我们的生成totp端和校验...

题目 有个需求,我有4种类型,每种类型又有自己的数列,问我如何用一个数字来表示它们 思路 可以看一下java里的线程的实现,它是将一个int64的数字进行分区,每个区间代表一种状态,如运行中,挂起,暂停等,我们也可以通过这个方法来实现。 实现 在int32中,我找一个范围,存储我的运行中状态的数列,为了简单起见,我们使用16进制表示法 范围0xA0000x1FFF 可容纳0x1FFF个数字,8191个数字 算法 publicstaticLonggetRangeId(Longid){ returnid|0xA000; } publicstaticLonggetId(Longran...

问题出现的前提 keycloak通过k8s部署,并进行了集群部署,共2个节点 通过域名解析后,直接到外网LB,在LB上配置了k8s-ingress的IP,端口是80和443 在keycloak应用的ingress配置中,对域名进行了keycloak服务的绑定 问题的描述 有时间无法完成登录,点登录后,刷新了一次登录页,未完成登录行为 有时在登录时,出现死循环,反复302到login-actions/authenticate,keycloak日志中显示“会话失效”,或者可以理解为,“你使用了无效的会话session_code” 问题解决过程 如果是单节点不会有这个问题 如果是多节点部署...

  XfpaLQko7Ata   2023年11月30日   12   0   0 IPIPnginxnginx多节点多节点

base64 Base64是一种用于将二进制数据编码成ASCII字符的编码方式。它主要用于在文字环境中传输或存储二进制数据,如在电子邮件、XML文件、URL参数等。Base64编码不是一种加密算法,而是一种编码方式,其主要作用是将二进制数据转换为文本数据,以便更容易在文本协议中处理。 Base64编码使用64个不同的字符来表示二进制数据。这些字符包括大小写字母A-Z和a-z、数字0-9,以及两个额外的字符通常是"+"和"/"。有时候,为了适应不同的环境,可能还会使用额外的字符,如"="用于填充。 编码的过程如下: 将待编码的数据划分为3个字节的块。 将每个字节块转换为一个24位的二进制数。 ...

keycloak目前提供了几种分布式缓存,我们自己的缓存,如果希望是分布式的,可以将缓存添加到以下几个缓存里即可 actionTokens clientSessions loginFailures offlineClientSessions offlineSessions sessions work 如果你希望自己开发分布式缓存,还是需要复杂的,需要配置,检查,获取远程分布式缓存的代码,比较复杂,有兴趣的同学,可以查看keycloak源代码,关于keycloak-model-infinispan项目的实现。 直接使用现有分布式缓存 下面代码,将在现有的work缓存里,添加自己的缓存he...

  XfpaLQko7Ata   2023年11月30日   13   0   0 ide数据缓存数据ide缓存

Kubernetes(K8s)中的Service用于将应用程序的一组Pod暴露给其他应用程序或服务,以便它们可以相互通信。K8s中的Service主要分为以下几种类型,每种类型都有其特点和适用场景: ClusterIPService: 特点:ClusterIPService为Pod提供了一个稳定的虚拟IP地址,这个IP只能从Kubernetes集群内部访问。ClusterIPService可以用于内部服务通信,对外部不可见。 使用场景:适用于需要在同一集群内的不同服务之间建立通信的情况,例如数据库服务、内部API等。 NodePortService: 特点:NodePortSer...

  XfpaLQko7Ata   2023年11月25日   14   0   0 使用场景使用场景PodDNSDNSPod

在Kubernetes中,Service资源的type字段有多种选项,其中之一是ExternalName。ExternalName类型的服务用于将外部服务引入到Kubernetes集群中,通常会将外部服务的域名映射到Kubernetes集群中的一个DNS名称。 ExternalName服务类型不涉及端口映射或负载均衡。它只是一个DNS别名,将Kubernetes内部的服务名称映射到一个外部域名,而不更改端口号。这对于需要在Kubernetes集群内部引用外部服务的情况非常有用,但它不涉及端口的映射。 这是一个示例ExternalName服务的YAML配置: apiVersion:v1 kin...

  XfpaLQko7Ata   2023年11月25日   52   0   0 端口号80端口80端口DNSDNS端口号

reCAPTCHA是Google公司推出的一项验证服务,使用十分方便快捷,在国外许多网站上均有使用。它与许多其他的人机验证方式不同,它极少需要用户进行各种识图验证。 它的使用方式如下如所示,只需勾选复选框即可通过人机验证。 虽然简单但效果很好,因为Google会收集一些浏览器信息,网络信息,鼠标轨迹等信息,最后通过神经网络判断是否为机器人。而且reCAPTCHA还可以记录并分析使用该人机验证的请求次数,并对可以的请求进行统计和监管。 一些准备工作:需要一个谷歌账号没有的先去注册一个 reCAPTCHA官网:https://developers.google.com/recaptcha/(需...

ruoyi框架的vue版本中,对字典的回显样式的设计,默认有以下几种 如果希望添加一种红色字体的,可以这样实现,实现后你的回显就多了一种红色字体的样式了 具体实现的方法 在app.vue中,添加对象的css样式 <styletype="text/css"> .el-tag--redColorFont{ color:ff0000; background:none; font-size:14px; display:inline-block; border:none; } </style> 在src/view/system/dict/data.vue文件中,添加...

上游服务和下游服务 在网络通信中,数据流的方向确实通常是由上游到下游,因此,下游服务接收请求并发送响应,而上游服务发送请求并接收响应。感谢您的指正,对于了解和描述数据流的方向非常重要,而上游服务通常是请求的发起方,下游服务通常是响应的接收方。 以nginx为例说一下 浏览器发去某个域名,到达DNS解析,到达对应的LB上,LB将根据域名转发到对应的nginx上,而发到nginx的流量,客户端称为downstream,服务端称为upstream。 downstream和upstream主要是定义数据的流向,如A->B表示数据从A流到B,则A是upstream,B是downstream。 对...

  XfpaLQko7Ata   2023年11月24日   43   0   0 客户端nginxnginx客户端DNSDNS

用到的技术 父组件向子组件的传值类型检查和默认值:您可以为props指定类型检查和默认值。这可以确保传递给子组件的数据符合期望的类型,以及在没有传递数据时具有合理的默认值。例如: props:{ message:{ type:String, default:'DefaultMessage' }, count:{ type:Number, default:0 } } 在上述示例中,message的默认值是字符串'DefaultMessage',count的默认值是数字0。 标签组件的效果如下 封装代码 <template> <div> <el-row&g...

本文介绍如何在vue中定义插件,注册插件和使用插件 插件目录 /src/plugins 插件入口文件 /src/plugins/index.js importcachefrom'./cache' importmodalfrom'./modal' //安装默认插件,在main.js中引入,通过Vue.use()使用它,因为index.js里使用exportdefault导出,所有在main.js里导入时可以不用加{},直接importpluginsfrom"/plugins"; exportdefault{ install(Vue){ //缓存对象 Vue.prototype.$cache=c...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~