- 博客(52)
- 收藏
- 关注
原创 3.OpenFeign与负载均衡
声明式 REST 客户端:Feign 通过使用 JAX-RS(JavaApieXtensionsofRESTful webServivces)或 SpringMVc 注解的修饰方式,生成接口的动态实现。Feign,假装、伪装。openFeign 可以将提供者提供的 Restful服务伪装为接口进行消费,消费者只需使用“feign 接口 + 注解”的方式即可直接调用提供者提供的 Restful 服务而无需再使用 RestTemplate。
2024-08-03 18:38:01
1456
原创 一文读懂新版Nacos的使用方式
官网云原生应用简单来说就是 SaaS,跑在 IaaS,PaaS 上的 SaaS开发应用时只需要考虑如何充分利用云端的弹性,容错能力分布式能力,有异于本地化开发简而言之云原生=DevOps+CI/CD+容器化。
2024-08-03 18:36:44
1291
原创 CAS——比加锁更高效的多线程并发场景下数据一致性解决方案
compare and swap的缩写,中文翻译成比较并交换,实现并发算法时常用到的一种技术。它包含三个操作数–内存位置、预期原值及更新值。执行CAS操作的时候,将内存位置的值与预期原值比较:如果相匹配,那么处理器会自动将该位置值更新为新值如果不匹配,处理器不做任何操作,多个线程同时执行CAS操作只有一个会成功。
2024-06-14 09:14:32
1028
1
原创 6.volatile与JMM
由于 volatile 变量只能保证可见性,在不符合以下两条规定的运算场景中,仍需要使用 synchronized 或是 java.util.concurrent 中的锁或者原子类,来保证原子性。内存屏障 : 是一种屏障指令,使得 CPU 或编译器对屏障指令的前和后所发出的内存操作执行一个排序的约束,也称为内存栅栏或栅栏指令。上述 6 条只能保证单条指令的原子性,针对多条指令的组合性原子保证,没有大量加锁,因此,JVM 提供了另外两条原子指令。内存屏障(也称为内存栅栏,屏障指令等)10 个线程并发修改。
2024-03-24 23:38:27
707
原创 4. LockSupport与线程中断
运行上述 demo效果效果运行结果案例二正常启动,正常中断效果,中断之前一直执行interupt()源码效果效果效果
2024-03-03 20:23:14
888
原创 3. Java中的锁
HotSport 虚拟机中,monitor 采用 ObjectMonitor 实现C++源码执行过程Object 底层实现基于 ObjectMonitor.cpp,所有类默认继承自 Object 类,因此每个对象天生就带着一个 monitor 对象每一个锁住的对象均会与 monitor 进行关联objectMonitor.hpp 中的源码片段_count = 0;//记录该线程获取锁的次数//锁的重入次数//指向持有ObjectMonitor对象的线程。
2024-02-26 23:34:35
1052
原创 我的创作纪念日
我喜欢这种充满挑战和成就感的工作,每次解决一个复杂的问题,我都会感到无比的兴奋和满足。在csdn平台上,我经常分享自己的经验和技巧,回答其他人的问题,也从他人那里学习到了很多。在一次偶然的机会中,我接触到了csdn这个平台,看到了许多优秀的Java程序员分享自己的经验和技巧。通过不断的努力和尝试,我发现了自己的不足之处,也找到了自己的优势所在。我喜欢这种充满挑战和成就感的工作,每次解决一个复杂的问题,我都会感到无比的兴奋和满足。
2024-01-16 16:16:57
452
原创 SSL之mkcert构建本地自签名
SSL(Secure Sockets Layer,安全套接层)是一种加密通信协议,最早由Netscape Communications公司于1994年提出。它的主要目的是为网络通信提供安全性,防止数据在传输过程中被窃听、篡改或伪造。SSL技术的核心是公钥加密与私钥解密,在此基础上,发展出了TLS(Transport Layer Security,传输层安全)协议,成为现代网络通信的基础安全手段。
2024-01-16 14:54:20
2762
原创 十. Linux关机重启命令与Vim编辑的使用
关机重启命令shutdown命令其他关机命令其他重启命令系统运行级别系统默认运行级别与查询退出登录命令logout文本编辑器VimVim简介没有菜单,只有命令Vim工作模式Vim常用命令插入命令定位命令删除命令复制和剪切命令替换和取消命令搜索和搜索替换命令保存和退出命令Vim使用技巧
2023-11-18 22:16:55
620
1
原创 九. Linux网络命令
网络命令write网络命令wall网络命令ping首先,ping程序会向域名服务器(DNS)发送请求,解析域名www.baidu.com的IP地址。DNS返回域名的一个别名www.a.shifen.com以及对应的IP地址183.2.172.185。之后ping程序开始向这个地址发送请求报文,每1s发送一个,ping收到ICMP回显应答并将结果显示在终端上,包括ICMP序列号(icmp_seq),生存时间(ttl)和数据包往返时间(time)。最后,给出汇总信息,包括报文总收发情况
2023-11-18 09:50:43
946
原创 SpringCloudConfig分布式配置中心
客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息配置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具来方便的管理和访问配置内容。SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息。
2023-11-10 11:15:28
181
原创 Linux文件处理命令
对文件来讲x权限是其最高权限,对一般文件而言读写权限就够用了,执行权限只有当文件可以运行时,是个脚本/或是命令,才需要赋予x权限,若是日志文件或是txt文件则不需要赋予x权限。| -I | inote号 | 获取目录下文件的唯一标识,一个文件对应一个i节点号,一个i节点号可以对应多个文件 || -rw-r--r-- | 表示这是一个文件,该文件所有者有读写权限,所属组有读的权限,其他人也有读的权限 |对于软连接文件,在获取文件信息,通过箭头指向即可判断文件为软连接文件(源文件丢失时,会呈现红色闪烁状态)
2023-11-10 11:12:17
148
原创 docker 简介与安装
需要正确的理解仓库/镜像/容器这几个概念:Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。image文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。镜像文件。
2023-10-18 16:53:15
86
原创 消息队列(RabbitMQ)(入门)
Producter-Consumer:生产者-消费者Broker:接收和分发消息的应用,RabbitMQ Server(RabbitMQ服务器)就是Message Broker(消息实体):出于多租户和安全因素设计的,把 AMQP 的基本组件划分到一个虚拟的分组中,类似于网络中的namespace概念。当多个不同的用户使用同一个RabbitMQ server提供的服务时,可以划分出多个vhost,每个用户在自己的 vhost 创建 exchange/queue 等Connection(连接)
2023-09-29 23:57:12
218
1
原创 SpringCloud Bus 消息总线
SpringCloudBus消息总线,RabbitMQ,SpringCloudBus动态刷新全局关闭,与定点刷新通知
2023-09-21 11:35:09
245
原创 SpringCloud Config分布式配置中心
SpringCloudConfig分布式配置中心,客户端配置动态刷新,Gitee,Git,配置文件
2023-09-20 17:52:25
190
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人