随笔分类 -  Java

摘要:Kafka最早是由LinkedIn公司开发的,作为其自身业务消息处理的基础,后LinkedIn公司将Kafka捐赠给Apache,现在已经成为Apache的一个顶级项目了,Kafka作为一个高吞吐的分布式的消息系统,目前已经被很多公司应用在实际的业务中了,并且与许多数据处理框架相结合,比如Hadoo 阅读全文
posted @ 2021-07-25 19:44 smartcat994 阅读(62) 评论(0) 推荐(0)
摘要:ES官网:www.elastic.co ES可视化工具:ElasticHD 快速学习文档:https://learnku.com/docs/elasticsearch73 概念扫盲:https://juejin.cn/post/6844904051994263559;https://juejin.c 阅读全文
posted @ 2021-07-25 13:43 smartcat994 阅读(121) 评论(0) 推荐(0)
摘要:在工作的一年以来,其实一直只是把Maven当作一个工具来进行使用,并没有太多的去看过,大言不惭的说 甚至连官网都很少点进去看。依赖着各个插件进行打包部署,最近跳槽到了新的公司,在打包的时候发现了很多不一样的地方。于是回过头来看下Maven。弥补下不足之处。 maven的官网:https://mave 阅读全文
posted @ 2021-07-04 10:45 smartcat994 阅读(57) 评论(0) 推荐(0)
摘要:遇到一个需求:实现自定义文书,要求如下: 支持分库情况 支持留空部分自动填充 解决前端打印问题 支持电子签名功能 名词分析: 1.什么是自定义文书;自定义文书应该是类似Word,或者富文本类型的可进行样式编辑的功能。类似如下图所示的内容: 可以编辑样式,可以选择留空以及数据填充部分。且无编程经验人员 阅读全文
posted @ 2021-04-29 23:20 smartcat994 阅读(291) 评论(0) 推荐(0)
摘要:流经网络的数据总是具有相同的类型:字节。这些字节是如何流动的主要取决于我们所说的 网络传输—一个帮助我们抽象底层数据传输机制的概念。用户并不关心这些细节;他们只想确 保他们的字节被可靠地发送和接收。——————>字符流构建在字节流基础之上(通常还要传入一个字符集编码作为参数),为方便读取“文本文件” 阅读全文
posted @ 2021-04-25 15:03 smartcat994 阅读(254) 评论(0) 推荐(0)
摘要:概述 Netty解决了两个开发的关注领域,我们可将其大致标记为技术和体系结构。它是基于Java NIO的异步和事件驱动的实现,以及大部分的设计模式,将应用程序逻辑从网络层解耦。 先大致认为Netty网络的抽象如下: Channel——Socket EventLoop——控制流、多线程处理、并发 Ch 阅读全文
posted @ 2021-04-22 15:19 smartcat994 阅读(142) 评论(0) 推荐(0)
摘要:这边开始写一个Demo来熟悉下Netty的使用,Demo主要为写一个Echo服务器来实现服务器和客户端之间的交流问题 ChannelHandler是一个接口簇的父接口,它的实现负责接收并响应事件通知。在Netty应用程序中,所有的数据处理逻辑都是包含在这下核心抽象的实现中。需要响应传入的消息,那么就 阅读全文
posted @ 2021-04-21 19:02 smartcat994 阅读(70) 评论(0) 推荐(0)
摘要:Netty和IO Netty项目致力于提供一个异步事件驱动的网络应用程序框架和工具,以快速开发可维护的高性能和高可扩展性协议服务器和客户端。 最早的网络编程开发人员是通过复杂的C语言套接字库来进行网络编程通信,例如使用Java的ServerSocket,JDK1.0时期的产物。这种解决方式最大的问题 阅读全文
posted @ 2021-04-21 16:39 smartcat994 阅读(117) 评论(0) 推荐(0)
摘要:由于现在的工作是偏物联网方向的,多学一点总归不会错的。 物联网(Internet of Things,IoT)最近曝光率越来越高。虽然HTTP是网页的事实标准,不过机器之间(Machine-to-Machine,M2M)的大规模沟通需要不同的模式:之前的请求/回答(Request/Response) 阅读全文
posted @ 2021-04-20 23:04 smartcat994 阅读(166) 评论(0) 推荐(0)
摘要:物理层:在以太网或电话线路等物理曾的设备上进行传输。在物理层面上使用的介质不同就会有不同的效果(带宽、可靠性、安全性、延迟)等 网络接口层(数据链路层):网络接口层利用以太网中的数据链路层进行通信,因此属于接口层。也就是说,它其实更像是一个驱动层的实现 互联网层(网络层):互联网使用IP协议,它相当 阅读全文
posted @ 2021-04-20 22:24 smartcat994 阅读(640) 评论(0) 推荐(0)
摘要:周五在做一个推送需求的时候出现了一个问题。需求大致是讲一个Im通信中的消息通信的实体类存入缓存的时候,但在Redis里面多了几个字段,导致之后序列化出来的时候,属性增多无法转化为实体,代码报错。 先说解决办法由于引用的是jar包,无法修改实体类而且用的是一套相对成熟的sdk所以不推荐改动源码。使用J 阅读全文
posted @ 2021-04-10 22:25 smartcat994 阅读(914) 评论(0) 推荐(0)
摘要:异常处理的两大组成要素是抛出异常和捕获异常。这两大要素共同实现程序控制流的非正常转移。 抛出异常可分为显式和隐式两种。显式抛异常的主体是应用程序,它指的是在程序中使用“throw”关键字,手动将异常实例抛出。隐式抛异常的主体则是 Java 虚拟机,它指的是 Java 虚拟机在执行过程中,碰到无法继续 阅读全文
posted @ 2021-01-11 14:15 smartcat994 阅读(154) 评论(0) 推荐(0)
摘要:在 Java 程序里,如果同一个类中出现多个名字相同,并且参数类型相同的方法,那么它无法通过编译。也就是说,在正常情况下,如果我们想要在同一个类中定义名字相同的方法,那么它们的参数类型必须不同。这些方法之间的关系,我们称之为重载。 这个限制可以通过字节码工具绕开。也就是说,在编译完成之后,我们可以再 阅读全文
posted @ 2021-01-11 10:50 smartcat994 阅读(131) 评论(0) 推荐(0)
摘要:Java 语言的类型可以分为两大类:基本类型(primitive types)和引用类型(reference types),Java 的基本类型,它们是由 Java 虚拟机预先定义好的。 至于另一大类引用类型,Java 将其细分为四种:类、接口、数组类和泛型参数。由于泛型参数会在编译过程中被擦除,因 阅读全文
posted @ 2021-01-08 16:53 smartcat994 阅读(97) 评论(0) 推荐(0)
摘要:在 Smalltalk(真正的面向对象设计的早一代)中,所有的值都是对象。因此,许多人认为它是一门纯粹的面向对象语言。Java 则不同,它引进了八个基本类型,来支持数值计算。Java 这么做的原因主要是工程上的考虑,因为使用基本类型能够在执行效率以及内存使用两方面提升软件性能。 Java 的基本类型 阅读全文
posted @ 2021-01-08 15:26 smartcat994 阅读(108) 评论(0) 推荐(0)
摘要:Netty 是一个高性能网络应用框架,应用非常普遍,目前在 Java 领域里,Netty 基本上成为网络程序的标配了。Netty 框架功能丰富,也非常复杂,今天我们主要分析 Netty 框架中的线程模型,而线程模型直接影响着网络程序的性能。 网络编程性能的瓶颈 BIO 模型里,所有 read() 操 阅读全文
posted @ 2021-01-06 14:25 smartcat994 阅读(189) 评论(0) 推荐(0)
摘要:Guava 是 Google 开源的 Java 类库,提供了一个工具类 RateLimiter。场景:假设我们有一个线程池,它每秒只能处理两个任务,如果提交的任务过快,可能导致系统不稳定,这个时候就需要用到限流。 //限流器流速:2个请求/秒 RateLimiter limiter = RateLi 阅读全文
posted @ 2021-01-06 10:31 smartcat994 阅读(590) 评论(0) 推荐(0)
摘要:Java 里 String 这个类在实现 replace() 方法的时候,并没有更改原字符串里面 value[]数组的内容,而是创建了一个新字符串,这种方法在解决不可变对象的修改问题时经常用到。如果你深入地思考这个方法,你会发现它本质上是一种 Copy-on-Write 方法。所谓 Copy-on- 阅读全文
posted @ 2021-01-05 16:51 smartcat994 阅读(207) 评论(0) 推荐(0)
摘要:解决并发问题,其实最简单的办法就是让共享变量只有读操作,而没有写操作。这个办法如此重要,以至于被上升到了一种解决并发问题的设计模式:不变性(Immutability)模式。所谓不变性,简单来讲,就是对象一旦被创建之后,状态就不再发生变化。 不再变化第一个想到的就是final,初始化之后就不可变。 将 阅读全文
posted @ 2021-01-05 16:02 smartcat994 阅读(194) 评论(0) 推荐(0)
摘要:首先还是看多线程多进程在硬件上意味着什么,对于多CPU情况,多线程是如何进行调解的。复习下基本的概念 进程:是操作系统(OS)[windows,Linux,Mac]进行资源(CPU、内存、磁盘、IO、带宽等)分配的最小单位——>QQ,微信,网易云等; 线程:是CPU调度和分配的基本单位。一个进程可由 阅读全文
posted @ 2021-01-04 14:43 smartcat994 阅读(1600) 评论(0) 推荐(0)