• 分类:【系统架构
  • 浏览【106】
  • 评论【0】
  • 更新【2018-10-13 17:38:35】

gRPC是谷歌开发的跨语言(C, C++, Python, PHP, Nodejs, C#, Objective-C、Golang、Java)RPC框架,跨语言是指可以使用gRPC进行个语言之间的通信,例如:PHP可以对java进行远程调用。 在系统架构中,我们会把多个系统公共的模块拆分出来做成单独的服务,可以提供RESTful接口,也可以为了低延迟快速响应而提供RPC接口。如果选择的是gRPC,上线后发现多个系统都请求这个RPC服务提供者,而且流量很大的时候负载过高导致崩溃。为了降低负载和提高可用性,理所当然的要做集群,用nginx作为代理服务器,幸运的是nginx版本为1.13及以上支持了

阅读全文
  • 分类:【数据库
  • 浏览【98】
  • 评论【0】
  • 更新【2018-10-11 18:25:53】

网上也找了很多方案结果就是奇葩的不成功,最后直接修改/etc/mysql/mysql.conf.d/mysqld.cnf成功了。 在该文件最后添加 default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci 重启成功。 这是本地虚拟机里的mysql mysql> show variables like "character%"; +--------------------------+----------------------------+ |

阅读全文
  • 分类:【MongoDd
  • 浏览【102】
  • 评论【0】
  • 更新【2018-9-30 16:20:22】

最近七牛云存储要收回测试域名,但是我的博客中图片使用了这些测试域名,所以要替换掉,避免图片不可访问。在文档中没有找到可以直接替换的方法,所以就使用了mongodb的forEach循环替换。 首先用正则查询法查出使用了测试域名的文档,然后forEach循环,在每个循环中使用js的正则替换函数将域名替换掉,最后再保存该文档即可。 db.getCollection('blogs').find({content:{$regex:/hopefully.qiniudn.com/}}).forEach(function(item){ item.content = item.content.repla

阅读全文
  • 分类:【MongoDd
  • 浏览【134】
  • 评论【0】
  • 更新【2018-9-06 17:21:31】

使用mongoose建立了连接以后,通过model查询数据,如:testModel.find(),既不报错又不返回数据。 const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/my_database'); 使用mongoose.connect连接产生在mongoose.connection上,使用mongoose.createConnection是反回一个连接对象,建立model的时候需要使用这个连接才有效,此时使用mongoose.model是无效的。 const conn = mongoo

阅读全文
  • 分类:【Nodejs
  • 浏览【143】
  • 评论【0】
  • 更新【2018-9-04 14:57:38】

无法重新声明块范围变量“onerror” 解决办法:打开tsconfig.json中的"lib": ["es2015", "es2016", "es2017"]

阅读全文
  • 分类:【疑难杂症
  • 浏览【148】
  • 评论【0】
  • 更新【2018-9-02 16:20:51】

win10家庭版本身不支持组策略,但还是有办法让其支持。 复制下面内容到文本文件: @echo off pushd "%~dp0" dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt f

阅读全文
  • 分类:【随笔
  • 浏览【170】
  • 评论【0】
  • 更新【2018-8-05 11:47:06】

要说前端界的发展速度,那真是快! 2012年那时候接触过extjs,用于企业级后台开发还真不错,有好看的UI界面,组件丰富,基本能满足各类需求。但此时,HTML5正在蓬勃发展,尤其是乔布斯宣布苹果设备不支持flash后HTML5发展更是迅猛。并且angularjs这类MVVM框架被大多数所知,reactjs,vuejs如雨后春笋般生长。 2014年使用了一段时间angularjs,感觉学习难度有点大,2015年使用vue1.0做了一个项目后我逢人就说angular,vue有多好用,推荐他们放弃jquery使用vue。不到2年时间再看看前端界,vue,react等框架已经是前端开发标配,如果你说

阅读全文
  • 分类:【Golang
  • 浏览【245】
  • 评论【0】
  • 更新【2018-6-29 21:05:59】

go可以很容易实现一个文件服务器,只需要使用函数 func ServeFile(w ResponseWriter, r *Request, name string)即可。 package main import ( "log" "net/http" "fmt" ) func helloHandler(res http.ResponseWriter, req *http.Request) { http.ServeFile(res, req, "E:/go-work/src/go-learning/foo.xlsx") } func main() { fmt.Println("web

阅读全文
  • 分类:【前端
  • 浏览【214】
  • 评论【0】
  • 更新【2018-6-25 15:10:28】

//上传图片 var imagesBase64 = []; $("input[type=file]").on("change", function (e) { var image = e.target.files[0]; var imgFile = new FileReader(); var imgShow = new Image(); imgFile.readAsDataURL(image); imgFile.onload = function () { var imgData = this.result; //base64数据 imagesBase64.

阅读全文
  • 分类:【linux
  • 浏览【266】
  • 评论【0】
  • 更新【2018-6-14 13:26:49】

修改terminal apt-get update更新软件源,安装zsh,设置默认terminal为zsh,chsh -s /usr/bin/zsh。非root用户需要在root权限下修改/etc/passwd文件才能实现。 安装git apt-get install git nginx设置: sudo /etc/init.d/nginx restart # or start, stop 或 sudo service nginx restart # or start, stop 有时候我们改了配置文件只是要让配置生效,这个时候不必重启,只要重新加载配置文件即可。sudo nginx

阅读全文