Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

专术系列 #1

Open
1 task
ckjbug opened this issue Jan 17, 2019 · 14 comments
Open
1 task

专术系列 #1

ckjbug opened this issue Jan 17, 2019 · 14 comments

Comments

@ckjbug
Copy link
Owner

ckjbug commented Jan 17, 2019

专术文章

C-----F----E

基础-----框架-----扩展

  • C:

所见即所得,测试即文档。

C I :持续集成
CD:持续部署

文本流、文件流、网络流

Code First 、Model First、Database First

微服务:将程序的每个功能模块剥离出来,使用单独的数据库,各服务之间互不干扰,再用容器将其横向扩展.....
image

集群:

负载均衡:

反向代理:

NoSql:非关系型数据库

SEO:( Search Engine Optimization)搜索引擎优化,利用搜索引擎的规则提高网站在有关搜索的自然排名,一般做网络营销和网站开发人员会接触这方面的知识。

CMS系统:(Content Management System)内容管理系统,倾向于管理站点,与下面的企业管理系统有所不同。
OA系统:(Office Automation)OA平台,办公自动化,又叫协同办公系统。OA系统与ERP系统的区别?ERP系统:( Enterprise Resource Planning)企业资源计划系统。ERP和SAP是什么意思?
CRM系统:( Customer Relationship Management)客户关系管理,管理客户。OA、CRM、ERP之间的区别和联系是什么?

SOA:(Service Oriented Architecture)面向服务的框架,一个服务化的组件模型, 它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
image

MicroService:微服务,现在大部分公司还是在沿用这种服务架构。微服务架构
image

Cluster(集群): 集群是一组通过网络连接的虚拟或者物理主机,您的微服务就部署在集群中,集群的大小可以扩展到上千台主机。

容器技术(如Docker)
image

服务网格(如K8S——Kubernetes):(在容器和容器编排的基础上)下一代的微服务技术,K8S是由Google设计的开源的容器编排系统, 旨在提供一个跨集群的自动部署、扩展以及管理容器化应用的平台。网格服务定义了一组接口,这些接口的定义明确并遵守特定的惯例,用于解决服务器发现,动态服务创建、服务生命周期管理、通知等与服务生命周期有关的问题。
微服务(Microservices)和服务网格(Service Mesh)架构概念整理
image
image

CNCF成员
image


F:

控制反转(IOC): 流程的控制从应用程序转移到框架之中,框架利用一个引擎驱动整个流程的执行,应用程序无需关心该工作流程的细节,它只需要启动这个引擎即可。 重用让框架不仅仅是为应用程序提供实现单一功能的API,而是提供一整套可执行的解决方案,可定制则使我们可以为不同的应用程序对框架进行定制,这无疑让框架可以使用到更多的应用之中。更是一种“模板方法”的设计模式。
image
image

依赖注入(DI):

IOC是一种设计思想,DI是实现IOC的一种技术方法。依赖注入的是服务,所以服务肯定要比当前被注入服务的对象要先实例化,以前是控制器自己去new一个服务对象的成员,所以控制器比服务先实例化,现在是在控制器的构造函数中直接引入已经实例化好的服务即可,即在DI下时,对服务Service的控制权由当前的控制器Controller转换到控制器的调用者身上。

领域驱动设计(DDD):Domain-driven Design,一种模型驱动的软件设计方式
开源项目OpenAuth.Net就是基于DDD开发的,官方博客:李玉宝的代码人生DDD领域驱动设计基本理论知识总结
image

TDD:

ORM

  1. Entity Framework: 主要是把关系型数据库也就是Sqlserver那些转化一下,让程序员在写C#的代码的时候,能用类的方式来操作数据库,而不是用sql字符串。<C# Systax&.NET Platform> 有介绍 ORM框架_EF(Asp.Net)
  2. Entity Framework Core:
  3. Dapper:

RabbitMQ:MQ(Message Queue消息队列)
http://www.cnblogs.com/yangecnu/p/4227535.html
https://blog.csdn.net/HD243608836/article/details/80217591

