- 博客(26)
- 资源 (4)
- 收藏
- 关注
原创 gprc从启动到运行 - 在生产中运行gRPC
我们将讨论如何为gRPC服务和客户端开发单元测试或集成测试,以及如何将它们与持续集成工具集成。 然后我们将进入gRPC应用程序的连续部署,我们将探索一些在虚拟机(vm)、Docker和Kubernetes上的部署模式。 最后,要在生产环境中运行gRPC应用程序,您需要有一个可靠的可观察平台形式。 在这里,我们将讨论用于gRPC应用程序的不同可观察性工具,并探索gRPC应用程序的故障排除和调试技术。 让我们从测试这些应用程序开始讨论。测试gRPC应用程序您开发的任何软件应用程序(包括gRPC应用程序)都需
2021-11-19 15:30:18 930
原创 gprc从启动到运行 - 安全的grpc
在本章中,我们将介绍一组安全性基础知识和模式,以解决我们在启用应用程序级安全性时面临的挑战。简单地说,我们将探索如何保护微服务之间的通信通道,并验证和控制用户的访问。让我们从保护通信通道开始。使用TLS认证gRPC通道传输层安全(TLS)的目的是在两个通信应用程序之间提供隐私和数据完整性。在这里,它是关于在gRPC客户机和服务器应用程序之间提供一个安全的连接。根据传输级别安全协议规范,当客户端和服务器之间的连接是安全的,它应该具有以下一个或多个属性:连接是私有的对称密码学用于数据加密。它是一种只
2021-11-16 09:54:56 1304
原创 go基础笔记
Dockerfile 多阶段构建多个 FROM 指令并不是为了生成多根的层关系,最后生成的镜像,仍以最后一条 FROM 为准,之前的 FROM 会被抛弃,那么之前的FROM 又有什么意义呢?每一条 FROM 指令都是一个构建阶段,多条 FROM 就是多阶段构建,虽然最后生成的镜像只能是最后一个阶段的结果,但是,能够将前置阶段中的文件拷贝到后边的阶段中,这就是多阶段构建的最大意义。最大的使用场景是将编译环境和运行环境分离,比如,之前我们需要构建一个Go语言程序,那么就需要用到go命令等编译环境,我们的D
2021-11-15 09:42:03 156
原创 CSS实现背景图片自适应屏幕大小
代码:.bgimg{ position:fixed; top: 0; left: 0; width:100%; height:100%; min-width: 1000px; z-index:-10; zoom: 1; background-color: #fff; background: url(../img/bg_login.jpg) no-repeat; background-size: cover; -
2021-05-25 19:47:55 2306
原创 web网站前端性能优化(三)
使用响应式图片如果你关心你的网站的表现,响应图像很重要。图片通常是网站有效负载中最大的一部分。尽管互联网连接速度在不断提高,但许多设备都配备了高分辨率显示器。为了使图像在这些设备上最佳地显示,需要更高分辨率的图像。但是,因为您仍然需要支持屏幕分辨率较差的设备,所以您仍然需要较低分辨率的图像,并且必须注意将图像传递到各种设备的方式。当您考虑图像传输时,其目的不仅是为了提供最好的视觉体验,而且还要提供适合设备功能的图像。知道如何正确地使用图片,可以确保性能较差的设备不会承受超出其需求的负担,同时确保性能最好
2020-08-26 19:12:00 189
原创 web网站前端性能优化(二)css优化
#CSS优化使用缩写的css样式规则使用简短的CSS样式规则会减少样式文件的大小。这种方法在短期内不会为您节省很多,但是如果在大型样式表中使用,那么它可以起到很大的作用。所以养成使用简短样式规则是个好习惯。div { /*使用简短样式规则*/ border: 1px solid red; margin: 1px 2px 3px 4px;}div { border-left: 1px solid red; border-right: 1px solid re
2020-08-06 18:15:25 176
原创 web网站前端性能优化(一)
了解你的网站为了优化一个网站,你必须能够识别出需要改进的地方。这意味着要分析页面上的请求数量、页面包含的数据量以及页面加载所花费的时间。这就是开发者工具派上用场的地方。您将学习如何使用这些工具创建瀑布图,以及如何量化客户网站的各个方面,以便您有一个优化的起点。下面来看一下chrome的开发者工具:记录按钮必须处于启用状态(红色),然后您才能生成一个请求瀑布图。还应该选中Disable Cache复选框,以便在重新加载页面时不进行缓存。##查看请求的时间信息###TTFB(TTFB),即从用户请
2020-08-06 18:13:44 201
原创 如何构建一个响应式网站
什么是响应式web网站以前我写网的网页习惯的网页都是定宽的,比如最外层设置一个宽度为980px的盒子,这是因为那时候的网页主要显示在pc端上,而pc端显示器的大小差异不会特别大。于是固定宽度的样式写法成为了流行趋势。但是随着移动互联网的到来,设备类型的增多,如智能手机,平板。那么屏幕大小的差异也就凸显出来了,如果每一个屏幕设备宽度写一个样式的话,会发现存在大量重复的样式代码,且工作量会很大,于是我们需要一种减少重复样式,让样式能够自动适应屏幕的解决方案就出来了:“响应式”。我们知道不同的设备拥有不同屏幕
2020-08-06 18:12:20 1311
原创 spring security(一) Spring Security入门(2)
自定义登录页package config;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;impor...
2018-08-20 23:43:49 171
原创 spring security(一) Spring Security入门(1)
你讲学到一些内容:在JBCP中实现基本的安全级别,使用Spring Security中的自动配置选项 学习如何定制登录和注销 基于URL,配置Spring Security以不同的方式限制访问 利用Spring Security的基于表达的访问控制 在Spring Security中使用JSP库有条件地显示登录用户的基本信息 基于角色,在登录后确定用户的默认位置开始示例导入...
2018-08-19 19:17:46 156
原创 spring-boot教程(二)
spring-boot基本配置1.@SpringBootApplication 这个注解是个复合注解,包含了很多东西,主要为自动配置,组件扫描//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package org.spring...
2018-08-01 16:46:34 223
原创 spring-boo教程(一)
快速搭建spring-boot1.web网页搭建:https://start.spring.io/2.idea搭建搭建过程很简单,省略我搭建的功能选项为:web,mysql,radis搭建后有个XXApplication.java 文件package com.example.boot;import org.springframework.boot.SpringAp...
2018-08-01 14:03:51 318
原创 windows php安装redis扩展
一、准备工作查看你的php版本、结构(x64还是x86)、编译环境二、下载redis结合你的php版本下载对应版本的redis三、下载php redis扩展和依赖扩展php_igbinary-2.0.1-5.6-nts-vc11-x86.zip 和 php_redis-2.2.5-5.6-nts-vc11-x86.zip安装扩展和开启扩展
2017-06-05 14:13:40 230
原创 C语言中scanf、gets、fgets的区别
1.scanf会读取标准输入缓冲区中的输入行内容直到遇到回车或空白(回车、tab、空格)以换行为例,会把换行符之前的数据全部读入到scanf指定的变量中,回车(\n)依然保存在缓冲区中,等待下次读取标准输入缓冲区遇到上面这种情况一般需要加入一下代码来清空缓存区的行/* 这里getchar()从缓冲区中读一个字符,直到读取到回车结束,由于getchar()没有设置变量保
2017-04-13 10:19:57 3420
原创 设置linux共享目录
1.安装samba注:本人使用centos6.5yum install samba samba-client2.编辑samba.confcd /etc/samba/cp smb.conf smb.conf.cp //备份一下vim smb.conf找到security这行并将#注释符号去掉改成 security = sha
2017-03-22 11:08:15 280
原创 创建文件和目录时的默认权限umask
1.概念linux系统中文件的默认权限是在/etc/bashrc文件中记载着: # By default, we want umask to get set. This sets it for non-login shell. # Current threshold for system reserved uid/gids is 200 # You could chec
2017-03-17 15:42:41 2837
原创 DOM 位置大小操作
1.偏移量有四个属性可以获取元素的宽高和偏移量:1.offsetWidth:元素宽 (边框+内边距+宽)2.offsetHeight:元素高(边框+内边距+高)3.offsetTop:相对于父级元素到顶部的距离 4.offsetLeft:相对于父级元素到左边的距离如图:2.客户区大小1.clientWidth:内边距+宽2.clientHeight:内边距+
2017-03-08 17:29:41 342
原创 样式属性即操作在DOM2级中的变化
1.float样式属性在DOM2中的变化在DOM2级中规定float样式属性的访问方式可以是:cssFloat(chrom、Firefox)、styleFloat,但是也可以直接使用float来访问float样式属性2.style对象在DOM2级中的变化新增了属性和方法1.cssText: 某个元素所有样式值拼接的字符串2.length:返回样式个数3.item:获取指
2017-03-08 15:36:47 272
转载 Linux的inode的理解
一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是
2017-02-24 16:25:34 174
原创 JavaScript中定义静态变量和方法,私有变量和方法,模块模式和增强型模块模式
私有变量和方法JavaScript中想要在构造函数中创建私有的变量和方法就必须利用闭包(关于闭包可以访问我的博客:闭包理解),现在通过代码来说明如何创建私有变量及其原理。function Person(){ var name; //私有变量 var say=function(){ //私有方法 alert('hello'); } this.getName=function
2017-01-19 17:39:58 889
原创 JavaScript面向对象中的属性,对象创建,继承
属性ECMA-262 把对象定义为:无序属性的集合,其属性可以包含基本值、对象或者函数。这里的属性包括两种类型:数据属性数据属性包含4个特性参数1.configurable: 是否可以配置,通过点定义的属性默认值为true(如:obj.name),可配置包括是否可设置属性其他3个参数的值和属性是否可删除2.writable:是否可写,通过点定义的属性默认值为true,如
2017-01-18 17:03:47 283
原创 javascript中的函数(Function)
函数本质javascript中的函数本质都是Function引用类型的实例,即函数就是一个Function类型的对象函数定义1.声明方式:如:function func(num){ return num+1;}2.函数表达式方式var func=function(){ return 'hello';}3.new方式var func=new
2017-01-16 16:20:04 273
原创 作用域,作用域链,作用域对象
作用域,作用域链,作用域对象1.作用域(执行环境)即代码的执行环境,根据JavaScript所在的宿主平台不一样全局执行环境就不一样,一般web浏览器中全局执行环境。2.作用域对象就是这个作用域的对象化,web浏览器中的全局作用域对象就是window对象,那么在js中定义的所有函数和变量都是window对象来访问,如:var age=12;var say=function(){
2017-01-16 10:28:05 348
原创 php5.4+ CI框架中无法写日志
最近在使用CI框架时,发现php5.4及其以上版本CI框架不能写日志。CI框架日志配置:1.在application/config/config.php中0=关闭日志1=错误信息2=debug信息3=提示信息4=所有信息$config['log_threshold'] = 4;$config['log_path'] = ''; //日志文件路径,默认路径 appl
2017-01-15 22:23:27 1254 1
原创 闭包理解
1.闭包可以简单理解为一个匿名内部类2.理解闭包必须先理解作用域链举例: Document var data=[]; for (var i = 0; i < 3; i++) { data[i]=function () { console.log(i) } } data[0](); data[1]();
2017-01-05 15:03:31 205
原创 JavaScript高级程序设计第3版学习心得(1)
语法一、在html中加入JavaScript:1.在html中嵌入JavaScript代码 if(1<2){ alert('jjjj'); }`2.导入外部JavaScript文件(推荐)二、元素属性:1.async:异步加载js文件,只对外部导入的js有效,内嵌式js无效,浏览器在解析html文件内容时是从上往下
2017-01-03 11:10:36 1959 4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人