SSE(Server-Sent Events)通讯服务
SSE(Server-Sent Events)通讯服务什么是SSESSE(Server-Sent Events)是一种用于实现服务器主动向客户端推送数据的技术,也被称为“事件流”(Event Stream)。它基于 HTTP 协议,利用了其长连接特性,在客户端与服务器之间建立一条持久化连接,并通过这条连接实现服务器向客户端的实时数据推送。
SSE技术的基本原理客户端向服务器发送一个GET请求,带有指定的header,表示可以接收事件流类型,并禁用任何的事件缓存。服务器返回一个响应,带有指定的header,表示事件的媒体类型和编码,以及使用分块传输编码(chunked)来流式传输动态生成的内容。服务器在有数据更新时,向客户端发送一个或多个名称:值字段组成的事件,由单个换行符分隔。事件之间由两个换行符分隔。服务器可以发送事件数据、事件类型、事件ID和重试时间等字段。客户端使用EventSource接口来创建一个对象,打开连接,并订阅onopen、onmessage和onerror等事件处理程序来处理连接状态和接收消息。客户端可以使用GET查询参数来传递数据给服务器,也可以使用close方法 ...
Hangfire(Framework)使用文档
一. 本文说明本文档主要是介绍Hangfire的项目集成与使用方式, 参考官方文档和网络文章, 实践目前只基于.Net Framework WebApi项目进行实践可用, 所以本文也主要以此项目为示例进行步骤说明, 后续可能会更新.Net Core 项目的嵌入和使用方法
官方文档(英文)
官方文档(翻译)
Hangfire官方Git仓库及官方说明
Hangfire.Console仓库及官方说明
Hangfire.Dashboard.Authorization仓库及官方说明
Hangfire.RecurringJobAdmin仓库及官方说明
Hangfire.HttpJob仓库及官方说明
Hangfire.HttpJob 官方Wiki (github.com)
二. 服务搭建及配置(一). 宿主程序HangFire可以寄宿在多种.Net应用中,例:ASP.NET Web应用程序、非ASP.NET Web应用程序,控制台应用程序或Windows服务中使用。
支持.Net Framework 和 .Net Core ( Hangfire V1.6 + ), Framework 需要依托 Ow ...
CentOS7 部署.NetCore 项目
一. 流程步骤总览
安装 dotnet SDK/运行环境
打包/发布项目, 将发布文件 copy 到 linux
安装进程守护管理工具 PM2 ,用**PM2**启动 .net core 服务
开启防火墙端口, 例如开放 8080 端口
二. 安装 dotnet SDK(以下步骤以安装 .net core 3.1 为例)
(一)手动安装 SDK
下载 SDK 二进制安装包
下载地址: https://dotnet.microsoft.com/download/dotnet/3.1
可先在windows里下载完, 再复制到Linux 中;
也可使用Linux 直接下载, 脚本如下:
#cd 到下载或安装路径文件夹
cd /youPath/dotnet/
#下载
wget https://download.visualstudio.microsoft.com/download/pr/e89c4f00-5cbb-4810-897d-f5300165ee60/027ace0fdcfb834ae0a13469f0b1a4c8/dotnet-sdk-3. ...
AD 域
AD域(Domain)一、域(Domain)基本介绍
“域”是一个相对严格的组织。”域”指的是服务器控制网络上的计算机能否加入的计算机组合。实行严格的管 理对网络安全是非常必要的。在对等网模式下,任何一台电脑只要接入网络,就可以访问共享资源,如共享ISDN上网等。 尽管对等网络上的共享文件可以加访问密码, 但是非常容易被破解。在由Windows 9x 构成的对等网中,数据是非常不安全的。
在”域”模式下,至少有一台服务器负责每一台联入域网络的电脑和用户的验证工作,相当于一个单位的门卫一样,称为”域控制器(Domain Controller,简写为DC)”。”域控制器”中包含了由这个域的账户、密码、属于这个域的计算机等信息构成的数据库。当电脑联入网络时,域控制器首先要鉴别这台电脑是否是属于这个域的,用户使用的登录账号是否存在、密码是否正确。如果以上信息不正确,域控制器就拒绝这个用户从这台电脑登录。不能登录,用户就不能访问服务器上有权限保护的资源,只能以对等网用户的方式访问Windows共享出来的资源,这样就一定程度上保护了网络上的资源。
二、AD域服务(AD DS)在计算机、用户数 ...
ES检索语句示例
ES项目查询示例GET /standard/_search
{
"query":{
"bool":{
"filter":
{
"nested":{
"path":"FengPi",
"query":{
"bool":{
"must":[
{
"match":{
"FengPi.nameCN":"鞋"
...
Elasticsearch数据备份和迁移的几种方式
一、elasticsearch-dump(第三方工具)
项目GitHub地址:https://github.com/elasticsearch-dump/elasticsearch-dump
依赖: Node.js(安装及配置环境变量, 步骤略)
安装elasticsearch-dump工具 npm install elasticdump -g
迁移命令示例:
迁移setting、mapping、data 示例↓
elasticdump --input=http://SourceIp:SourcePort/[YourIndex] --output=http://DestinationIp:DestinationPort/[YourIndex] --type=settings --limit=1000
elasticdump --input=http://SourceIp:SourcePort/[YourIndex] --output=http://DestinationIp:DestinationPort/[YourIndex] --type=mapping --limit=1 ...
Git常用命令图解
本文翻译自的Lydia Hallie的博客:https://dev.to/lydiahallie/cs-visualized-useful-git-commands-37p1
Git可视化学习网站推荐: https://learngitbranching.js.org/?locale=zh_CN
常用命令图解:
我觉得创建一些最常用且最有用的 Git 命令的可视化示例会是一个完美的用例!下面我将介绍的很多命令都有可选参数——你可以使用这些参数来改变对应命令的行为。而我的示例只会涵盖命令的默认行为,而不会添加(或添加太多)可选参数!
1.合并(Merging)拥有多个分支是很方便的,这样可以将不同的新修改互相隔离开,而且还能确保你不会意外地向生产代码推送未经许可或破损的代码修改。但一旦这些修改得到了批准许可,我们就需要将其部署到我们的生产分支中!
可将一个分支的修改融入到另一个分支的一种方式是执行 git merge。Git 可执行两种类型的合并:fast-forward 和 no-fast-forward。现在你可能分不清,但我们马上就来看看它们的差异所在。
fast-forward ...
Python虚拟环境管理
工具特点一览:
Venv【python 3.3 版本之后添加的官方库】
Virtualenv【适用于各个版本的管理工具】
Virtualenvwrapper【可集群管理虚拟环境】
Virtualenv-burrito【管理上面两者的工具】
Pipenv【针对 Python 项目的依赖管理器】
Pipx【轻量级应用管理工具】
Autoenv【自动激活与退出虚拟环境】
Anaconda / Miniconda【兼容不同版本的 Python】
不同的场景推荐使用不同的工具:
针对 Windows 用户
强烈推荐使用 Miniconda,能够轻易的创建任意版本的 Python,且随时可以切换环境使用
如果需要一个干净的 Python 环境进行测试,推荐使用 Pipenv,创建虚拟环境的速度非常快,且库依赖不冲突
从公司到家办公,或其他环境迁移的情况,推荐使用 Miniconda 和 Pipenv,它们管理库依赖的能力都很强
针对 Linux 用户
推荐使用 Virtualenv,相比于其他工具还要配置各种环境,它下载即可使用,方便
一、Venvvenv 在 py ...
常用开源协议对比
常用开源协议对比:现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有 80种
BSD开源协议(original BSD license、FreeBSD license、Original BSD license) BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但“为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因 ...
.Net定时任务框架
FluentSchedulerFluentScheduler是由一位巴西的.NET开发者Talles L开发并维护的.NET平台下的一款自动定时任务调度器组件,它提供了比较丰富的定时任务调度接口,开发者可以快速方便地通过接口设置调度时间,比如:间隔1秒,2秒…n秒,只执行一次,哪月的哪一天等等。具体请参考我之前写过的两篇关于FluentScheduler的文章:
《推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件—FluentScheduler》
《简单、轻量、功能非常强大的C#/ASP.NET定时调度任务执行管理组件–FluentScheduler之实例篇》
官方地址: https://github.com/fluentscheduler/FluentScheduler
特性
提供丰富的任务调度接口,配置方便
TaskSchedulerTaskScheduler是一个为Windows任务调度程序提供.NET的封装组件,可以代替Windows操作系统自带的定时任务使用,提供了代码和编辑器两种方式创建定时任务。它聚合了多个版 ...