
框架
程序员plus
这个作者很懒,什么都没留下…
展开
-
架构知识使用Redis的分布式Java锁
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。了解有关分布式锁定以及如何在项目中实现它的更多信息!什么是分布式锁定?在多线程程序中,不同的线程可能需要访问相同的资源。但是,允许所有线程同时访问资源可能导致争用情况,错误和其他意外行为。为了确保没有两个线程可以同时访问同一资源,并确保以可预测的顺序对资源进行操作,程序员使用一种称为锁的机...原创 2020-04-09 11:49:11 · 444 阅读 · 0 评论 -
解决Java应用程序中的应用程序性能
如果你是Java开发人员,则可能需要听一些提示以保持应用程序的性能。在解决与NFR相关的问题(尤其是应用程序性能)时,我总是在思考为什么我们作为开发人员对性能的重视程度较低(总是存在荣誉例外)。这是由于缺乏认识吗?很多时候,我们仅在性能测试时或部署后才开始考虑性能。速度(速度)和体积(大小)的增加已影响到我们的日常生活:我们的手机已从2G变为4G,而40-80 GB的硬盘曾经是一种奢侈...原创 2020-04-08 11:11:11 · 503 阅读 · 0 评论 -
技术干货MySQL分片DevOps挑战
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。之前,我们讨论了MySQL分片的应用程序和设计挑战以及可能导致并影响你的业务灵活性的一些相应业务挑战。 但是,MySQL如何应对DevOps挑战呢?作为参考,以下是有关MySQL分片的简要说明:MySQL分片是将MySQL应用程序工作负载划分到多个不同的MySQL数据库服务器上的策略,从而允许查询...原创 2020-03-26 10:26:38 · 368 阅读 · 0 评论 -
JVM和Docker默认设置中的陷阱
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。以下是JVM中Docker默认设置之间的一些常见陷阱。首先,有很多关于JVM和容器意识的文章:在本文中,我使用Java 11,这意味着垃圾收集器的默认值应该是G1GC! 让我们看一下默认值,JVM会根据内存大小和提供的CPU自动选择这些默认值。基于Docker CPU的默认GC$ docker ...原创 2020-03-16 15:19:00 · 323 阅读 · 0 评论 -
具有Spring Boot和MySQL的Docker:Docker Compose(第2部分)
通过优锐课的java的架构学习,特整理分享出本教程系列的第二部分演示了如何在Docker CLI和示例应用程序中使用docker-compose来运行多个容器。在上一篇文章中,我写了有关Docker,运行数据库所需的CLI命令以及Spring Boot应用程序的文章。 我们使用Dockerfile来设置环境并通过分别运行容器然后在它们之间建立链接来运行应用程序。 但是对于多个容器应用程序,我们可...原创 2020-02-07 16:01:49 · 362 阅读 · 0 评论 -
实用技能 使用Docker部署ELK
通过优锐课的java学习分享中,在本教程中,我们将了解如何使用这些工具来收集日志并通过Elasticsearch + Logstash + Kibana(又名ELK)对其进行管理。java面试必备之JVM+GC教程开发网络应用程序时,我喜欢参考十二要素应用程序建议。 他们处理应用程序日志的方法在第十一条“命令”中:它不应尝试写入或管理日志文件。 而是,每个正在运行的进程将其未缓冲的事件流写入...原创 2020-02-04 17:04:37 · 586 阅读 · 0 评论 -
Netty:可能是世界上最好的包装结构
通过优锐课的java学习,在依赖项和包结构方面,Netty可能是首屈一指的。 看看是什么使它如此出色Netty的包装结构很棒。每个程序员都应该研究它。 每个系统都应该模仿它; 每个项目经理都应将其打印出来,打在墙上,然后对开发人员说:“那样”。Netty是一个“ …用于快速开发可维护的高性能协议服务器和客户端的异步事件驱动的网络应用程序框架”,但这并不重要,因为我们没有分析其行为。 而是看图...原创 2020-01-16 16:04:03 · 489 阅读 · 0 评论 -
Java垃圾收集器和参考对象
我们来看一下Java中的垃圾收集器概念,以及它可以处理的各种引用对象类型,这使Java GC神秘化!通过优锐课的java学习分享中,我们将讨论Java中的一些内存管理概念,并将重点放在垃圾收集器与可用的不同参考对象之间的交互上。整理成了文档呈现在本文中,给大家参考学习。这不是介绍,所以让我们相互同意,你已经掌握了Java Heap和GC基础知识。 许多文章都很好地涵盖了该主题,你实际上可能想知...原创 2019-12-28 17:38:39 · 253 阅读 · 0 评论 -
Java中的Redis 哨兵高可用性
在优锐课的java架构学习分享中,让我们探索Redis Sentinel,看看如何在Java上运行它什么是Redis哨兵?可用性是任何企业数据库中最重要的质量之一。用户必须保证他们可以访问所需的信息和见解,从而在工作中表现出色。但是,确保数据库在需要时可用是一件容易的事,而做起来却容易。术语“高可用性”是指可以连续运行而不会出现故障的系统,该系统的时间长度比平均时间长。Redis Sent...原创 2019-12-28 10:38:35 · 302 阅读 · 0 评论 -
Apache Kafka应用程序中的机器学习和实时分析(第二部分)
在优锐课的java学习分享中,这篇文章探讨了构建ML基础结构的特定部分:在Kafka应用程序中部署分析模型以进行实时预测。文章的第一部分在这啦,记得先看哦,不然看不懂哈,更有连贯性。Apache Kafka应用程序中的机器学习和实时分析(第一部分)嵌入式模型的流处理除了使用模型服务器和RPC通信之外,你还可以将模型直接嵌入到Kafka应用程序中。 这可以是利用Kafka Streams或K...原创 2019-12-27 12:03:11 · 286 阅读 · 0 评论 -
Apache Kafka应用程序中的机器学习和实时分析(第一部分)
在优锐课的java学习分享中,这篇文章探讨了构建ML基础结构的特定部分:在Kafka应用程序中部署分析模型以进行实时预测。Apache Kafka与机器学习(ML)之间的关系是一个有趣的话题,我在如何使用Apache Kafka在生产中构建和部署可伸缩机器学习以及使用Apache Kafka推动尖端机器学习方面写了很多。这篇文章介绍了构建机器学习基础架构的特定部分:在Kafka应用程序中部署分...原创 2019-12-27 11:41:11 · 412 阅读 · 0 评论 -
使用Spring Boot和Cloudant入门微服务
通过优锐课的java架构分享学习中,讨论了关于创建一个简单的微服务来管理Cloudant NoSQL数据库中的产品评论专题。收获颇丰,整理出来给大家参考学习,尤其是架构思维导图对于正在学习中的人很受益!预计时间阅读和遵循本教程中的步骤大约需要30分钟到一个小时。先决条件要完成本教程,你需要以下内容:JDK1.82.3以上版本Git客户安装这些工具后,请将示例应用程序从GitH...原创 2019-12-26 11:34:46 · 402 阅读 · 0 评论 -
精选干货分享 Java线程教程:使用Java创建线程和多线程
通过优锐课的java学习分享中,讨论了对Java Thread概念的简要介绍,很多人觉得很棘手。与许多其他计算机语言不同,Java提供了对多线程的内置支持。 Java中的多线程包含两个或多个可以同时运行的部分。 Java线程实际上是一个轻量级进程。本文将向你介绍许多人发现棘手或难以理解的所有Java Thread概念。我将介绍以下主题:1.什么是Java线程?2.Java线程模型3.J...原创 2019-12-19 10:12:17 · 265 阅读 · 0 评论 -
小白必须要懂的MongoDB:基础知识总结
在优锐课的学习分享沙龙中,研究什么是MongoDB,什么是NoSQL数据库,以及对现有数据库管理系统的介绍。码了很多知识点,分享给大家。1. 目的此外,我们将讨论MongoDB功能-为什么使用MongoDB以及MongoDB历史记录。 此外,我们还将通过一些示例查看MongoDB应用程序和MongoDB安装。2.什么是NoSQL数据库?在开始之前,我们必须了解NoSQL。 NoSQL或“ ...原创 2019-12-18 10:33:46 · 336 阅读 · 0 评论 -
干货Spring Boot系列:使用MyBatis
通过优锐课核心java学习笔记中,我们可以看到,MyBatis是用于高级映射和存储过程的SQL框架。码了很多专业的相关知识, 分享给大家参考学习。MyBatis是一个SQL映射框架,支持自定义SQL,存储过程和高级映射。SpringBoot不为MyBatis集成提供官方支持,但是MyBatis社区为MyBatis构建了SpringBoot入门程序。创建一个SpringBoot Maven项目...原创 2019-12-17 10:31:33 · 301 阅读 · 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 · 269 阅读 · 0 评论 -
总结分享-使用ELK堆栈部署Kafka(part:1)
在本文中,通过优锐课核心java学习笔记中,我们可以看到,将展示如何使用ELK Stack和Kafka部署建立弹性数据管道所需的所有组件。码了很多专业的相关知识, 分享给大家参考学习。如有不足之处,欢迎补充建议!在发生生产事件后,恰恰在你最需要它们时,日志可能突然激增并淹没你的日志记录基础结构。 为了防止Logstash和Elasticsearch遭受此类数据突发攻击,用户部署了缓冲机制以充当...原创 2019-12-16 14:16:34 · 295 阅读 · 0 评论 -
关于Linux运行级别,正确理解在这
通过优锐课核心java学习笔记中,我们可以看到关于Linux运行级别,码了很多专业的相关知识, 分享给大家参考学习。了解有关Linux运行级别的更多信息-正确的方法!你可以将Linux运行级别视为操作系统运行的不同“模式”。这些模式或运行级别中的每一个都有其自己的已打开或关闭的进程和服务的列表。 从Linux启动时开始,它始终处于某个运行级别。随着你继续使用计算机,此运行级别可能会更改,具体...原创 2019-12-14 21:50:22 · 831 阅读 · 0 评论 -
Spring Cloud Config Server —程序员门
通过优锐课核心java学习笔记中,我们可以看到,更改微服务的属性可能会导致一个复杂的问题。 在本文中,我们将看到Spring Cloud Config Server和微服务如何相处。码了很多专业的相关知识, 分享给大家参考学习。在分布式系统中管理微服务的配置是一项繁琐且耗时的任务,尤其是当我们谈论的是由大量微服务组成的大型系统时。每次需要更改微服务的配置时,都将转到相应的项目,更改其配置,然后...原创 2019-12-14 17:34:56 · 324 阅读 · 0 评论 -
在Java中快速创建kafka
在优锐课的java学习分享中,这个详细的教程将帮助你创建一个简单的Kafka生产者,该生产者可将记录发布到Kafka集群。在本教程中,我们将创建一个简单的Java示例,该示例创建一个Kafka生产者。 你创建一个名为my-example-topic的新复制的Kafka主题,然后创建一个使用该主题发送记录的Kafka生产者。将向Kafka制作人发送记录。同步发送记录,稍后,你将异步发送记录。在你...原创 2019-12-14 15:23:22 · 452 阅读 · 0 评论 -
如何使用Spring Cloud Contract进行测试
通过优锐课核心java学习笔记中,我们可以看到如何使用Spring Cloud Contract进行测试,码了很多专业的相关知识, 分享给大家参考学习。在使用Spring Cloud Contract进行测试了解有关消费者/提供商关系的更多信息以及如何使用Spring Cloud合同进行测试; 测试和验证API通信。1、了解如何使用Spring Cloud进行测试。随着许多行业转变为微服务...原创 2019-12-13 17:20:09 · 460 阅读 · 0 评论 -
面试题解答系列:关系型数据库和非关系型数据的比较
一、关系型数据库关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织优点:1、易于维护:都是使用表结构,格式一致;2、使用方便:SQL语言通用,可用于复杂查询;3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。缺点:1、读写性能比较差,尤其是海量数据的高效率读写;2、固定的表结构,灵活度稍欠;3、高并发读写需求,传统关系型数据库来说,硬盘...原创 2019-08-06 16:01:51 · 1854 阅读 · 0 评论 -
socket 和mina 的区别
MINA,Grizzly[grizzly-nio-framework],xSocket都是基于 java nio的 server framework. 这里的性能缺陷的焦点是指当一条channel上的SelectionKey.OP_READ ready时,1.是由select thread读完数据之后再分发给应用程序的handler,2.还是直接就分发,由handler thread来负责读数...原创 2019-08-08 11:28:37 · 1002 阅读 · 0 评论 -
面试题解答系列:算法连载之求解两个有序数组的中位数
问题给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。找出这两个有序数组的中位数。假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.合并两个有序数组来获得中位数1、先将两个有...原创 2019-08-09 17:06:44 · 646 阅读 · 0 评论 -
面试题解答系列:排序算法的时空复杂度、稳定性分析
1.基本概念时间复杂度:一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法的语句执行次数称为语句频度或时间频度。记为T(n)。n称为问题的规模,当n不断变化时,时间频度T(n)也会不断变化。但有时我们想知道它变化时呈现什么规律,为此,引入时间复杂度概念。若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数...原创 2019-08-09 18:20:27 · 1082 阅读 · 1 评论 -
面试题解答系列:java newCachedThreadPool 线程池使用在什么情况下?
Executors 是一个Java中的工具类。提供工厂方法来创建不同类型的线程池。从上图中也可以看出,Executors的创建线程池的方法,创建出来的线程池都实现了ExecutorService接口。常用方法有以下几个:newFiexedThreadPool(int Threads):创建固定数目线程的线程池。newCachedThreadPool():创建一个可缓存的线程池,调用execut...原创 2019-08-10 17:30:19 · 2121 阅读 · 1 评论 -
GC的两种判定方法:引用计数与引用链
原文转自:https://zhuanlan.zhihu.com/p/77760838作者:旧港94转侵删Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Ja...转载 2019-08-12 17:22:43 · 923 阅读 · 1 评论 -
两个对象相互引用会不会被GC?
两个相互引用的对象会被GC垃圾回收吗?答案应该是不会!只要对象、属性等存在被引用,GC都会过滤掉的,不会被回收。笔者就简单谈一谈其中的原理吧。判断对象是否存活,可以考虑以下方法。1、引用计数算法给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1。当引用失效时,计数器值就减1。任何时刻计数器为0的对象就是不可能再被使用的。但是主流的java虚拟机没有采用引用计数算法,其中最主要的原...原创 2019-08-12 17:30:26 · 2351 阅读 · 0 评论 -
全家都是程序员,会是一种什么样的体验?大部分人不知道是什么
转载地址:https://zhuanlan.zhihu.com/p/78322995来源:知乎作者:旧港94今天小编在网上看到一群程序员们在集体讨论一个非常好玩的话题“如果全家都是程序员,那将会是怎么样的一种体验?”下面小编就把网友们的这些脑洞分享给大家!1、网友甲:我觉得我小学可能毕不了业小时候,爸爸教数学:来,爸爸教你数小花,0,1,2,3,,,,妈妈教我学的英语:“hello...转载 2019-08-15 17:59:40 · 355 阅读 · 0 评论 -
为什么说java是只有值传递?
如果你学的第一门程序语言是java可能对这个传递方式没有那么敏感,如果学了c或c++,然后再学java,那么可能对这个问题会感到困惑。1.值传递与引用传递的概念在将传递方式之前先理解一下形参与实参。形式参数:是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。实际参数:在调用有参函数时,主调函数和被调函数之间有数据传递关系。在主调函数中调用一个函数时,函数名后面括...原创 2019-08-19 16:47:23 · 266 阅读 · 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 · 220 阅读 · 0 评论 -
微服务架构-使用Docker进行Spring Boot开发
优锐课学习笔记中研究了如何将容器带入Spring Boot项目。 在这里,我们使用Docker来包含Java REST后端,而无需担心操作系统。一起来看看AtSea Shop是示例店面应用程序,可以部署在不同的操作系统上,并且可以针对企业开发和运营环境进行自定义。 在较早的帖子中,我讨论了该应用程序的体系结构。 在本文中,我将介绍如何设置开发环境以调试在容器中运行的Java REST后端。1、...原创 2019-12-12 12:03:42 · 340 阅读 · 0 评论 -
面试题解答系列:在 Spring中如何注入java集合
您已经看到了如何配置基本数据类型使用value属性和使用标签的ref属性在你的bean配置文件中的对象引用。这两种情况下处理过单值到一个bean。现在什么样,如果你想通过多元价值,如Java Collection类型List, Set, Map 及 Properties。要处理这种情况,Spring提供了四种类型的如下集合的配置元素:元素描述list这有助于注入值列表Li...原创 2019-08-07 11:29:51 · 2325 阅读 · 0 评论 -
面试题解答系列:解释Spring框架中bean的生命周期
Bean的生命周期:Bean的定义——Bean的初始化——Bean的使用——Bean的销毁Bean的定义Bean 是 spring 装配的组件模型,一切实体类都可以配置成一个 Bean ,进而就可以在任何其他的 Bean 中使用,一个 Bean 也可以不是指定的实体类,这就是抽象 Bean 。Bean的初始化Spring中bean的初始化回调有两种方法一种是在配置文件中声明init-m...原创 2019-08-07 11:02:20 · 7572 阅读 · 1 评论 -
Java多线程之Executor框架「Callable、Future和Executor」
引言Executor框架是指JDK 1.5中引入的一系列并发库中与Executor相关的功能类,包括Executor、Executors、ExecutorService、Future、Callable等。一、为什么要引入Executor框架?1、如果使用new Thread(…).start()的方法处理多线程,有如下缺点:① 开销大。对于JVM来说,每次新建线程和销毁线程都会有很大的开销...原创 2019-07-22 19:56:19 · 694 阅读 · 0 评论 -
Spring的连接数据库以及JDBC模板(实例讲解)
前言今天介绍的是关于Spring的数据库连接以及Jdbc模板的相关API方法,虽然在学习了hibernate之后,会知道实现数据库连接一般都是使用hibernate等持久化框架来实现的。但是,很多时候一些涉及到事务的东西使用这些框架并不能够实现,所以我们还需要结合spring来实现相关的需要。一、创建工程、导包要想使用Spring的jdbc模板前,还需要导入相关的jar包:二、进行相关的...原创 2019-07-15 11:54:49 · 2388 阅读 · 0 评论