自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

时光隧道

QQ:2528877987,微信:13960699696

  • 博客(648)
  • 收藏
  • 关注

原创 (精华)2020年11月21日 .NET Core 使用IdentityServer4的Client Credentials模式访问保护API

一:Client Credentials介绍Client Credentials:客户端凭证模式;该方法通常用于服务器之间的通讯;该模式仅发生在Client与Identity Server之间。该模式的适用场景为服务器与服务器之间的通信1:添加nuget包:IdentityModel2:使用如下代码访问apiusing System;using System.Net.Http;using System.Threading.Tasks;using IdentityModel.Client;

2020-11-21 11:08:54 67

原创 (精华)2020年11月21日 .NET Core 使用IdentityServer4保护API

一:.NET Core 使用IdentityServer4保护API1:首先添加nuget包:Microsoft.AspNetCore.Authentication.JwtBearer2:在Startup.cs类ConfigureServices方法中,将身份验证服务添加到DI并配置Bearer为默认方案public void ConfigureServices(IServiceCollection services){ services.AddControllers(); //将

2020-11-21 10:59:24 31

原创 (精华)2020年11月21日 .NET Core 配置IdentityServer4

一:初识IdentityServer41:添加nuget包:IdentityServer42:添加Config.cs文件作为IdentityServer配置文件,用于定义IdentityServer资源和客户端等。public class Config{ public static IEnumerable<ApiScope> ApiScopes => new List<ApiScope> { new ApiS

2020-11-21 09:56:45 24

原创 (精华)2020年11月3日 Docker Swarm集群管理的使用

Swarm 集群管理简介Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。支持的工具包括但不限于以下各项:DokkuDocker ComposeDocker MachineJenkins 原理如下图所示,swarm 集群由管理节点(manager)和工作节点(w

2020-11-03 14:57:12 34164

原创 (精华)2020年11月3日 Docker Machine的使用

Docker Machine引言Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker。Docker Machine 管理的虚拟主机可以是机上的,也可以是云供应商,如阿里云,腾讯云,AWS,或 DigitalOcean。使用 docker-machine 命令,您可以启动,检查,停止和重新启动

2020-11-03 14:27:55 34170

原创 (精华)2020年11月3日 Docker Compose的使用

Docker ComposeCompose 简介Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。Compose 使用的三个步骤:使用 Dockerfile 定义应用程序的环境。使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。最后,执行 docker-compose up 命令来

2020-11-03 10:40:02 34370 2

原创 (精华)2020年10月31日 Docker Dockerfile详解

什么是 Dockerfile?Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。使用 Dockerfile 定制镜像1、下面以定制一个 nginx 镜像(构建好的镜像内会有一个 /usr/share/nginx/html/index.html 文件)在一个空目录下,新建一个名为 Dockerfile 文件,并在文件内添加以下内容:FROM nginxRUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/

2020-10-31 17:06:20 34835

原创 (精华)2020年10月31日 Docker Docker容器连接相互通信

Docker容器连接相互通信端口映射并不是唯一把 docker 连接到另一个容器的方法。docker 有一个连接系统允许将多个容器连接在一起,共享连接信息。docker 连接会创建一个父子关系,其中父容器可以看到子容器的信息。容器命名当我们创建一个容器的时候,docker 会自动对它进行命名。另外,我们也可以使用 --name 标识来命名容器,例如:runoob@runoob:~$ docker run -d -P --name runoob training/webapp python ap

2020-10-31 16:25:45 34839

原创 (精华)2020年10月31日 Docker Docker和镜像的操作

查找镜像我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个 httpd 的镜像来作为我们的 web 服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像。 docker search httpd拖取镜像我们决定使用上图中的 httpd 官方版本的镜像,使用命令 docker pull 来下载镜像。dock

2020-10-31 10:46:40 34841

原创 (精华)2020年10月31日 Docker Docker运行web应用

运行一个 web 应用前面我们运行的容器并没有一些什么特别的用处。接下来让我们尝试使用 docker 构建一个 web 应用程序。我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。runoob@runoob:~# docker pull training/webapprunoob@runoob:~# docker run -d -P training/webapp python app.pyrunoob@runoob:~$ docker run -d -p

2020-10-31 09:04:35 34872

原创 (精华)2020年10月31日 Docker Docker和容器的交互

docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。可以通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。容器使用获取镜像如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像:$ docker pull ubuntu启动容器以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:$ docker ru

2020-10-31 08:46:20 34848

原创 (精华)2020年10月30日 Docker Windows10安装Docker Desktop

Windows10安装Docker Desktop在Windows系统上安装Docker不再需要先安装虚拟机,然后在虚拟机上安装Linux系统,最后在虚拟机上的Linux系统安装Docker了。Docker for Windows的出现使得我们在Windows系统上使用Docker也非常的简单。如果是Win10以下的系统则需要安装Docker Toolbox,本文只介绍Win10环境下Docker Desktop的安装。对操作系统的要求Windows 10 64位:Pro,Enterprise或Ed

2020-10-30 10:10:14 35328

原创 (精华)2020年10月30日 Docker Ubuntu安装Docker

使用官方安装脚本自动安装安装命令如下:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun也可以使用国内 daocloud 一键安装命令:curl -sSL https://get.daocloud.io/docker | sh手动安装卸载旧版本Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们:$ sudo apt-get remove

2020-10-30 09:39:56 51496

原创 (精华)2020年10月28日 Docker Docker的基本架构

Docker 包括三个基本概念:镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。仓库(Repository):仓库可看成一个代码控制中心,用

2020-10-28 16:37:13 51595

原创 (精华)2020年10月28日 支付宝 ASP.NET Core 使用支付宝当面付之扫码支付

扫码支付简单介绍扫码支付是支付宝当面付中的一种支付方式,当面付包含条码支付、扫码支付、声波支付。扫码支付,指用户打开支付宝钱包中的“扫一扫”功能,扫描商家展示在某收银场景下的二维码并进行支付的模式。该模式适用于线下实体店支付、面对面支付等场景。使用示例:1.某直播平台充值2.某视频网站开通vip扫码支付比传统的跳转网页支付方便快捷。业务流程:使用步骤:收银员在商家收银系统操作生成支付宝订单,并生成二维码;用户登录支付宝钱包,点击首页“付款-扫码付”或直接点击“扫一扫”,进入扫一扫界面;

2020-10-28 15:36:16 52936

原创 (精华)2020年10月28日 支付宝 ASP.NET Core 使用支付宝PC网站支付

前言支付宝有比较多的支付产品,比如当面付、APP支付、手机网站支付、电脑网站支付等,本次讲的是电脑网站支付。创建项目新建一个ASP.NET Core 3.1 MVC项目配置由于我在开发的时候支付接口并没有申请下来,所以使用的是支付宝沙箱环境来进行开发的。支付宝沙箱环境介绍:蚂蚁沙箱环境(Beta)是协助开发者进行接口功能开发及主要功能联调的辅助环境。沙箱环境模拟了开放平台部分产品的主要功能和主要逻辑,在开发者应用上线审核前,开发者可以根据自身需求,先在沙箱环境中了解、组合和调试各种开放接口,

2020-10-28 11:11:30 52094

原创 (精华)2020年10月28日 Grpc Grpc健康检查的实现方式

一:引言上一篇consul已经介绍了手动的健康检查实现方式,这边就不多说了二:健康检查实现不用手动创建 proto 文件,直接安装官方的现成组件,这里面包含了通过上面的标准 proto 文件生成的类。所以重写实现类就行了。通过 Nuget 安装 Grpc.HealthCheck然后添加一个实现类 HealthCheckService继承 HealthServiceImpl 最后重写方法,然后主要代码都适合上面一致的:public class HealthCheckService:HealthSe

2020-10-28 10:07:54 51611

原创 (精华)2020年10月28日 Grpc Grpc对接Consul服务注册发现

一. 前言gRPC 在当前最常见的应用就是在微服务场景中,所以不可避免的会有服务注册与发现问题,我们使用gRPC实现的服务可以使用 Consul 或者 etcd 作为服务注册与发现中心,本文主要介绍Consul。二. 注册GRPC服务与健康检查1.为服务端项目安装 nuget包NConsul.AspNetCore2.在 Startup 的 ConfigureServices方法内进行配置public void ConfigureServices(IServiceCollection serv

2020-10-28 10:03:11 51620

原创 (精华)2020年10月27日 微服务 Jenkins语言显示问题

一:下载对应的安装包到系统管理 插件管理中下载如下插件接口Localization: Chinese (Simplified)二:到系统管理Manage Jenkins下的Config System下,如下截图的位置去配置一下默认语言即可

2020-10-27 16:51:26 52009

原创 (精华)2020年10月27日 微服务 Windows上Jenkins安装及其配置

一:Jenkins安装1.官方下载地址:https://www.jenkins.io/download/2.war包安装:启动Jenkins命令,打开cmd至Jenkins安装目录下,运行命令 java -jar jenkins.war 如果改变默认端口,则指定端口例如端口号9080:java -jar jenkins.war --httpPort=9080。此种安装方式的Jenkins可以在Web容器(例如tomcat)中运行,作为持续性集成环境不推荐此种方法。3.msi安装包安装(这里采用此安装方

2020-10-27 16:45:29 52038

原创 (精华)2020年10月28日 Grpc Grpc身份认证和授权

一.引言本文主要讲 ASP.NET Core 本身的认证授权和gRPC接入,认证方式采用目前主流的 JWT 结合 IdentityServer4。二.服务端配置我们首先需要在服务端配置认证和授权。gRPC基于此文的Demo来开始:IdentityServer 基于此文Demo: https://www.cnblogs.com/stulzq/p/7509648.html 。配置1.首先启动 IdentityServer4 地址为:http://localhost:50002.为gRPC项目安装Jw

2020-10-24 14:43:32 52775

原创 (精华)2020年10月28日 Grpc Grpc拦截器的使用

一. 前言前面两篇文章给大家介绍了使用gRPC的入门以及双向流的使用,今天介绍的是gRPC中的拦截器。拦截器就像MVC的过滤器或者是ASP.NET Core middleware 一样,具有面向切面的思想,可以在调用服务的时候进行一些统一处理, 很适合在这里处理验证、日志等流程。本片文章就以记录日志为例来进行讲解。二. Interceptor 类介绍Interceptor类是gRPC服务拦截器的基类,是一个抽象类,它定了几个虚方法,分别如下:public virtual TResponse Bloc

2020-10-24 14:33:13 52760

原创 (精华)2020年10月28日 Grpc Grpc双向流调用

一.前言gRPC 支持双向流调用,支持实时推送消息,这也是 gRPC的一大特点,且 gRPC 在对双向流的控制支持上也是非常强大的。二. 什么是 gRPC 流gRPC 有四种服务类型,分别是:简单 RPC(Unary RPC)、服务端流式 RPC (Server streaming RPC)、客户端流式 RPC (Client streaming RPC)、双向流式 RPC(Bi-directional streaming RPC)。它们主要有以下特点:服务类型特点简单 RPC

2020-10-24 09:49:51 52805

原创 (精华)2020年10月28日 Grpc Grpc基本使用

一.简介List itemgRPC 是一个由Google开源的,跨语言的,高性能的远程过程调用(RPC)框架。 gRPC使客户端和服务端应用程序可以透明地进行通信,并简化了连接系统的构建。它使用HTTP/2作为通信协议,使用 Protocol Buffers 作为序列化协议。它的主要优点:现代高性能轻量级 RPC 框架。约定优先的 API 开发,默认使用 Protocol Buffers 作为描述语言,允许与语言无关的实现。可用于多种语言的工具,以生成强类型的服务器和客户端。支持客户端,

2020-10-24 09:33:34 52785

原创 (精华)2020年10月24日 vue element-ui树形表懒加载数据无法更新问题

第一步:在element中得table加入:load=“load”<el-table :key="tableKey" v-loading="listLoading" :data="list" border fit highlight-current-row style="width: 100%" row-key="Id" @selection-change="onSelectChange

2020-10-24 08:24:37 52772

原创 (精华)2020年10月21日 设计模式案例 事件总线实现原理

EventBus实现原理#region{ // 1、创建事件总线 EventBus eventBus = EventBus.Instance; TeacherEventListener teacherEventListener = new TeacherEventListener(); eventBus.AddListener(teacherEventListener); Teacher teacher = new Teacher(); TeacherS

2020-10-21 16:30:09 87640

原创 (精华)2020年10月21日 设计模式案例 AspNetCore运行原理

AspNetCore运行原理#region{ // 完成一个请求 /*// 1、加载Controller EndpointRouteBuilder endpointRouteBuilder = new EndpointRouteBuilder(); endpointRouteBuilder.MapControllers();// 扫描所有Controller // 2、创建EndpointRoute EndpointRoute endpointRoute

2020-10-21 16:23:57 87636

原创 (精华)2020年10月21日 设计模式案例 .NetCore Middleware实现原理

Middleware使用#region Middleware使用{ // 1、创建IApplicationBuilder IApplicationBuilder applicationBuilder = new IApplicationBuilder(); applicationBuilder.UseAuthentication(); applicationBuilder.UseAuthorization(); applicationBuilder.UseExce

2020-10-21 16:10:49 87633

原创 (精华)2020年10月21日 设计模式案例 .NetCore Configuration的实现思路

使用#region Configuration使用{ // 1、创建ConfigurationBuilder对象 ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddJsonFile("app.json"); // 2、构建Configuration对象 Configuration configuration = confi

2020-10-21 16:00:59 87626

原创 (精华)2020年10月19日 设计模式案例 无极限菜单的实现(C#版)

定义菜单类/// <summary> /// 菜单信息 /// </summary> public class Menu { private string mu_id; //菜单编号 private string mu_name; //菜单名称 private string mu_parentid; //父菜单编号 private string mu_url; //菜单ur

2020-10-19 23:03:52 88456

原创 (精华)2020年10月19日 设计模式案例 手写IOC容器

定义IOC特性/// <summary>/// IOC类型过滤特性/// </summary>[AttributeUsage(AttributeTargets.Class)]public class IOCService :Attribute{ public IOCService() { }}/// <summary>/// IOC属性过滤特性/// </summary>[AttributeUsage(Attri

2020-10-19 22:41:20 88457

原创 (精华)2020年10月18日 高可用高并发 缓存的使用(HTTP缓存验证)

首先安装包Marvin.Cache.Headers配置public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } public void Configu

2020-10-18 23:01:01 90545 2

原创 (精华)2020年10月18日 高可用高并发 缓存的使用(Sqlserver)

首先安装缓存数据包dotnet tool install --global dotnet-sql-cache执行dotnet sql-cache create 数据库连接字符串 dbo 缓存数据表名称nutget 安装如下包Microsoft.Extensions.Caching.SqlServer配置public class Startup { public Startup(IConfiguration configuration) {

2020-10-18 22:10:33 90541 1

原创 (精华)2020年10月18日 高可用高并发 缓存的使用(Redis)

首先按装如下包Microsoft.Extensions.Caching.Redis配置public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } pub

2020-10-18 21:50:20 90932 3

原创 (精华)2020年10月18日 高可用高并发 缓存的使用(Cache)

配置缓存public class Startup{ public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) {

2020-10-18 21:46:26 90925 1

原创 (精华)2020年10月18日 数据库调优 分库分表底层详解(EFCore实现DbContext读写分离负载均衡)

首先下载如下包:Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.DesignMicrosoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.ToolsUser类 public class User{ public long Id { get; set; } public string Account { get; set; }

2020-10-18 20:37:08 90930

原创 (精华)2020年10月16日 数据库调优 分库分表底层详解(读写分离)

发布、订阅都在同一台服务器本地发布数据库SQLTEST、发布表user_info本地订阅数据库copy_for_sqltest一、配置分发配置分发是发布和订阅前的基础,没有分发库就不能完成。快照文件夹:可以使用默认的,也可以自己自定义(F:\My_Code\MSSQL_ReplData)分发数据库名称用默认的:distribution二、快照发布顾名思义,就像拍照片一样,发布服务器对你要同步的表数据做一张快照,快照的数据集保存在本地的快照文件夹。然后按照你设定的时间间隔向订阅服务器传输

2020-10-16 21:55:15 91310

原创 (精华)2020年10月16日 数据库调优 分库分表底层详解(分区)

数据库层面(表分区,读写分离)第一步:创建文件组,分别向文件组中添加文件use mastergo if exists(select * from sys.databases where database_id = DB_ID('Test'))drop database Test--1.创建数据库create database Test on(name =N'Test',filename=N'e:\test\test.mdf',size = 3MB,filegrowth = 1MB)log o

2020-10-16 21:45:14 91295

原创 (精华)2020年10月12日 高并发高可用 负载均衡

反向代理内容服务器的替身如果内容服务器具有必须保持安全的敏感信息,如信用卡号数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。当外部客户机尝试访问内容服务器时,会将其送到代理服务器。实际内容位于内容服务器上,在防火墙内部受到安全保护。代理服务器位于防火墙外部,在客户机看来就像是内容服务器。代理服务器成为安全数据库和可能的恶意攻击之间又一道屏障。即便这道屏障打破,充其量也仅限于访问单个事务中所涉及的信息。未经授权的用户无法访问到真正的内容服务器,因为防火墙通路只允许代理服务器有权

2020-10-12 23:57:13 100206

原创 (精华)2020年10月12日 高并发高可用 架构集群

高并发高科用角度架构演进单机应用(WebSite)渐渐的随着用户量的增加, 问题:一台服务器已经不够用了,服务器不稳定。挑战:高可用/高并发。 解决方式:于是我们将准备两台服务器搭成集群简单集群(WebSite)搭完集群之后,假如原来十个用户访问一台服务器,现在平均开,五个人访问上面的服务器,五个人访问另一个服务器。 用户的体验就会稍微好一点。好处:简单高可用,假如其中一台服务器挂了,是不影响用户访问的,因为用户可以访问另一台好的服务器问题:这样做有一个局限性,就是同时存在两个服务器,就会同时存

2020-10-12 21:52:58 110107

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除