![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微服务高并发必备技术栈
文章平均质量分 94
Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。
方寸之间不太闲
成长路
展开
-
Java经典框架之Dubbo
系统正常运行了一段时间后,虽然加的有缓存,使绝大多数的数据库操作可以不通过数据库就能完成,但是任然有一部分的操作(缓存访问不命中,缓存过期)和全部的写操作需要访问数据库,当用户达到一定规模后,数据库因为负载压力过大还是会成为系统的瓶颈,应用和数据分离后,不同特性的服务器承担着不同的服务角色,网站的并发处理能力和数据存储空间都得到了很大的改善,支持网站业务进一步发展,但是随着用户逐渐增多,数据库压力越来越大,访问延迟,进而影响整个网站的性能,此时需要进一步优化。Dubbo 框架,是基于容器运行的.。原创 2024-01-05 23:44:48 · 1088 阅读 · 1 评论 -
Java经典框架之Zookeeper
ZXID,事务id,为节点的更新程度,ZXID越大,代表Server对Znode的操作越新。我们需要在Zookeeper的数据存储的目录中创建一个myid文件,文件中的内容只有一行信息,即表示我们集群几点的标识,范围是1-255,每个节点的myid的数字和我们在zoo.cfg中配置的server.数字是对应的。假设Server1的ZXID为145,Server3的为122,第一轮投票中,Server1和Server3都投自己,票分别为(1,145)、(3,122),将自己的票发送给集群中所有机器。原创 2024-01-05 10:11:54 · 1890 阅读 · 1 评论 -
Java经典框架之Redis
返回的接口是key和列表元素值。随着Redis写命令执行的越来越多,会有很多的写命令被记录到AOF文件中,AOF文件会越来越大,造成的后果就是还原操作的时间就会越来越长,为了解决这个问题可以向Redis发送 BGREWRITEAOF ,该命令会移除AOF中冗余的命令。Redis 命令只会因为错误的语法而失败(并且这些问题不能在入队时发现),或是命令用在了错误类型的键上面:这也就是说,从实用性的角度来说,失败的命令是由编程错误造成的,而这些错误应该在开发的过程中被发现,而不应该出现在生产环境中。原创 2024-01-05 09:16:19 · 1699 阅读 · 1 评论 -
互联网分布式应用之RabbitMQ
如果忘记掉ACK,那么后果会比较严重,当Consumer退出时,Message会一直重复分发,然后RabbitMQ会占用越来越多的内存,由于RabbitMQ会长时间的运行,因此这个 内存泄漏 是致命的,我们可以通过设置重试次数来防止这个问题,在Consumer的application.properties中设置如下参数。如果相匹配,消息将会投递到该队列。交换器是通过路由键和队列绑定在一起的,如果消息拥有的路由键跟队列和交换器的路由键匹配,那么消息就会被路由到该绑定的队列中。它是消息的容器,也是消息的终点。原创 2024-01-04 20:22:50 · 1161 阅读 · 0 评论 -
互联网分布式应用之SpringCloud
在微服务架构中,我们将一个项目拆分成很多个独立的模块,这些独立的模块通过远程调用来互相配合工作,但是,在高并发情况下,通信次数的增加会导致总的通信时间增加,同时,线程池的资源也是有限的,高并发环境会导致有大量的线程处于等待状态,进而导致响应延迟,为了解决这些问题,我们需要来了解 Hystrix 的请求合并。当配置中心客户端重新启动的时候会显示的执行pull命令来拉取最新的配置信息, 这种方式是需要重启客户端服务的,显然不是太友好,这时我们可以通过Actuator来实现。让整个系统架构更加的合理科学。原创 2024-01-03 23:13:31 · 1484 阅读 · 0 评论 -
互联网分布式应用之SpringDataJPA
Repository 接口是 Spring Data JPA 中为我我们提供的所有接口中的顶层接口,而且是个标志接口,Repository 提供了两种查询方式的支持。JpaRepository接口是我们开发时使用最多接口,其特点是可以帮助我们将其他接口的方法的返回值做适配处理,可以使我们在开发的时候更方便的使用这些方法。通过上面的命令的方式使用的情况,如果查询条件比较复杂的情况下,那么方法的名称会很长,不是很方便而且容易出错,这时我们可以通过@Query注解来实现。定义持久层接口,定义要实现的相关的方法。原创 2024-01-03 08:34:22 · 930 阅读 · 0 评论 -
互联网分布式应用之SpringSecurity
前面介绍的注解的权限管理可以控制用户是否具有这个操作的权限,但是当用户具有了这个权限后进入到具体的操作页面,这时我们还有进行更细粒度的控制,这时注解的方式就不太适用了,这时我们可以通过标签来处里。它提供了完善的认证机制和方法级的授权功能。Spring的初始化操作和SpringSecurity有关系的操作是,会加载介绍SpringSecurity的配置文件,将相关的数据添加到Spring容器中。前面的案例我们的账号信息是直接写在配置文件中的,这显然是不太好的,我们来介绍小如何实现和数据库中的信息进行认证。原创 2024-01-02 21:58:05 · 1354 阅读 · 0 评论 -
互联网分布式应用之SpringBoot
该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。项目开发中会出现开发环境的切换,为了更好的处理我们可以通过Profile来实现,之前在Spring的阶段就已经给大家介绍过了Profile,但是实现相对复杂了点,在SpringBoot中也提供了对Profile的支持,而且更加简化,创建对应的属性文件。我们通过上面的案例发现显示Model中的数据很方便,但是显示的数据的格式可能不满足我们的需求,这时我们需要调整就需要借助内置的函数来帮助我们实现,我们主要介绍字符串和时间相关的函数。原创 2024-01-02 18:29:28 · 1110 阅读 · 0 评论