举个例子:抢购系统,双十一有很多人抢购商品,生成订单先存储在MQ消息队列,然后及时回馈一个消息给客户,服务器端再从MQ中慢慢读取数据并处理。

概念类似于Task<>任务队列。不同系统之间的通信、集成与整合中会用到MQ,在用户访问量比较大的情况下,处理一些是实时性要求不高但是执行起来比较耗时的业务时,如发送短信、邮件提醒、更新文章阅读次数、记录用户操作日志等会用到MQ,降低之间的耦合性(比如订单系统中数据库突然奔溃了但是不影响用户下订单),支持并发和异步调用,异构系统之间使用消息通讯。还有很多主流的消息队列框架,如ActiveMQ(Java),NetMQ、DotNetMQ、Kafka(Java用到而比较多)、ZeroMQ(内存化)、RocketMQ、MSMQ(Windows系统内嵌、淘汰)等。满足持续化(存储在文件或者数据库中)和高可用。
image

Ng:Angular框架

SignalR:一个非常简单的实时网络,将数据从服务器实时地推送到客户端(前端),可以用来做聊天室等需要实时刷新的系统。
https://www.cnblogs.com/Leo_wl/p/3581211.html
官方文档: https://docs.microsoft.com/zh-cn/aspnet/core/signalr/introduction?view=aspnetcore-2.1

IdentityServer4: IdentityServer4是ASP.NET Core的一个包含OpenID和OAuth 2.0协议的“身份认证”框架, 当一个应用程序需要知道当前用户的身份(Identity)的时候就要用到身份认证(Authentication)。它是一个而中间件,可以服务注入到Asp.Net Core管道中,官网:https://github.com/IdentityServer/IdentityServer4http://www.cnblogs.com/savorboard/p/aspnetcore-identity.html,https://www.cnblogs.com/stulzq/p/8119928.html

GraphQL:查询API数据的语言工具,类似SQL,只是它不是用来查询数据库而是用来查询API中的数据的,.NET Core模块中有介绍。

Redis:

MangoDB:一个非关系型数据库.....

Ocelot: .NET API网关(张队参与的开源项目),面向微服务统一管理框架
image

OAuth2.0:一个授权框架,获取用户的授权,可以不用交付账户密码就能让第三方应用访问自己的私有资源。能够保证API的安全性, 一般和下面的JWT比较。理解

JWT(JSON Web Token):一种认证协议,更是一种安全标准, 基本思路就是用户提供用户名和密码给认证服务器,服务器验证用户提交信息信息的合法性;如果验证成功,会产生并返回一个Token(令牌),用户可以使用这个token访问服务器上受保护的资源。

Suring(滔滔): surging 是一个分布式微服务框架,提供高性能RPC远程服务调用,服务引擎支持http、TCP、WS协议,采用Zookeeper、Consul作为surging服务的注册中心,集成了哈希,随机,轮询、压力最小优先作为负载均衡的算法,RPC集成采用的是netty框架,采用异步传输。
image

IdentityService4:IdentityServer4 中文文档与实战 IdentityServer4 知多少 IdentityServer4是ASP.NET Core的一个包含OpenID(认证协议)和OAuth 2.0协议的框架。
image
image

Skywalking:(skywalking-netcore) Apache SkyWalking是一款专为微服务,云原生和基于容器(Docker,K8s,Mesos)架构而设计的APM(应用程序性能监视)。Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控
image


E:

知识体系(.Net知识框架)
技术栈 (Asp.net Core框架)
计算思维(算法与数据结构)
image

Makefile:
类似于Windows下的批处理命令或者.bat文件,Linux下用于编译C/C++等语言的批处理命令,一种从下往上开始执行的命令集。

知识库:跟数据库类似,都是用来存放数据的地方,但是却有很大的不同,数据库用SQL进行查询,而知识库是用SpaeQL查询的, 维基数据查询服务 ,视频教程。

@ckjbug ckjbug self-assigned this Jan 17, 2019
@ckjbug ckjbug pinned this issue Jan 17, 2019
Repository owner locked as too heated and limited conversation to collaborators Jan 17, 2019
@ckjbug
Copy link
Owner Author

ckjbug commented Nov 22, 2019

