netty

netty通过Reactor模型基于多路复用器接收并处理用户请求(能讲就多讲一点),内部实现了两个线程池,boss线程池和work线程池,其中boss线程池的线程负责处理请求的accept事件,当接收到accept事件的请求时,把对应的socket封装到一个NioSocketChannel中,并交给work线程池,其中work线程池负责请求的read和write事件

Netty为什么传输快: 使用ByteBuf在堆外进行,零拷贝

netty是由JBOSS提供的一个java开源框架。
netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

netty:异步非阻塞开源框架

高并发

首先要了解高并发的的瓶颈在哪里?

前端性能优化技术

  1. 前端负载均衡: DNS,CDN

  2. 减少前端链接数: 把js打成一个文件,把css也打成一个文件,把图标也打成一个文件,用css分块展示。把链接数减到最低。

查看更多

spring cloud各组件介绍

主要组成如下:

  服务发现——Netflix Eureka 服务调用——Netflix Feign
  熔断器——Netflix Hystrix 服务网关——Netflix Zuul
  分布式配置——Spring Cloud Config 消息总线 —— Spring Cloud Bus

服务发现组件:eureka

eureka client注册到eureka服务端上,不管服务提供者还是服务消费者都要注册。
eureka服务端和客户端有心跳机制,默认30秒。90秒没有收到,就会剔除掉这个客户端。
服务消费者客户端上有服务注册表缓存,eureka服务端down之后,也能找到服务提供者。


客户端负载均衡组件:ribbon

三种方式:轮循随机根据响应时间加权
默认策略是轮循
可以自定义
eureka包含有ribbon的jar包


查看更多

常用sql语句

创建指定编码的db

1
create database myday default character set utf8mb4 collate utf8mb4_unicode_ci;

更新表结构

1
2
3
4
5
6
7
8
9
10
11
12
- 设置主键ID自增
alter table test modify id int auto_increment;

- 修改字段类型,空与非空,默认值,注释
alter table test modify nickname varchar(50) not null default '' comment '昵称';

- 修改字段名称
alter table test change use_status status tinyint not null default '0' comment '状态';


# 添加字段
alter table user add column age bigint(20) not null DEFAULT '0' COMMENT '233';

查看更多

从技术到管理

刚写了一篇文章技术牛人到管理牛人的蜕变,希望能帮到你。

所有互联网公司,包括创业公司,都有不少技术牛人,这些技术牛人的技术栈深度广度已经达到一定程度,在他们的世界里,没有实现不了的需求,也没有解决不了的问题。

但是,我们却很少看到在技术和管理两方面都很出众的人才。

直接点,技术牛人如何培养自己的管理能力,蜕变为合格的技术管理呢

也许大家会说这是一个伪命题,因为大部分技术牛人根本不屑去做管理,他们认为管理那些琐事浪费时间而没有意义,管理职位是一个无法体现他们价值的职位,他们只想在技术上钻得更深更广。

查看更多

Java 编程技巧之数据结构

唐宋八大家之一欧阳修在《卖油翁》中写道:
翁取一葫芦置于地,以钱覆其口,徐以杓酌油沥之,自钱孔入,而钱不湿。因曰:“我亦无他,唯手熟尔。”
编写代码的”老司机”也是如此,”老司机”之所以被称为”老司机”,原因也是”无他,唯手熟尔”。编码过程中踩过的坑多了,获得的编码经验也就多了,总结的编码技巧也就更多了。总结的编码技巧多了,凡事又能够举一反三,编码的速度自然就上来了。笔者从数据结构的角度,整理了一些 Java 编程技巧,以供大家学习参考。

使用HashSet判断主键是否存在

HashSet 实现 Set 接口,由哈希表(实际上是 HashMap )实现,但不保证 set 的迭代顺序,并允许使用 null 元素。HashSet 的时间复杂度跟 HashMap 一致,如果没有哈希冲突则时间复杂度为 O(1) ,如果存在哈希冲突则时间复杂度不超过 O(n) 。所以,在日常编码中,可以使用 HashSet 判断主键是否存在。

案例:给定一个字符串(不一定全为字母),请返回第一个重复出现的字符。

查看更多

2020工作日志

202008

引入js文件,报 showDia is not defined,实际上该函数存在

js文件有错误,没有注意浏览器有错误提示 Uncaught SyntaxError: Unexpected identifier


2020-09

类找不到 Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.WorkbookFactory

引入

查看更多