![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构
程序员plus
这个作者很懒,什么都没留下…
展开
-
流行语之外:微服务模式的简要历史
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。探索过去的软件设计模式对微服务创建的影响介绍微服务是商业应用程序开发中的热门新事物。 微服务一词已取代敏捷,DevOps和RESTful,成为所有履历表和会议演讲都必须使用的热门新流行语。 但是微服务不只是一时的流行。 实际上,它们是所有这些先前概念的演变,并且这种方法已经开始显示出有望解决应用程序...原创 2020-03-16 14:44:35 · 326 阅读 · 0 评论 -
Java中的常见并发陷阱
优锐课java学习分享笔记1.简介在本教程中,我们将看到一些Java中最常见的并发问题。 我们还将学习如何避免它们及其主要原因。2.使用线程安全对象2.1. 共享对象线程主要通过共享对相同对象的访问进行通信。 因此,在对象变化时读取可能会产生意外的结果。 同样,同时更改对象可能会使它处于损坏或不一致的状态。我们避免此类并发问题并构建可靠代码的主要方法是使用不可变对象。 这是因为它们的状...原创 2020-02-25 11:05:03 · 235 阅读 · 0 评论 -
具有Spring Boot和MySQL的Docker:Docker Compose(第2部分)
通过优锐课的java的架构学习,特整理分享出本教程系列的第二部分演示了如何在Docker CLI和示例应用程序中使用docker-compose来运行多个容器。在上一篇文章中,我写了有关Docker,运行数据库所需的CLI命令以及Spring Boot应用程序的文章。 我们使用Dockerfile来设置环境并通过分别运行容器然后在它们之间建立链接来运行应用程序。 但是对于多个容器应用程序,我们可...原创 2020-02-07 16:01:49 · 318 阅读 · 0 评论 -
实用技能 使用Docker部署ELK
通过优锐课的java学习分享中,在本教程中,我们将了解如何使用这些工具来收集日志并通过Elasticsearch + Logstash + Kibana(又名ELK)对其进行管理。java面试必备之JVM+GC教程开发网络应用程序时,我喜欢参考十二要素应用程序建议。 他们处理应用程序日志的方法在第十一条“命令”中:它不应尝试写入或管理日志文件。 而是,每个正在运行的进程将其未缓冲的事件流写入...原创 2020-02-04 17:04:37 · 500 阅读 · 0 评论 -
带有Dubbo的Spring Cloud Alibaba
通过优锐课的java学习分享,看一下如何在阿里巴巴的Spring Cloud实现中使用这个流行的RPC框架。Spring Cloud AlibabaSpring Cloud Alibaba是Alibaba Cloud的Spring Cloud版本。 它由几个阿里巴巴的开源项目Nacos,Sentinel和RocketMQ以及几个阿里云原生商业产品组成,以增强用户在阿里云上的体验。 Spring...原创 2020-01-16 11:45:33 · 1205 阅读 · 0 评论 -
Spring MVC:HTTP消息转换器
了解有关Spring MVC和HTTP消息转换器的更多信息。通常,你需要为用户提供相同的数据,但是以不同的形式(例如JSON,PDF,XLS等)为用户提供。如果你的应用程序是基于Spring Framework的,则可以使用HTTP消息转换器来完成此任务。需要将HTTP请求(或其部分)转换为处理程序方法参数所需的类型(有关更多信息,请参阅处理程序方法—方法参数)时,或者需要处理程序方法返回值时...原创 2020-01-15 16:09:52 · 331 阅读 · 0 评论 -
实用 具有Spring Cloud和 Docker 的微服务架构
如何使用Spring Boot,Spring Cloud,Docker和Netflix的一些开源工具设置微服务架构。本文以使用Spring Boot,Spring Cloud和Docker构建的概念验证应用程序为例,为了解常见的微服务架构模式提供了一个起点。该代码在Github上可用,图像在Docker Hub上可用。你只需一个命令即可启动整个系统。作为该系统的基础,我选择了一个旧项目,该项...原创 2020-01-15 10:59:49 · 376 阅读 · 0 评论 -
为什么在Java中String是不可变的?
String在Java中是不可变的。不可变类只是其实例无法修改的类。创建实例时实例中的所有信息都会初始化,并且无法修改该信息。不变类有很多优点。本文总结了为什么String被设计为不可变的。这篇文章从内存,同步和数据结构的角度说明了不变性概念。1.字符串池的要求字符串池(String intern pool)是“ 方法区”中的特殊存储区。创建字符串时,如果该字符串已存在于池中,则将返回现有字符...原创 2020-01-09 14:33:15 · 278 阅读 · 0 评论 -
学习java不可不知的潜规则
数学和英语很差,可以学java。但是你数学和英语不错的话,有利于你学习java。首先告诉你的是,作为一个初学者想转行学习Java并不是很容易,Java本身是具有一定难度的,虽然说兴趣这东西可以让我们学习不累,但是有多少人学习是因为兴趣,或者有多少人知道自己的兴趣在哪?所以我很明确的告诉你学习这事本来就是一件非常煎熬的事情,没有多少人愿意学习,但是或许你现在是身为一个应届生或者你是一个本职工作...原创 2019-07-01 15:35:44 · 380 阅读 · 0 评论 -
Redis的异步,响应式和RxJava2接口
在优锐课的java架构学习中,让我们探索Redis的异步,反应式和RxJava2接口。异步,响应式和RxJava2都是Java编程语言中的所有相关编程模型。 但是,它们不能在Redis(用于实现内存中数据存储的开源软件项目)中自动提供。好消息是,这三种编程模型都可以在Redis中使用Redisson(Redisson)来使用,Redisson是将Redis与Java集成的第三方客户端库。 在本...原创 2019-12-28 15:19:26 · 789 阅读 · 0 评论 -
Java中的Redis 哨兵高可用性
在优锐课的java架构学习分享中,让我们探索Redis Sentinel,看看如何在Java上运行它什么是Redis哨兵?可用性是任何企业数据库中最重要的质量之一。用户必须保证他们可以访问所需的信息和见解,从而在工作中表现出色。但是,确保数据库在需要时可用是一件容易的事,而做起来却容易。术语“高可用性”是指可以连续运行而不会出现故障的系统,该系统的时间长度比平均时间长。Redis Sent...原创 2019-12-28 10:38:35 · 238 阅读 · 0 评论 -
最佳解读整理 Spring Bean生命周期:使用Spring Aware接口
在优锐课最新Java架构学习分享中,了解有关使用Aware接口访问Spring bean生命周期事件的更多信息,详细的思维导图让在迷茫中的人眼前一亮。码了很多专业的相关知识, 分享给大家参考学习。Spring Aware界面允许你查看Spring Framework的内部工作原理。通过Spring Aware接口,你可以访问Spring上下文或Spring bean生命周期事件。你的Sprin...原创 2019-12-25 11:22:39 · 1104 阅读 · 0 评论 -
RocketMQ:高可用性实施
在优锐课的java学习分享中,我们探索了RocketMQ的HA实现。我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。介绍当我们谈论HA时,通常人们会想到故障转移机制。 但是,使群集可用于消息也被认为是HA。 在某种程度上,我认为这比仅提供经纪人更重要。 毕竟,用户可以并且将会感受到这种可用性的影响。代码段这是场景:假设集群中有2个代理:master-a和master-b。 每...原创 2019-12-24 17:06:58 · 237 阅读 · 0 评论 -
微服务的设计模式(二)
在优锐课的学习分享中,讨论了关于微服务的许多设计模式的详细描述。码了很多专业的相关知识, 分享给大家参考学习。看到这里迷路的朋友们可以先看本文的上部分内容,这样思路更清晰!微服务的设计模式(一)客户端UI组合模式通过分解业务功能/子域来开发服务时,负责用户体验的服务必须从多个微服务中提取数据。 在整体世界中,从UI到后端服务只有一次调用,以检索所有数据并刷新/提交UI页面。 但是,现在不...原创 2019-12-23 11:00:11 · 279 阅读 · 0 评论 -
微服务的设计模式(一)
在优锐课的学习分享中,讨论了关于微服务的许多设计模式的详细描述。码了很多专业的相关知识, 分享给大家参考学习。微服务可以对你的企业产生积极影响。 因此,有必要知道如何处理微服务架构(MSA)和一些微服务设计模式,以及微服务架构的一般目标或原理。 这是微服务架构方法[1]中要考虑的四个目标。降低成本:MSA将降低设计,实施和维护IT服务的总体成本。提高发布速度:MSA将提高从构思到服务部...原创 2019-12-23 10:53:26 · 293 阅读 · 0 评论 -
精选干货分享 Java线程教程:使用Java创建线程和多线程
通过优锐课的java学习分享中,讨论了对Java Thread概念的简要介绍,很多人觉得很棘手。与许多其他计算机语言不同,Java提供了对多线程的内置支持。 Java中的多线程包含两个或多个可以同时运行的部分。 Java线程实际上是一个轻量级进程。本文将向你介绍许多人发现棘手或难以理解的所有Java Thread概念。我将介绍以下主题:1.什么是Java线程?2.Java线程模型3.J...原创 2019-12-19 10:12:17 · 225 阅读 · 0 评论 -
小白必须要懂的MongoDB:基础知识总结
在优锐课的学习分享沙龙中,研究什么是MongoDB,什么是NoSQL数据库,以及对现有数据库管理系统的介绍。码了很多知识点,分享给大家。1. 目的此外,我们将讨论MongoDB功能-为什么使用MongoDB以及MongoDB历史记录。 此外,我们还将通过一些示例查看MongoDB应用程序和MongoDB安装。2.什么是NoSQL数据库?在开始之前,我们必须了解NoSQL。 NoSQL或“ ...原创 2019-12-18 10:33:46 · 278 阅读 · 0 评论 -
干货Spring Boot系列:使用MyBatis
通过优锐课核心java学习笔记中,我们可以看到,MyBatis是用于高级映射和存储过程的SQL框架。码了很多专业的相关知识, 分享给大家参考学习。MyBatis是一个SQL映射框架,支持自定义SQL,存储过程和高级映射。SpringBoot不为MyBatis集成提供官方支持,但是MyBatis社区为MyBatis构建了SpringBoot入门程序。创建一个SpringBoot Maven项目...原创 2019-12-17 10:31:33 · 238 阅读 · 0 评论 -
总结分享-使用ELK堆栈部署Kafka(part:2)
通过优锐课核心java学习笔记中,我们可以看到使用ELK堆栈部署Kafka,码了很多专业的相关知识, 分享给大家参考学习。我又来更啦,关于前部分的详细在这,朋友们不要迷糊,地址在这总结分享-使用ELK堆栈部署Kafka(part:1)步骤3:安装Kibana让我们继续进行到ELK Stack中的下一个组件-Kibana。 和以前一样,我们将使用一个简单的apt命令来安装Kibana:s...原创 2019-12-16 14:44:08 · 230 阅读 · 0 评论 -
总结分享-使用ELK堆栈部署Kafka(part:1)
在本文中,通过优锐课核心java学习笔记中,我们可以看到,将展示如何使用ELK Stack和Kafka部署建立弹性数据管道所需的所有组件。码了很多专业的相关知识, 分享给大家参考学习。如有不足之处,欢迎补充建议!在发生生产事件后,恰恰在你最需要它们时,日志可能突然激增并淹没你的日志记录基础结构。 为了防止Logstash和Elasticsearch遭受此类数据突发攻击,用户部署了缓冲机制以充当...原创 2019-12-16 14:16:34 · 238 阅读 · 0 评论 -
如何使用Spring Cloud Contract进行测试
通过优锐课核心java学习笔记中,我们可以看到如何使用Spring Cloud Contract进行测试,码了很多专业的相关知识, 分享给大家参考学习。在使用Spring Cloud Contract进行测试了解有关消费者/提供商关系的更多信息以及如何使用Spring Cloud合同进行测试; 测试和验证API通信。1、了解如何使用Spring Cloud进行测试。随着许多行业转变为微服务...原创 2019-12-13 17:20:09 · 411 阅读 · 0 评论 -
面试题系列解答:Mysql怎么分库分表
一、何谓分库分表?把原本存储于一个库的数据分块存储到多个库(主机)上,把原本存储于一个表的数据分块存储到多个表上。二、为什么要分库分表?数据库中的数据量不一定是可控的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大。另外,由于无法进行分布式式部署,而一台服务器的资源(CPU、磁盘、内存、IO等)是有...原创 2019-08-05 17:01:06 · 1770 阅读 · 0 评论 -
面试题解答系列:Hibernate中一级缓存使用和详解
什么是一级缓存Hibernate创建每个Session对象时,都会给Session分配一块独立的缓存区,用于存放Session查询出来的对象,这个分配给Session的缓存区称之为一级缓存,也叫Session级缓存为什么使用一级缓存Session读取数据时,会优先向缓存区取数据,如果存在数据直接返回,不存在才会区数据库查询,从而降低了数据库的访问次数。提升了代码的运行效率如何使用一级缓存...原创 2019-08-15 18:22:01 · 134 阅读 · 0 评论 -
摸透Spring MVC真正如何工作核心原理(part:2)
通过优锐课核心Spring MVC学习笔记中,我们可以看到Spring MVC中包含的功能可以在Web应用程序中发挥巨大作用的强大功能,一起来看看。这里看着很迷的小伙伴可以去我主页,翻前面的第一章节,part110、DispatcherServlet:统一请求处理HttpServlet.service()实现通过HTTP动词的类型路由请求,在低级servlet的上下文中非常有意义。 但是,在...原创 2019-12-13 10:09:58 · 153 阅读 · 0 评论 -
摸透Spring MVC真正如何工作核心原理(part:1)
通过优锐课核心Spring MVC学习笔记中,我们可以看到Spring MVC中包含的功能可以在Web应用程序中发挥巨大作用的强大功能。这是Spring Web MVC的强大功能和内部工作的深入研究,它是Spring Framework的一部分。1、项目设置在整篇文章中,将使用最新,最出色的Spring Framework5。我们在这里重点介绍Spring的经典Web堆栈,该框架的第一版已经...原创 2019-12-12 14:51:07 · 149 阅读 · 0 评论 -
面试题解答系列:什么是Spring beans?解释Spring支持的几种bean的作用域
Spring bean 表示受到Spring管理的对象。具体说来,它是被Spring框架容器初始化、配置和管理的对象。Spring bean是在Spring的配置文件中定义(现在也可以通过annotation注解来定义),在Spring容器中初始化,然后注入到应用程序中的。因为在最早的版本中,Spring是被设计用来管理JavaBean的,所以Spring管理的对象会被称为“bean”。当然,现...原创 2019-07-31 17:16:52 · 5453 阅读 · 1 评论 -
系统架构第二篇之系统(下)
一、引言上一篇文章中已经提到系统是具有层次特性,那么系统的层是如何推导出来的呢?本文就主要从系统分层的最终表现反向推导出分层的过程。二、再论系统特性在上一篇文章中根据系统的定义,提炼出系统的两个关键特点:系统的整体和部分、系统的层次结构性。层次特性现在我们大概知道了,在计算机系统中也有接触过,如网络协议的分层、计算机的分层等等。分层是一种表象特征,同时系统也具有整体和部分的特征。通过整体与...原创 2019-05-29 11:24:54 · 157 阅读 · 0 评论