中继器、集线器、网桥、交换机、路由器、网关

图解网络

物理层——集线器HUB(淘汰)——CSMA/CD(载波监听)单工

数据链路层——交换机SW(二级、三级、企业)——(双绞线、全双工)——Mac+Port——广播->记录->消息洪泛

网络层——路由器Route(企业、家用)——Mac+IP——WAN+LAN


二层交换机和三层交换机:二层交换机(数据链路层、mac转发)之间不同vlan不能通信,三层交换机(网络层、ip转发)可以。

192.168.1.0/24是192.168.1.0网段,子网掩码是24位,子网掩码为:255.255.255.0,用二进制表示为:11111111 11111111 11111111 00000000,24位说明网络位是24位,那么主机位就是32-24=8位了,则子网的IP个数是254个,即是从00000001到11111110;

192.168.1.0/28表示的意思是网段是192.168.1.0,子网掩码为:255.255.255.240,用二进制表示为:11111111 11111111 11111111 11110000,28位说明网络位是28位,那么主机位4位,则子网的IP个数是14个,即是从00000001到00001110,2的4次方减2等于14。

192.168.1.2/32的意思就是说你只对192.168.1.2这一台电脑操作,并不是一个网段;192.168.1.2/16后面的掩码16是对的,但写法错误,应该写成192.168.0.0/16,这样就含盖了192.168.0.1~192.168.255.255网段;

VLAN指的是什么? 让你看一遍就理解VLAN划分原理。

汇聚链接(Trunk Link)指的是能够转发多个不同VLAN的通信的端口。Trunk接口一般用于连接交换机、路由器、AP。

@ckjbug
Copy link
Owner Author

ckjbug commented Nov 22, 2019

指针
指针

@ckjbug
Copy link
Owner Author

ckjbug commented Nov 22, 2019

Windows的消息实现
消息实现

@ckjbug
Copy link
Owner Author

ckjbug commented Nov 22, 2019

Windows内核态用户态
内核态用户态1


1

2

3

@ckjbug
Copy link
Owner Author

ckjbug commented Nov 22, 2019

Property:面向对象的范畴(属性)

Attribute:编程语言文法层(特征)

@ckjbug
Copy link
Owner Author

ckjbug commented Nov 22, 2019

计算机发展史——半导体发展史——硅谷

继电器(电生磁、机械)——> 电子管(灯泡)——>晶体管(硅)——>集成电路

加法器——>计算单元——>ALU——CPU/GPU

锁存器(门锁)——>存储器——>RAM/ROM


内存条(内存条——>内存模块——>内存方块——>"位"矩阵)
1 (2)
2 (2)
3 (2)

@ckjbug
Copy link
Owner Author

ckjbug commented Nov 28, 2019

如何应对高并发?

  • 动静分离(CDN)
  • 水平扩展(Nginx)
  • 微服务化(MicroService)
  • 缓存(Redis)
  • 队列(消息队列MQ)
    ......

@ckjbug
Copy link
Owner Author

ckjbug commented Nov 28, 2019

OAuth2.0和JWT、IDS4的区别?
OAuth2.0:第三方网站或应用的授权登录框架。
JWT:对API资源的保护和授权和认证协议。
IDS4:.NET Core中一个包含OpenID(认证协议)和OAuth 2.0协议的框架。

@ckjbug
Copy link
Owner Author

ckjbug commented Nov 28, 2019

网站小知识

什么是跨域请求?
浏览器同源政策及其规避方法
JS的同源策略(协议+ 域名 + 端口 统一),是浏览器施加的一种安全限制。

为什么采用同源策略?
同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。

设想这样一种情况:A网站是一家银行,用户登录以后,又去浏览其他网站。如果其他网站可以读取A网站的 Cookie,会发生什么?

很显然,如果 Cookie 包含隐私(比如存款总额),这些信息就会泄漏。更可怕的是,Cookie 往往用来保存用户的登录状态,如果用户没有退出登录,其他网站就可以冒充用户,为所欲为。因为浏览器同时还规定,提交表单不受同源政策的限制。

解决方案?
Jsonp、Proxy、Script、CROS(主流)、Nginx(主流)等

