优秀是一种习惯!!!

Golang 有更新!

2023-11-28

Golang 一、 1、方向 区块链、 服务端(美团后台流量支撑(排序,推荐,搜索……),提供负载均衡,cache,容错,按条件分流,统计运行指标(qps\latency等),数据处理,大并发)、 分布式/云计算(CDN、消息推送服务、分布式文件系统) 2、优势、特点

Netty进阶 有更新!

2023-11-28

Netty进阶 一、黏包与半包 1.1 黏包现象 /** * 服务端 */ @Slf4j public class HelloWorldServer{ void start(){ NioEventLoopGroup boss = new NioEventLoopGroup(); NioEventLoopGroup worker = new NioEventLoopGroup(); try{ ServerBootstrap serverBootstrap = new ServerBootstrap(); serverBootstrap.channel(NioServerSocketChannel.class); // 将接收缓冲区调小些观察半包现象 serverBootstrap.option(ChannelOption.SO_RCVBUF, 10); serverBootstrap.group(boss, worker); serverBootstrap.childHandler(new ChannelInitializer<SocketChannel>(){ @Overr....

Netty基础 有更新!

2023-11-28

Netty 一、Netty入门 1.1 概述 Netty是一个异步的(这里异步主要指通过多线程完成方法调用和处理结果相分离(因为如果调用方法的线程和接收数据的线程是同一个,那么意味着是同步)指调用时的异步,不是异步IO)、基于事件驱动(即底层多路复用selector)的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端 1.2 Hello Word //客户端向服务器发送HW,服务器接收不返回 /** * 服务端 */ public class HelloServer{ public static void main(String[] args){ // 1.服务启动器,负责组装netty组件,启动服务器 new ServerBootstrap() // 2.NIO基础部分有用到BossEventLoop, WorkerEventLoop(selector, thread), group组 EventLoop包含了线程和选择器 .group(new NioEventLoopGroup()) // 3.选择服务器的ServerSocketChannel实现 .channel(N....

网络编程基础 有更新!

2023-11-28

Netty 一、NIO基础(Non-blocking io 非阻塞IO) 1、三大组件 【管道、缓冲区、选择器】 1、1 Channel & Buffer channel 类似于stream,它是读写数据的双向通道,可以从channel将数据读入buffer,也可以将buffer中数据写入channel,而之前的stream要么是输入,要么是输出,channel比stream更为底层 常见的channel有: FileChannel 【作为文件传输通道】 DatagramChannel 【做UDP网络传输时传输通道】 SocketChannel 【做TCP时传输通道】 ServerSocketChannel 【做TCP时传输通道 专用服务器】 buffer则用来缓冲读写数据,常见的buffer有 ByteBuffer 【抽象类】 MappedByteBuffer 【实现类】 DirectByteBuffer HeapByteBuffer ShortBuffer IntBuffer LongBuffer FloatBuffer DoubleBuffer 1、2 Selector ....

ES 有更新!

2023-11-28

ES 一、简介 The Elastic Stack,包括Elasticsearch(存储搜索数据)、Kibana、Beats和Logstash(也称为ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elasticsearch,简称ES,ES是一个开源的高扩展的分布式全文搜索引擎,是整个Elastic Stack技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。 存储jsonES好 存储其他格式solar较好

modbus RTU与modbus http区别与适用场景 有更新!

2023-11-28

modbus RTU与modbus http区别与适用场景 Modbus RTU和Modbus HTTP都是Modbus通信协议的变种,但它们在传输方式、通信协议和应用场景上有所不同。 Modbus RTU是一种基于串口通信的Modbus协议,它使用二进制编码格式在设备之间传输数据。它通常被用于连接工业自动化设备,如PLC(可编程逻辑控制器)和传感器。 Modbus RTU协议适用于需要快速和可靠的数据传输的环境,因为它具有较低的传输延迟和较小的数据包大小,可节省通信带宽。 Modbus HTTP是一种基于互联网通信的Modbus协议,它使用HTTP协议在设备之间传输数据。它通常被用于连接远程设备,如智能家居、监控系统和远程测量设备。 Modbus HTTP协议适用于需要远程数据采集和管理的环境,因为它可以通过互联网进行远程数据访问,并且支持RESTful API的Web服务接口。 因此,Modbus RTU和Modbus HTTP都有其独特的优点和适用场景。选择适当的协议取决于具体应用场景和要求。 串口通信与互联网通信 串口通信和互联网通信是两种不同的通信方式,它们各自有其独特的优缺....

AMQP与MQTT选型 有更新!

2023-11-28

AMQP与MQTT选型 一、AMQP优点缺点适用场景 AMQP(Advanced Message Queuing Protocol)和MQTT(Message Queuing Telemetry Transport)都是消息队列协议,用于在分布式系统中传输数据。它们各有优缺点和适用场景。 下面是它们的比较: AMQP 优点 支持广泛的消息模型,包括点对点、发布/订阅、请求/响应等。 支持事务、消息确认和持久化。 支持多种编程语言和客户端库。 可以提供更高级的可靠性和安全性,例如消息加密、身份验证和授权。 缺点 复杂性较高,学习曲线较陡。 需要更高的服务器资源。 不适合对延迟敏感的应用。 适用场景 需要高度可靠性和安全性的应用,例如金融、医疗等领域。 需要支持多种消息模型的应用,例如实时消息、任务处理等。 不需要快速响应的场景,例如数据采集、批处理等。 MQTT 优点 轻量级,协议头较小,适用于低带宽和高延迟的网络环境。 客户端资源消耗较少,可以在嵌入式系统上使用。 支持发布/订阅模型,可以实现实时数据传输。 适合在移动设备和传感器网络中使用。 缺点 不支持事务、消息确认和持久化。 不支....

世界,你好!

2023-11-22

Solo 博客系统已经初始化完毕,可在管理后台 - 工具 - 偏好设定中调整更多细节设置。如果需要导入已有博客文章,请参考文档 Solo 支持 Hexo/Jekyll 数据导入

对了,出于安全考虑请尽快完成如下操作:

  1. 登录链滴社区后,在个人设置 - B3 中更新 B3 Key
  2. 在 Solo 管理后台 - 工具 - 用户管理中也进行同样的 B3 Key 更新

另外,如果你需要开启评论系统,请参考 Solo 集成 Gitalk 评论系统

最后,如果你觉得 Solo 很赞的话,请到项目主页 Watch、Star、Fork 三连 😍

缓存、二级缓存(J2Cache为例)、多级缓存

2021-10-18

以器承己,以才示人,以气度世,不虑也。 一、缓存架构 缓存就是将数据从读取较慢的介质上读取出来放到读取较快的介质上,如磁盘到内存。平时我们会将数据存储到磁盘上,如:数据库。如果每次都从数据库里读取,会因为磁盘本身的 IO 影响读取速度,所以就有了像 redis 这种的内存缓存。可以将数据读取出来放到内存里,这样当需要获取数据时,就能够直接从内存中拿到数据返回,能够很大程度提高速度。但是一般 redis 是单独部署成集群,所以会有网络 IO 上的消耗,虽然与 redis 集群的链接已经有连接池这种工具,但是数据传输上也还是会有一定消耗。所以就有了应用内缓存,如:Caffeine。当应用内缓存有符合条件的数据时,就可以直接使用,而不用通过网络到 redis 中去获取,这样就形成了二级缓存。应用内缓存作为一级缓存,远程缓存(如 redis)作为二级缓存。 在整个软件架构中,分为的这 5 层每一层都可以添加缓存: 本地缓存(进程内缓存)与分布式缓存(进程外缓存)的对比: 本地缓存之间的对比: 关于本地缓存选型回答:本地缓存中caffeine看非因qps最好,如果jdk,集群,持久化有限制,只能....

Hexo的基本使用

2021-10-18

Hexo 官网 Hexo 使用说明 Hexo 问题回答GitHub 地址 基本使用 创建一个新的文章 $ hexo new "My New Post" 更多参考: Writing 运行服务 $ hexo server 更多参考: Server 生成静态资源文件 $ hexo generate 更多参考: Generating 部署到远程站点 $ hexo deploy 更多参考: Deployment 设置 hexo 只显示部分摘要不显示全文 针对 Next 主题,不确保对于其它主题有效(大部分是有效的) Next 默认显示全文。 修改配置 首先需要在 Next 主题的_config.yml 中把设置打开:(默认安装时就打开了) # Automatically excerpt description in homepage as preamble text. excerpt_description: true 之后有两种方法 方法一:写概述 在文章的 front-matter 中添加 description,其中 description 中的内容就会被显示在首页上,其余一律不....