20-计算机网络面试题
789f422a2d7bdd063fa6a6c74ea728f6ca4706e7659c9f2df1722027f1e89a75ec1d81be05952841e743323cbc5035f785abdcae65f0368f31b58e28a013d414d867cca566d2596bd5a0c0b23530f0cfb79c8d25e2afd2fbc27c0a84fe96845f6a7b8a9b08066e03425c1fecd28fd3ff14960b05c066bb219aa32df6470b9a2343aa914660b375335bb9563a9844290d12f08aa8d6cfd0b88ca37f4d9577a4a24dac1c0512d253d8bbf6ff2f50613418f7f0c289702eec00641889e54c83f85bcc7a5e184e0854f70126790f120036dfc2ed2bce23507d275f063a1214d0e9ebd21f3edeb3c0d4e69d605a385573afa593cb358ffcf6179e8 ...
22-23种设计模式总结
789f422a2d7bdd063fa6a6c74ea728f67ddd854fa74661fed23e1009350ce8f021dc6e2b1144213a98a3ef17ac8ecb66e0dd21ff4e724731ce2daec11179d865509fc04baad052360b49274c88b83ec93ad6e6db36c6bf651bfa748111e66440ca4908e3cc159783dd28844c5193a493e8aad2d95aebd8eaf380f9835f771a389ca5923acd0a250fabce5b5cd963510609e7b46da3aa9f9ff7ea60f5ee84320c2c15326db51988c67746f5e49470cd88fb3d50b17bf1c3f49f90ffe64e99177f68c501219e569ae0f317a017d2f246d4bace1607481339813d794d496e616e1f2a519873e895e8de803f400b3696981b7ddbce1148c689361 ...
观察者模式
什么是观察者模式在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。
其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。x
应用场景Zookeeper事件通知节点、消息订阅通知、安卓开发事件注册
分布式配置中心
原理类图
抽象被观察者角色:也就是一个抽象主题,它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。
抽象观察者角色:为所有的具体观察者定义一个接口,在得到主题通知时更新自己。
具体被观察者角色:也就是一个具体的主题,在集体主题的内部状态改变时,所有登记过的观察者发出通知。
具体观察者角色:实现抽象观察者角色所需要的更新接口,一边使本身的状态与制图的状态相协调。
手写简单实现具体代码定义事件对象123456789101112131415161718import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsC ...
Keepalive安装
33f17f46c4b3f32b4e971982aed5fead7cdd2a21945326b3a5e98e1d5774da73b9bda7c7b125b8c004353419faaca8178c0716f8c55b0b3f31555e26c9ebf3afc869ea212ce2e5374d387c95b58baf8978d57ca5baebec4a46ec7c0670ed9b4501e903f5c0925f378b6e2e7e89d653d705e1a97bb4bc9b9fc63a38a1c4f35f7fd1c084944ae9dc948cad41ade3a0d2dc92c62ece529db9bb6c996ed0805f421f15422f04f86691ba45c641ff2a8c97acb8b73e344dee767bcd1291d5d1edff22a520d255f48b358b9e5352d7b7a468a7da0473b4b869ffdebc5306da51859034cad3099610a159b77adb4e3239e9cd3380bfcb90cf5a78f95 ...
Nginx+Lvs+keepAlived构建高可用集群环境
[TOC]
利用Keepalive+Nginx搭建与阿里云SLB一样高效的高可用应用架构
安装keepalive请查看另一篇文章
安装nginx 略
高可用集群规划集群环境介绍
操作系统环境: CentOS Linux release 7.9.2009
Nginx 版本: nginx/1.20.1
高可用版本:keepalived-2.2.2
root 系统管理员用户登录安装部署
集群规划与配置
节点名称
节点 IP Addr
主机名
Nginx端口
默认主从
配置
VIP
192.168.233.100
MASTER
192.168.233.129
master
80
MASTER
2核2G20GB
BACKUP
192.168.233.130
backup
80
BACKUP
2核2G20GB
编写脚本编写 nginx 服务存活检测脚本
1vim /usr/bin/check_nginx_alive.sh
不重启脚本
12345678910#!/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbinA=$(p ...
webpack学习01-helloworld
基本安装首先我们创建一个目录,初始化 npm,然后 在本地安装 webpack,接着安装 webpack-cli(此工具用于在命令行中运行 webpack):
在 webpack4 之后webpack 和webpack-cli 已经分开,需要单独安装
123mkdir webpack-demo && cd webpack-demonpm init -ynpm install webpack webpack-cli --save-dev
注意:
由于npm安装走的是国外的网络,比较慢容易出现安装失败的现象。
可以用yarn安装,首先得全局安装yarn,npm install yarn -g 。
或使用nrm快速切换npm源,首先得全局安装nrm, npm install -g nrm。
nrm 使用:nrm ls 查看可选源。
nrm test npm 测试速度。看哪个快就use哪个。
nrm use cnpm 使用cnpm 。
现在我们将创建以下目录结构、文件和内容:
12345 webpack-demo |- package.json+ |- index.h ...
分布式MinIO入门
简介MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。
MinIO是一种高性能的分布式对象存储系统。它是软件定义的,可在行业标准硬件上运行,并且在Apache V2许可下是100%开放源代码。
MinIO的不同之处在于,它从一开始就被设计为私有云对象存储的标准。由于MinIO是专门为仅服务对象而构建的,因此单层体系结构可在不妥协的情况下实现所有必需的功能。结果是一个同时具有性能,可伸缩性和轻量级的云原生对象服务器。
尽管MinIO在传统对象存储用例(例如辅助存储,灾难恢复和归档)方面表现出色,但在克服与机器学习,分析和云原生应用程序工作负载相关的私有云挑战方面却独树一帜。
更多请参考官方网站:https://min.io/
单机安装二进制安装123456 ...
记录一些好网站
学习猿学:http://yuanxue365.com/简书:https://www.jianshu.com/doyoudo:http://www.doyoudo.com/好知网:http://www.howzhi.com/学小易(大学生搜题)https://www.51xuexiaoyi.com/
书籍ePuBw(优质电子书下载网站):https://epubw.com/鸠摩搜书:https://www.jiumodiary.com/书伴:https://bookfere.com/ePUBee电子书库:http://cn.epubee.com/books/超星读书:http://book.chaoxing.com/Owllook:https://www.owllook.net/书格:https://new.shuge.org/相识电子书:http://m.xiangshi123.com/
冷知识 / 黑科技全球网络攻击实时地图:https://cybermap.kaspersky.com/毒鸡汤:http://www.nows.fun/微景天下:http://www.vize ...
用设计模式来干掉 if-else
前言物流行业中,通常会涉及到EDI报文(XML格式文件)传输和回执接收,每发送一份EDI报文,后续都会收到与之关联的回执(标识该数据在第三方系统中的流转状态)。
这里枚举几种回执类型:MT1101、MT2101、MT4101、MT8104、MT8105、MT9999,系统在收到不同的回执报文后,会执行对应的业务逻辑处理。当然,实际业务场景并没有那么笼统,这里以回执处理为演示案例
模拟一个回执类
1234567891011121314@Datapublic class Receipt { /** * 回执信息 */ String message; /** * 回执类型(`MT1101、MT2101、MT4101、MT8104、MT8105、MT9999`) */ String type;}
模拟一个回执生成器
12345678910111213public class ReceiptBuilder { public static List<Receipt> generateRecei ...
Github+jsDelivr+PicGo搭建图床
新建GitHub仓库
生成token
填入note,note就写新建的仓库名一致即可 和选中一些权限
picgo 设置
设定仓库名:用户名/新建的仓库名
设定分支名:master
设定Token:上面生成的token
指定存储路径:就是上传到那个文件夹的意思,不写就上传根目录
设定自定义域名:填写 https://cdn.jsdelivr.net/gh/用户名/图床仓库名 即可