@ckjbug
Copy link
Owner Author

ckjbug commented Nov 28, 2019

什么是贝塞尔曲线?

通过案例来说明:
Demo1:
公式 DF:DE=AD:AB= BE:BC
image
image


Demo2:
公式 AE:AB=BF:BC= CG:CD=EH:EF= FI:FG=HJ:HI
image

Demo3:
多维平面,可以应用于3D建模行业
image

@ckjbug
Copy link
Owner Author

ckjbug commented Nov 28, 2019

API技术如何选型?
REST(最常用、无状态、以资源为核心、约定URL)
gRPC(高效率、低消耗)
GraphQL(精简请求响应内容)
Webhooks(轮询)
精读《REST, GraphQL, gRPC 如何选型》

@ckjbug
Copy link
Owner Author

ckjbug commented Dec 30, 2019

Linux文件权限图

study tonight_75223615_179720489875131_9043786321354893680_n

结合chmod使用

@ckjbug
Copy link
Owner Author

ckjbug commented Sep 2, 2020

Windows Tools

Process Explorer进程浏览器:用来查看计算机上运行的进程的状态(CPU、内存、句柄、加载dll、线程及堆栈等),可锁定每个窗口、文件句柄,相当于升级版的任务管理器。

Spy++:获取指定窗口句柄的强大工具,Viual Studio的自带工具。

GhostScriot:
一般从用户常见文件如图片或者word到打印机经过这么几套工序,以word为例子:
Doc -> 中间文件(如pdf,以前是postscript)->打印机语言(如:PCL)->打印机
Gs所做的工作就是将中间文件转化为适应各种打印机的打印机语言(或者叫光栅文件)。然后将该文件发送给打印机,打印机将光栅文件打印到纸张上,就是一次完整的打印过程。

@ckjbug ckjbug closed this as completed Sep 19, 2020
@ckjbug ckjbug reopened this Sep 19, 2020
@ckjbug ckjbug added the 原理 label Sep 19, 2020
@ckjbug ckjbug unpinned this issue Sep 19, 2020
@ckjbug
Copy link
Owner Author

ckjbug commented Jan 28, 2022

机房小知识

服务器硬件:

MGMT口:网络管理端口,可以直接用网线连接,登陆进防火墙以网页模式管理。

Console串口:

  1. 交换机的Console 接口:它是用来配置交换机的,所以只有网管型交换机才有。而且还要注意,并不是所有网管型交换机都有,那是因为交换机的配置方法有多种,如通过Telnet命令行方式、Web方式、TFTP方式等。
  2. 路由器的Console 端口:它是使用配置专用连线直接连接至计算机的串口,利用终端仿真程序(如 Windows 下的 “超级终端 ”)进行路由器本地配置。

HBA:即主机总线适配器英文“Host Bus Adapter”缩写。是一个使计算机在服务器和存储装置间提供输入/输出(I/O)处理和物理连接的电路板和/或集成电路适配器。

Raid:冗余磁盘阵列,把多个硬磁盘驱动器按照一定的要求使整个磁盘阵列由阵列控制器管理组成一个储存系统。提供容错功能、提高传输速率。

SAN交换机:是一个由存储设备和系统部件构成的网络,所有的通信都在一个光纤通道的网络上完成,可以被用来集中和共享存储资源,而不再是NAS存储方式那样仅是作为一个网络节点的网络设备。
SAN是连接存储设备和服务器的专用光纤通道网络(与以太网不同)。

BMC:执行伺服器远端管理控制器,英文全称为Baseboard Management Controller. 为基板管理控制器。是一个独立于服务器系统的小型操作系统,作用是方便服务器远程管理、监控、安装、重启等操作。BMC接通电源即启动运行,由于独立于业务程序不受影响,避免了因死机或者重新安装系统而进入机房。
BMC只是一个集成在主板上的芯片(也有通过PCIE等各种形式插在主板上),对外表现形式只有一个标准RJ45网口,拥有独立IP。

CAT-5E:超5类网络电缆、HSYV-5E:超5类双绞线,UTP:非屏蔽双绞线

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant